summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-01-26 17:18:58 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-02-18 21:18:27 +0000
commit106cd424af0fec559422a6443944ed09e537d930 (patch)
tree182275be6ce6f9860aa4fb4c341574311796cc0a /src/ui
parentAdding styling refactoring, moving after to other branch the CSS part (diff)
downloadinkscape-106cd424af0fec559422a6443944ed09e537d930.tar.gz
inkscape-106cd424af0fec559422a6443944ed09e537d930.zip
fixing coding style and translation and merge from master
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp40
-rw-r--r--src/ui/dialog/livepatheffect-add.cpp99
-rw-r--r--src/ui/dialog/livepatheffect-add.h59
-rw-r--r--src/ui/dialog/lpe-selector.cpp71
-rw-r--r--src/ui/dialog/lpe-selector.h36
5 files changed, 215 insertions, 90 deletions
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 86529fbbb..1f094abbf 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -44,7 +44,6 @@
#include "selection.h"
#include "shortcuts.h"
#include "verbs.h"
-#include "inkscape-window.h"
#include "display/canvas-grid.h"
#include "display/nr-filter-gaussian.h"
@@ -728,24 +727,23 @@ void InkscapePreferences::symbolicAddClass()
// is more understandable than record previously applied
Glib::ustring style = get_filename(UIS, "style.css");
if (!style.empty()) {
- auto provider = Gtk::CssProvider::create();
-
- // From 3.16, throws an error which we must catch.
- try {
- provider->load_from_path (style);
- }
-#if GTK_CHECK_VERSION(3,16,0)
- // Gtk::CssProviderError not defined until 3.16.
- catch (const Gtk::CssProviderError& ex)
- {
- g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)",
- style.c_str(), ex.what().c_str());
- }
+ auto provider = Gtk::CssProvider::create();
+
+ // From 3.16, throws an error which we must catch.
+ try {
+ provider->load_from_path(style);
+ }
+#if GTK_CHECK_VERSION(3, 16, 0)
+ // Gtk::CssProviderError not defined until 3.16.
+ catch (const Gtk::CssProviderError &ex) {
+ g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)", style.c_str(),
+ ex.what().c_str());
+ }
#else
- catch (...)
- {}
+ catch (...) {
+ }
#endif
- Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
}
void InkscapePreferences::themeChange()
@@ -757,15 +755,15 @@ void InkscapePreferences::themeChange()
gchar *gtkThemeName;
gboolean gtkApplicationPreferDarkTheme;
Gtk::Window *window = SP_ACTIVE_DESKTOP->getToplevel();
- GtkSettings *settings = gtk_settings_get_default();
+ GtkSettings *settings = gtk_settings_get_default();
if (window && settings) {
g_object_get(settings, "gtk-theme-name", &gtkThemeName, NULL);
g_object_get(settings, "gtk-application-prefer-dark-theme", &gtkApplicationPreferDarkTheme, NULL);
bool dark = gtkApplicationPreferDarkTheme || Glib::ustring(gtkThemeName).find(":dark") != -1;
if (!dark) {
- Glib::RefPtr<Gtk::StyleContext> stylecontext = window->get_style_context();
- Gdk::RGBA rgba;
- bool background_set = stylecontext->lookup_color("theme_bg_color", rgba);
+ Glib::RefPtr<Gtk::StyleContext> stylecontext = window->get_style_context();
+ Gdk::RGBA rgba;
+ bool background_set = stylecontext->lookup_color("theme_bg_color", rgba);
if (background_set && rgba.get_red() + rgba.get_green() + rgba.get_blue() < 1.0) {
dark = true;
}
diff --git a/src/ui/dialog/livepatheffect-add.cpp b/src/ui/dialog/livepatheffect-add.cpp
index 630008606..b11ee66b7 100644
--- a/src/ui/dialog/livepatheffect-add.cpp
+++ b/src/ui/dialog/livepatheffect-add.cpp
@@ -13,31 +13,32 @@
# include "config.h" // only include where actually required!
#endif
+#include "desktop.h"
+#include "io/resource.h"
+#include "live_effects/effect.h"
#include "livepatheffect-add.h"
#include <glibmm/i18n.h>
-#include "desktop.h"
-
namespace Inkscape {
namespace UI {
namespace Dialog {
-LivePathEffectAdd::LivePathEffectAdd() :
- converter(Inkscape::LivePathEffect::LPETypeConverter)
+LivePathEffectAdd::LivePathEffectAdd()
+ : converter(Inkscape::LivePathEffect::LPETypeConverter)
{
- const std::string req_widgets[] = {"LPEDialogSelector", "LPESelector", "LPESelectorFlowBox"};
+ const std::string req_widgets[] = { "LPEDialogSelector", "LPESelector", "LPESelectorFlowBox" };
Glib::ustring gladefile = get_filename(Inkscape::IO::Resource::UIS, "dialog-livepatheffect-add.ui");
try {
_builder = Gtk::Builder::create_from_file(gladefile);
- } catch(const Glib::Error& ex) {
+ } catch (const Glib::Error &ex) {
g_warning("Glade file loading failed for filter effect dialog");
return;
}
- Gtk::Object* test;
- for(std::string w:req_widgets) {
- _builder->get_widget(w,test);
- if(!test){
+ Gtk::Object *test;
+ for (std::string w : req_widgets) {
+ _builder->get_widget(w, test);
+ if (!test) {
g_warning("Required widget %s does not exist", w.c_str());
return;
}
@@ -50,43 +51,42 @@ LivePathEffectAdd::LivePathEffectAdd() :
_builder->get_widget("LPEFilter", _LPEFilter);
_builder->get_widget("LPEInfo", _LPEInfo);
_LPEFilter->signal_search_changed().connect(sigc::mem_fun(*this, &LivePathEffectAdd::on_search));
- const std::string le_widgets[] = {"LPESelectorEffect", "LPEName","LPEDescription"};
+ const std::string le_widgets[] = { "LPESelectorEffect", "LPEName", "LPEDescription" };
Glib::ustring le_gladefile = get_filename(Inkscape::IO::Resource::UIS, "dialog-livepatheffect-add-effect.ui");
- for(int i = 0; i < static_cast<int>(converter._length); ++i) {
-
+ for (int i = 0; i < static_cast<int>(converter._length); ++i) {
+
try {
_builder = Gtk::Builder::create_from_file(le_gladefile);
- } catch(const Glib::Error& ex) {
+ } catch (const Glib::Error &ex) {
g_warning("Glade file loading failed for filter effect dialog");
return;
}
- for(int i = 0; i < static_cast<int>(converter._length); ++i) {
- Gtk::TreeModel::Row row = *(effectlist_store->append());
- const Util::EnumData<LivePathEffect::EffectType>* data = &converter.data(i);
- row[_columns.name] = _( converter.get_label(data->id).c_str() );
- row[_columns.data] = data;
- if (i == show) {
- Glib::RefPtr<Gtk::TreeSelection> select = effectlist_treeview.get_selection();
- select->select(row);
+ Gtk::Object *test;
+ for (std::string w : le_widgets) {
+ _builder->get_widget(w, test);
+ if (!test) {
+ g_warning("Required widget %s does not exist", w.c_str());
+ return;
+ }
}
- const LivePathEffect::EnumEffectData<LivePathEffect::EffectType>* data = &converter.data(i);
- Gtk::Label * LPEName;
+ const LivePathEffect::EnumEffectData<LivePathEffect::EffectType> *data = &converter.data(i);
+ Gtk::Label *LPEName;
_builder->get_widget("LPEName", LPEName);
Glib::ustring newid = "LPEName_" + Glib::ustring::format(i);
(*LPEName).set_name(newid);
(*LPEName).set_text(converter.get_label(data->id).c_str());
- Gtk::Label * LPEDescription;
+ Gtk::Label *LPEDescription;
_builder->get_widget("LPEDescription", LPEDescription);
newid = "LPEDescription_" + Glib::ustring::format(i);
(*LPEDescription).set_name(newid);
(*LPEDescription).set_text(converter.get_description(data->id));
- Gtk::Image * LPEIcon;
+ Gtk::Image *LPEIcon;
_builder->get_widget("LPEIcon", LPEIcon);
newid = "LPEIcon_" + Glib::ustring::format(i);
(*LPEIcon).set_name(newid);
- (*LPEIcon).set_from_icon_name(converter.get_icon(data->id),Gtk::BuiltinIconSize(Gtk::ICON_SIZE_DIALOG));
- Gtk::Box * LPESelectorEffect;
+ (*LPEIcon).set_from_icon_name(converter.get_icon(data->id), Gtk::BuiltinIconSize(Gtk::ICON_SIZE_DIALOG));
+ Gtk::Box *LPESelectorEffect;
_builder->get_widget("LPESelectorEffect", LPESelectorEffect);
newid = "LPESelectorEffect" + Glib::ustring::format(i);
(*LPESelectorEffect).set_name(newid);
@@ -99,15 +99,16 @@ LivePathEffectAdd::LivePathEffectAdd() :
_LPEInfo->set_visible(false);
}
-void LivePathEffectAdd::on_activate(Gtk::FlowBoxChild *child){
- for (auto i:_LPESelectorFlowBox->get_children()) {
- Gtk::FlowBoxChild * leitem = dynamic_cast<Gtk::FlowBoxChild *>(i);
+void LivePathEffectAdd::on_activate(Gtk::FlowBoxChild *child)
+{
+ for (auto i : _LPESelectorFlowBox->get_children()) {
+ Gtk::FlowBoxChild *leitem = dynamic_cast<Gtk::FlowBoxChild *>(i);
leitem->get_style_context()->remove_class("lpeactive");
leitem->get_style_context()->remove_class("colorinverse");
leitem->get_style_context()->remove_class("backgroundinverse");
Gtk::Box *box = dynamic_cast<Gtk::Box *>(leitem->get_child());
if (box) {
- std::vector<Gtk::Widget*> contents = box->get_children();
+ std::vector<Gtk::Widget *> contents = box->get_children();
Gtk::Box *actions = dynamic_cast<Gtk::Box *>(contents[3]);
if (actions) {
actions->set_visible(false);
@@ -120,7 +121,34 @@ void LivePathEffectAdd::on_activate(Gtk::FlowBoxChild *child){
child->show_all_children();
}
- auto mainVBox = get_content_area();
+bool LivePathEffectAdd::on_filter(Gtk::FlowBoxChild *child)
+{
+ if (_LPEFilter->get_text().length() < 4) {
+ _visiblelpe = _LPESelectorFlowBox->get_children().size();
+ return true;
+ }
+ Gtk::Box *box = dynamic_cast<Gtk::Box *>(child->get_child());
+ if (box) {
+ std::vector<Gtk::Widget *> contents = box->get_children();
+ Gtk::Label *lpename = dynamic_cast<Gtk::Label *>(contents[1]);
+ if (lpename) {
+ size_t s = lpename->get_text().uppercase().find(_LPEFilter->get_text().uppercase(), 0);
+ if (s != -1) {
+ _visiblelpe++;
+ return true;
+ }
+ }
+ Gtk::Label *lpedesc = dynamic_cast<Gtk::Label *>(contents[2]);
+ if (lpedesc) {
+ size_t s = lpedesc->get_text().uppercase().find(_LPEFilter->get_text().uppercase(), 0);
+ if (s != -1) {
+ _visiblelpe++;
+ return true;
+ }
+ }
+ }
+ return false;
+}
mainVBox->pack_start(scrolled_window, true, true);
add_action_widget(close_button, Gtk::RESPONSE_CLOSE);
@@ -147,10 +175,7 @@ void LivePathEffectAdd::onAdd()
onClose();
}
-void LivePathEffectAdd::onClose()
-{
- _LPEDialogSelector->hide();
-}
+void LivePathEffectAdd::onClose() { _LPEDialogSelector->hide(); }
void LivePathEffectAdd::onKeyEvent(GdkEventKey* evt)
{
diff --git a/src/ui/dialog/livepatheffect-add.h b/src/ui/dialog/livepatheffect-add.h
index 671751ed2..003c9c127 100644
--- a/src/ui/dialog/livepatheffect-add.h
+++ b/src/ui/dialog/livepatheffect-add.h
@@ -12,11 +12,15 @@
#ifndef INKSCAPE_DIALOG_LIVEPATHEFFECT_ADD_H
#define INKSCAPE_DIALOG_LIVEPATHEFFECT_ADD_H
-#include <gtkmm/dialog.h>
-#include <gtkmm/liststore.h>
-#include <gtkmm/treeview.h>
-#include <gtkmm/scrolledwindow.h>
#include "live_effects/effect-enum.h"
+#include <gtkmm/box.h>
+#include <gtkmm/builder.h>
+#include <gtkmm/dialog.h>
+#include <gtkmm/flowbox.h>
+#include <gtkmm/flowboxchild.h>
+#include <gtkmm/label.h>
+#include <gtkmm/searchentry.h>
+#include <gtkmm/stylecontext.h>
class SPDesktop;
@@ -37,21 +41,11 @@ public:
* Show the dialog
*/
static void show(SPDesktop *desktop);
+ static bool isApplied() { return false; }
- /**
- * Returns true is the "Add" button was pressed
- */
- static bool isApplied() {
- return instance().applied;
- }
-
- /**
- * Return the data associated with the currently selected item
- */
- static const Util::EnumData<LivePathEffect::EffectType>* getActiveData();
-
-protected:
+ static const Util::EnumData<LivePathEffect::EffectType> *getActiveData() { return NULL; };
+ protected:
/**
* Close button was clicked
*/
@@ -72,21 +66,22 @@ protected:
*/
void onKeyEvent(GdkEventKey* evt);
private:
- Gtk::Button _add_button;
- Gtk::Button _close_button;
- Gtk::Dialog *_LPEDialogSelector;
- Glib::RefPtr<Gtk::Builder> _builder;
- Gtk::FlowBox *_LPESelectorFlowBox;
- Gtk::SearchEntry *_LPEFilter;
- Gtk::Label *_LPEInfo;
- Gtk::Box *_LPESelector;
- guint _visiblelpe;
- class Effect;
- const LivePathEffect::EnumEffectDataConverter<LivePathEffect::EffectType>& converter;
- static LivePathEffectAdd &instance() {
- static LivePathEffectAdd instance_;
- return instance_;
- }
+ Gtk::Button _add_button;
+ Gtk::Button _close_button;
+ Gtk::Dialog *_LPEDialogSelector;
+ Glib::RefPtr<Gtk::Builder> _builder;
+ Gtk::FlowBox *_LPESelectorFlowBox;
+ Gtk::SearchEntry *_LPEFilter;
+ Gtk::Label *_LPEInfo;
+ Gtk::Box *_LPESelector;
+ guint _visiblelpe;
+ class Effect;
+ const LivePathEffect::EnumEffectDataConverter<LivePathEffect::EffectType> &converter;
+ static LivePathEffectAdd &instance()
+ {
+ static LivePathEffectAdd instance_;
+ return instance_;
+ }
LivePathEffectAdd(LivePathEffectAdd const &) = delete; // no copy
LivePathEffectAdd &operator=(LivePathEffectAdd const &) = delete; // no assign
};
diff --git a/src/ui/dialog/lpe-selector.cpp b/src/ui/dialog/lpe-selector.cpp
new file mode 100644
index 000000000..9c4cfb4b1
--- /dev/null
+++ b/src/ui/dialog/lpe-selector.cpp
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/**
+ * @file
+ * Filter Effects dialog.
+ */
+/* Authors:
+ * Marc Jeanmougin
+ *
+ * Copyright (C) 2017 Authors
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+
+#include "io/resource.h"
+#include "io/sys.h"
+#include <glibmm/convert.h>
+#include <glibmm/error.h>
+#include <glibmm/i18n.h>
+#include <glibmm/main.h>
+#include <glibmm/stringutils.h>
+
+namespace Inkscape {
+namespace UI {
+
+LPESelector::LPESelector()
+ : Gtk::Box()
+{
+
+ const std::string req_widgets[] = { "LPESelector", "FilterList",
+ "FilterFERX", "FilterFERY",
+ "FilterFERH", "FilterFERW",
+ "FilterPreview", "FilterPrimitiveDescImage",
+ "FilterPrimitiveList", "FilterPrimitiveDescText",
+ "FilterPrimitiveAdd" };
+ Glib::ustring gladefile = get_filename(UIS, "lpe-selector.glade");
+ try {
+ builder = Gtk::Builder::create_from_file(gladefile);
+ } catch (const Glib::Error &ex) {
+ g_warning("Glade file loading failed for filter effect dialog");
+ return;
+ }
+
+ Gtk::Object *test;
+ for (std::string w : req_widgets) {
+ builder->get_widget(w, test);
+ if (!test) {
+ g_warning("Required widget %s does not exist", w.c_str());
+ return;
+ }
+ }
+
+ builder->get_widget("LPESelector", LPESelector);
+ _getContents()->add(*LPESelector);
+}
+LPESelector::~LPESelector() = default;
+
+
+
+} // namespace UI
+} // namespace Inkscape
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/ui/dialog/lpe-selector.h b/src/ui/dialog/lpe-selector.h
new file mode 100644
index 000000000..53ec21df2
--- /dev/null
+++ b/src/ui/dialog/lpe-selector.h
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/** @file
+ * @brief Filter Editor dialog
+ */
+/* Authors:
+ * Marc Jeanmougin
+ *
+ * Copyright (C) 2017 Authors
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_LPE_SELECTOR_H
+#define INKSCAPE_UI_LPE_SELECTOR_H
+
+#include <gtkmm/gtkmm.h>
+
+namespace Inkscape {
+namespace UI {
+
+class LPESelector : public Gtk::Box {
+ public:
+ LPESelector();
+ ~LPESelector() override;
+
+ static LPESelector &getInstance() { return *new LPESelector(); }
+
+ // void set_attrs_locked(const bool);
+ private:
+ Glib::RefPtr<Gtk::Builder> builder;
+ Glib::RefPtr<Glib::Object> FilterStore;
+ Gtk::Box *LPESelector;
+};
+} // namespace UI
+} // namespace Inkscape
+#endif