summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSlagvi Public <JandotDarowskiattgmaildottcom>2013-09-04 09:50:07 +0000
committerSlagvi Public <JandotDarowskiattgmaildottcom>2013-09-04 09:50:07 +0000
commit100be92caf253e8743126da4264e84a060c82182 (patch)
tree0321c0662e669746808a9d8b2f2995ccfa3a300e /src
parentAdd listing procedural templates in NewFromTemplate dialog. (diff)
downloadinkscape-100be92caf253e8743126da4264e84a060c82182.tar.gz
inkscape-100be92caf253e8743126da4264e84a060c82182.zip
Creating documents from procedural templates added.
(bzr r12481.1.2)
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/template-load-tab.cpp2
-rw-r--r--src/ui/dialog/template-load-tab.h2
-rw-r--r--src/ui/dialog/template-widget.cpp59
-rw-r--r--src/ui/dialog/template-widget.h1
4 files changed, 42 insertions, 22 deletions
diff --git a/src/ui/dialog/template-load-tab.cpp b/src/ui/dialog/template-load-tab.cpp
index 280b3b073..11511d7fc 100644
--- a/src/ui/dialog/template-load-tab.cpp
+++ b/src/ui/dialog/template-load-tab.cpp
@@ -271,6 +271,8 @@ void TemplateLoadTab::_getProceduralTemplates()
result.display_name = (*it)->get_name();
result.is_procedural = true;
result.path = "";
+ result.tpl_effect = *it;
+
_getDataFromNode(myRoot, result);
_tdata[result.display_name] = result;
}
diff --git a/src/ui/dialog/template-load-tab.h b/src/ui/dialog/template-load-tab.h
index c3817cf1b..cdf8a0ade 100644
--- a/src/ui/dialog/template-load-tab.h
+++ b/src/ui/dialog/template-load-tab.h
@@ -20,6 +20,7 @@
#include <set>
#include "xml/node.h"
+#include "extension/effect.h"
namespace Inkscape {
@@ -42,6 +43,7 @@ public:
Glib::ustring preview_name;
Glib::ustring creation_date;
std::set<Glib::ustring> keywords;
+ Inkscape::Extension::Effect *tpl_effect;
};
TemplateLoadTab();
diff --git a/src/ui/dialog/template-widget.cpp b/src/ui/dialog/template-widget.cpp
index be7e2b515..21ea709f2 100644
--- a/src/ui/dialog/template-widget.cpp
+++ b/src/ui/dialog/template-widget.cpp
@@ -20,6 +20,10 @@
#include "template-load-tab.h"
#include "file.h"
+#include "extension/implementation/implementation.h"
+
+#include "inkscape.h"
+#include "desktop.h"
namespace Inkscape {
namespace UI {
@@ -30,6 +34,7 @@ TemplateWidget::TemplateWidget()
, _short_description_label(_(" "))
, _template_author_label(_(" "))
, _template_name_label(_("no template selected"))
+ , _effect_prefs(NULL)
{
pack_start(_template_name_label, Gtk::PACK_SHRINK, 10);
pack_start(_template_author_label, Gtk::PACK_SHRINK, 0);
@@ -55,10 +60,13 @@ TemplateWidget::TemplateWidget()
void TemplateWidget::create()
{
- if (_current_template.path == "")
+ if (_current_template.display_name == "")
return;
- if (_current_template.is_procedural) {}
+ if (_current_template.is_procedural){
+ SPDesktop *desc = sp_file_new_default();
+ _current_template.tpl_effect->effect(desc);
+ }
else {
sp_file_new(_current_template.path);
}
@@ -68,34 +76,41 @@ void TemplateWidget::create()
void TemplateWidget::display(TemplateLoadTab::TemplateData data)
{
_current_template = data;
- if (data.is_procedural){}
- else{
- _template_name_label.set_text(_current_template.display_name);
- _template_author_label.set_text(_current_template.author);
- _short_description_label.set_text(_current_template.short_description);
+
+ _template_name_label.set_text(_current_template.display_name);
+ // _template_author_label.set_text(_current_template.author);
+ _short_description_label.set_text(_current_template.short_description);
- Glib::ustring imagePath = Glib::build_filename(Glib::path_get_dirname(_current_template.path), _current_template.preview_name);
- if (data.preview_name != ""){
- _preview_image.set(imagePath);
- _preview_image.show();
- _preview_render.hide();
- }
- else{
- _preview_render.showImage(data.path);
- _preview_render.show();
- _preview_image.hide();
- }
+ _preview_render.hide();
+ _preview_image.hide();
+
+ Glib::ustring imagePath = Glib::build_filename(Glib::path_get_dirname(_current_template.path), _current_template.preview_name);
+ if (data.preview_name != ""){
+ _preview_image.set(imagePath);
+ _preview_image.show();
+ }
+ else if (!data.is_procedural){
+ _preview_render.showImage(data.path);
+ _preview_render.show();
+ }
+
+ if (_effect_prefs != NULL){
+ remove (*_effect_prefs);
+ _effect_prefs = NULL;
+ }
+ if (data.is_procedural){
+ _effect_prefs = data.tpl_effect->get_imp()->prefs_effect(data.tpl_effect, SP_ACTIVE_DESKTOP, NULL, NULL); // SP_ACTIVE_DESKTOP?
+ pack_start(*_effect_prefs);
}
}
void TemplateWidget::_displayTemplateDetails()
{
- if (_current_template.path == "")
- return;
+ Glib::ustring message = _current_template.display_name + "\n\n";
- Glib::ustring message = _current_template.display_name + "\n\n" +
- _("Path: ") + _current_template.path + "\n\n";
+ if (_current_template.path != "")
+ message += _("Path: ") + _current_template.path + "\n\n";
if (_current_template.long_description != "")
message += _("Description: ") + _current_template.long_description + "\n\n";
diff --git a/src/ui/dialog/template-widget.h b/src/ui/dialog/template-widget.h
index f7e1267ce..a41a14a38 100644
--- a/src/ui/dialog/template-widget.h
+++ b/src/ui/dialog/template-widget.h
@@ -38,6 +38,7 @@ private:
Gtk::Label _short_description_label;
Gtk::Label _template_author_label;
Gtk::Label _template_name_label;
+ Gtk::Widget *_effect_prefs;
void _displayTemplateDetails();
};