diff options
| -rw-r--r-- | share/ui/dialog-livepatheffect-add.ui | 166 | ||||
| -rw-r--r-- | share/ui/style.css | 69 | ||||
| -rw-r--r-- | src/ui/dialog/livepatheffect-add.cpp | 284 | ||||
| -rw-r--r-- | src/ui/dialog/livepatheffect-add.h | 2 |
4 files changed, 361 insertions, 160 deletions
diff --git a/share/ui/dialog-livepatheffect-add.ui b/share/ui/dialog-livepatheffect-add.ui index 2bc147b65..57336300e 100644 --- a/share/ui/dialog-livepatheffect-add.ui +++ b/share/ui/dialog-livepatheffect-add.ui @@ -130,99 +130,114 @@ </packing> </child> <child> - <object class="GtkRadioButton" id="LPESelectorEffectRadioPackLess"> + <object class="GtkButtonBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">center</property> + <property name="can_focus">False</property> + <property name="halign">start</property> <property name="valign">center</property> - <property name="active">True</property> - <property name="draw_indicator">False</property> - <property name="group">LPESelectorEffectRadioList</property> + <property name="homogeneous">True</property> + <property name="layout_style">start</property> <child> - <object class="GtkImage" id="LPESelectorEffectPackLessImage"> - <property name="name">LPESelectorEffectFavShowImage</property> + <object class="GtkRadioButton" id="LPESelectorEffectRadioPackLess"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">center</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> <property name="valign">center</property> - <property name="pixel_size">22</property> - <property name="icon_name">pack-less</property> - <property name="icon_size">2</property> - <style> - <class name="fab"/> - </style> + <property name="draw_indicator">False</property> + <property name="group">LPESelectorEffectRadioList</property> + <child> + <object class="GtkImage" id="LPESelectorEffectPackLessImage"> + <property name="name">LPESelectorEffectFavShowImage</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="pixel_size">22</property> + <property name="icon_name">pack-less</property> + <property name="icon_size">2</property> + <style> + <class name="fab"/> + </style> + </object> + </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">1</property> + <property name="position">0</property> + </packing> </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="padding">1</property> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="LPESelectorEffectRadioPackMore"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">center</property> - <property name="valign">center</property> - <property name="draw_indicator">False</property> - <property name="group">LPESelectorEffectRadioList</property> <child> - <object class="GtkImage" id="LPESelectorEffectPackMoreImage"> - <property name="name">LPESelectorEffectFavShowImage</property> + <object class="GtkRadioButton" id="LPESelectorEffectRadioPackMore"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">center</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> <property name="valign">center</property> - <property name="pixel_size">22</property> - <property name="icon_name">pack-more</property> - <property name="icon_size">2</property> - <style> - <class name="fab"/> - </style> + <property name="draw_indicator">False</property> + <property name="group">LPESelectorEffectRadioList</property> + <child> + <object class="GtkImage" id="LPESelectorEffectPackMoreImage"> + <property name="name">LPESelectorEffectFavShowImage</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="pixel_size">22</property> + <property name="icon_name">pack-more</property> + <property name="icon_size">2</property> + <style> + <class name="fab"/> + </style> + </object> + </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">1</property> + <property name="position">1</property> + </packing> </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="padding">1</property> - <property name="position">6</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="LPESelectorEffectRadioList"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">center</property> - <property name="valign">center</property> - <property name="draw_indicator">False</property> <child> - <object class="GtkImage" id="LPESelectorEffectListImage"> - <property name="name">LPESelectorEffectFavShowImage</property> + <object class="GtkRadioButton" id="LPESelectorEffectRadioList"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">center</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> <property name="valign">center</property> - <property name="pixel_size">27</property> - <property name="icon_name">hamburger-menu</property> - <property name="icon_size">2</property> - <style> - <class name="fab"/> - </style> + <property name="active">True</property> + <property name="draw_indicator">False</property> + <child> + <object class="GtkImage" id="LPESelectorEffectListImage"> + <property name="name">LPESelectorEffectFavShowImage</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="pixel_size">27</property> + <property name="icon_name">hamburger-menu</property> + <property name="icon_size">2</property> + <style> + <class name="fab"/> + </style> + </object> + </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">1</property> + <property name="position">2</property> + </packing> </child> </object> <packing> - <property name="expand">False</property> + <property name="expand">True</property> <property name="fill">True</property> - <property name="padding">1</property> - <property name="position">7</property> + <property name="position">5</property> </packing> </child> <child> @@ -234,7 +249,7 @@ <property name="expand">False</property> <property name="fill">True</property> <property name="padding">4</property> - <property name="position">8</property> + <property name="position">7</property> </packing> </child> <child> @@ -264,7 +279,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">9</property> + <property name="position">8</property> </packing> </child> </object> @@ -596,6 +611,7 @@ </child> <child> <object class="GtkButtonBox" id="LPESelectorButtonBox"> + <property name="name">LPESelectorButtonBox</property> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> diff --git a/share/ui/style.css b/share/ui/style.css index 1ce6fe819..380b66078 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -190,6 +190,29 @@ spinbutton undershoot { outline-style: none; } +.inksmall { + font-size: 11px; +} + +.inkswitch slider { + min-width: 18px; + min-height: 18px; +} + +.inkswitch image { + color: transparent; + background-color: transparent; + background-image: image(transparent); + -gtk-icon-style:symbolic; +} + +.inkswitch { + margin: 2px; + padding: 0; + font-size: 8px; +} + + #LPEDialogSelector, #LPEDialogSelector .frame, #LPEDialogSelector .searchbar { @@ -266,8 +289,8 @@ spinbutton undershoot { } #LPEDialogSelector.LPEPackLess flowboxchild { -margin:1px; -padding:1px; +margin:5px 1px 0px; +padding:3px 3px 10px 3px; } #LPEDialogSelector.LPEPackLess flowboxchild label { font-size:14px; @@ -276,36 +299,36 @@ font-size:14px; font-size:13px; } -#SelectorsAndStyleDialog button { - padding: 4px; - min-height: 16px; - margin: 2px; - padding: 2px; +#LPEDialogSelector.LPEList .lpename { + margin-bottom: 1px; + font-weight:bold; } - -.inksmall { - font-size: 11px; +#LPEDialogSelector.LPEList flowboxchild { + padding:3px 1px 3px 10px; + margin:1px 0px 1px; + border-radius:0; + border-style:dotted; + border-color:@theme_fg_color; + border-width: 0 0 1px 0; } - -.inkswitch slider { - min-width: 18px; - min-height: 18px; +#LPEDialogSelector.LPEList flowboxchild:selected { + border-style:none; + margin:-3px 0px 0px; + padding:4px 1px 4px 10px; } -.inkswitch image { - color: transparent; - background-color: transparent; - background-image: image(transparent); - -gtk-icon-style:symbolic; +#LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected #LPESelectorEffectFavTop, +#LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected:focus #LPESelectorEffectFavTop { + opacity: 1; } -.inkswitch { +#SelectorsAndStyleDialog button { + padding: 4px; + min-height: 16px; margin: 2px; - padding: 0; - font-size: 8px; + padding: 2px; } - #XMLAndAttributesDialog .toggle, #SelectorsAndStyleDialog .toggle { min-width: 18px; diff --git a/src/ui/dialog/livepatheffect-add.cpp b/src/ui/dialog/livepatheffect-add.cpp index 4ea581989..0a4c799cf 100644 --- a/src/ui/dialog/livepatheffect-add.cpp +++ b/src/ui/dialog/livepatheffect-add.cpp @@ -102,7 +102,7 @@ LivePathEffectAdd::LivePathEffectAdd() _builder->get_widget("LPESelectorEffectRadioPackMore", _LPESelectorEffectRadioPackMore); - _LPEFilter->signal_search_changed().connect(sigc::bind(sigc::mem_fun(*this, &LivePathEffectAdd::on_search), false)); + _LPEFilter->signal_search_changed().connect(sigc::mem_fun(*this, &LivePathEffectAdd::on_search)); _LPEDialogSelector->add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK | Gdk::KEY_PRESS_MASK); _LPESelectorFlowBox->signal_set_focus_child().connect(sigc::mem_fun(*this, &LivePathEffectAdd::on_focus)); @@ -153,9 +153,11 @@ LivePathEffectAdd::LivePathEffectAdd() sigc::mem_fun(*this, &LivePathEffectAdd::pop_description), builder_effect)); Gtk::EventBox *LPESelectorEffectEventFav; builder_effect->get_widget("LPESelectorEffectEventFav", LPESelectorEffectEventFav); + Gtk::Image *fav = dynamic_cast<Gtk::Image *>(LPESelectorEffectEventFav->get_child()); if (sp_has_fav(LPEName->get_text())) { - Gtk::Image *fav = dynamic_cast<Gtk::Image *>(LPESelectorEffectEventFav->get_child()); fav->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); + } else { + fav->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); } Gtk::EventBox *LPESelectorEffectEventFavTop; builder_effect->get_widget("LPESelectorEffectEventFavTop", LPESelectorEffectEventFavTop); @@ -163,7 +165,12 @@ LivePathEffectAdd::LivePathEffectAdd() sigc::mem_fun(*this, &LivePathEffectAdd::fav_toggler), builder_effect)); LPESelectorEffectEventFavTop->signal_button_press_event().connect(sigc::bind<Glib::RefPtr<Gtk::Builder>>( sigc::mem_fun(*this, &LivePathEffectAdd::fav_toggler), builder_effect)); - + Gtk::Image *favtop = dynamic_cast<Gtk::Image *>(LPESelectorEffectEventFavTop->get_child()); + if (sp_has_fav(LPEName->get_text())) { + favtop->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); + } else { + favtop->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); + } Gtk::EventBox *LPESelectorEffectEventApply; builder_effect->get_widget("LPESelectorEffectEventApply", LPESelectorEffectEventApply); LPESelectorEffectEventApply->signal_button_press_event().connect( @@ -244,9 +251,11 @@ const LivePathEffect::EnumEffectData<LivePathEffect::EffectType> *LivePathEffect void LivePathEffectAdd::viewChanged(gint mode) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool changed = false; if (mode == 2 && !_LPEDialogSelector->get_style_context()->has_class("LPEList")) { + prefs->setInt("/dialogs/livepatheffect/dialogmode", 2); _LPEDialogSelector->get_style_context()->add_class("LPEList"); _LPEDialogSelector->get_style_context()->remove_class("LPEPackLess"); _LPEDialogSelector->get_style_context()->remove_class("LPEPackMore"); @@ -254,11 +263,11 @@ void LivePathEffectAdd::viewChanged(gint mode) _LPESelectorEffectRadioPackLess->get_style_context()->remove_class("active"); _LPESelectorEffectRadioPackMore->get_style_context()->remove_class("active"); _LPESelectorFlowBox->set_max_children_per_line(1); - prefs->setInt("/dialogs/livepatheffect/dialogmode", 2); - on_search(true); + changed = true; } else if (mode == 1 && !_LPEDialogSelector->get_style_context()->has_class("LPEPackMore")) { + prefs->setInt("/dialogs/livepatheffect/dialogmode", 1); _LPESelectorEffectRadioList->get_style_context()->remove_class("active"); _LPESelectorEffectRadioPackLess->get_style_context()->remove_class("active"); _LPESelectorEffectRadioPackMore->get_style_context()->add_class("active"); @@ -266,10 +275,11 @@ void LivePathEffectAdd::viewChanged(gint mode) _LPEDialogSelector->get_style_context()->remove_class("LPEPackLess"); _LPEDialogSelector->get_style_context()->add_class("LPEPackMore"); _LPESelectorFlowBox->set_max_children_per_line(30); - prefs->setInt("/dialogs/livepatheffect/dialogmode", 1); - on_search(true); - } else if (!_LPEDialogSelector->get_style_context()->has_class("LPEPackLess")) + changed = true; + } else if (mode == 0 && + !_LPEDialogSelector->get_style_context()->has_class("LPEPackLess")) { + prefs->setInt("/dialogs/livepatheffect/dialogmode", 0); _LPESelectorEffectRadioList->get_style_context()->remove_class("active"); _LPESelectorEffectRadioPackLess->get_style_context()->add_class("active"); _LPESelectorEffectRadioPackMore->get_style_context()->remove_class("active"); @@ -277,15 +287,25 @@ void LivePathEffectAdd::viewChanged(gint mode) _LPEDialogSelector->get_style_context()->add_class("LPEPackLess"); _LPEDialogSelector->get_style_context()->remove_class("LPEPackMore"); _LPESelectorFlowBox->set_max_children_per_line(30); - prefs->setInt("/dialogs/livepatheffect/dialogmode", 0); - on_search(true); + changed = true; + + } + if (changed) { + _LPESelectorFlowBox->unset_sort_func(); + _LPESelectorFlowBox->set_sort_func(sigc::mem_fun(this, &LivePathEffectAdd::on_sort)); + std::vector< Gtk::FlowBoxChild* > selected = _LPESelectorFlowBox->get_selected_children(); + if (selected.size() == 1) { + _LPESelectorFlowBox->get_selected_children()[0]->grab_focus(); + } } } void LivePathEffectAdd::on_focus(Gtk::Widget *widget) { Gtk::FlowBoxChild *child = dynamic_cast<Gtk::FlowBoxChild *>(widget); - if (child) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gint mode = prefs->getInt("/dialogs/livepatheffect/dialogmode", 0); + if (child && mode != 2) { for (auto i : _LPESelectorFlowBox->get_children()) { Gtk::FlowBoxChild *leitem = dynamic_cast<Gtk::FlowBoxChild *>(i); Gtk::EventBox *eventbox = dynamic_cast<Gtk::EventBox *>(leitem->get_child()); @@ -365,12 +385,22 @@ bool LivePathEffectAdd::fav_toggler(GdkEventButton *evt, Glib::RefPtr<Gtk::Build builder_effect->get_widget("LPEName", LPEName); Gtk::Image *LPESelectorEffectFav; builder_effect->get_widget("LPESelectorEffectFav", LPESelectorEffectFav); + Gtk::Image *LPESelectorEffectFavTop; + builder_effect->get_widget("LPESelectorEffectFavTop", LPESelectorEffectFavTop); Gtk::EventBox *LPESelectorEffectEventFavTop; builder_effect->get_widget("LPESelectorEffectEventFavTop", LPESelectorEffectEventFavTop); if (LPESelectorEffectFav && LPESelectorEffectEventFavTop) { if (sp_has_fav(LPEName->get_text())) { - LPESelectorEffectEventFavTop->set_visible(false); - LPESelectorEffectEventFavTop->hide(); + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gint mode = prefs->getInt("/dialogs/livepatheffect/dialogmode", 0); + if (mode == 2) { + LPESelectorEffectEventFavTop->set_visible(true); + LPESelectorEffectEventFavTop->show(); + } else { + LPESelectorEffectEventFavTop->set_visible(false); + LPESelectorEffectEventFavTop->hide(); + } + LPESelectorEffectFavTop->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectFav->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); sp_remove_fav(LPEName->get_text()); LPESelectorEffect->get_parent()->get_style_context()->remove_class("lpefav"); @@ -382,6 +412,7 @@ bool LivePathEffectAdd::fav_toggler(GdkEventButton *evt, Glib::RefPtr<Gtk::Build } else { LPESelectorEffectEventFavTop->set_visible(true); LPESelectorEffectEventFavTop->show(); + LPESelectorEffectFavTop->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectFav->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); sp_add_fav(LPEName->get_text()); LPESelectorEffect->get_parent()->get_style_context()->add_class("lpefav"); @@ -485,35 +516,14 @@ bool LivePathEffectAdd::on_filter(Gtk::FlowBoxChild *child) } child->set_valign(Gtk::ALIGN_START); Gtk::EventBox *eventbox = dynamic_cast<Gtk::EventBox *>(child->get_child()); - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gint mode = prefs->getInt("/dialogs/livepatheffect/dialogmode", 0); - if (mode == 2) { - eventbox->set_halign(Gtk::ALIGN_START); - } else { - eventbox->set_halign(Gtk::ALIGN_CENTER); - } if (eventbox) { Gtk::Box *box = dynamic_cast<Gtk::Box *>(eventbox->get_child()); - if (mode == 2) { - box->set_orientation(Gtk::ORIENTATION_HORIZONTAL); - } else { - box->set_orientation(Gtk::ORIENTATION_VERTICAL); - } if (box) { std::vector<Gtk::Widget *> contents = box->get_children(); Gtk::Overlay *overlay = dynamic_cast<Gtk::Overlay *>(contents[0]); std::vector<Gtk::Widget *> content_overlay = overlay->get_children(); Gtk::Label *lpename = dynamic_cast<Gtk::Label *>(contents[1]); - if (lpename) { - if (mode == 2) { - lpename->set_justify(Gtk::JUSTIFY_LEFT); - lpename->set_halign(Gtk::ALIGN_START); - } else { - lpename->set_justify(Gtk::JUSTIFY_CENTER); - lpename->set_halign(Gtk::ALIGN_CENTER); - } - } if (!sp_has_fav(lpename->get_text()) && _showfavs) { return false; } @@ -523,31 +533,8 @@ bool LivePathEffectAdd::on_filter(Gtk::FlowBoxChild *child) return false; } } - Gtk::Image *icon = dynamic_cast<Gtk::Image *>(content_overlay[0]); - if (icon) { - if (mode == 2) { - icon->set_pixel_size(40); - } else { - icon->set_pixel_size(60); - } - } - Gtk::EventBox *lpemore = dynamic_cast<Gtk::EventBox *>(contents[4]); - if (lpemore) { - if (mode == 2) { - lpemore->hide(); - } else { - lpemore->show(); - } - } Gtk::Label *lpedesc = dynamic_cast<Gtk::Label *>(contents[2]); if (lpedesc) { - if (mode == 2) { - lpedesc->show(); - lpedesc->set_ellipsize(Pango::ELLIPSIZE_END); - } else { - lpedesc->hide(); - lpedesc->set_ellipsize(Pango::ELLIPSIZE_NONE); - } size_t s = lpedesc->get_text().uppercase().find(_LPEFilter->get_text().uppercase(), 0); if (s != -1) { _visiblelpe++; @@ -596,7 +583,7 @@ void LivePathEffectAdd::reload_effect_list() } } -void LivePathEffectAdd::on_search(bool nowarn) +void LivePathEffectAdd::on_search() { _visiblelpe = 0; _LPESelectorFlowBox->invalidate_filter(); @@ -619,9 +606,6 @@ void LivePathEffectAdd::on_search(bool nowarn) _LPEInfo->get_style_context()->remove_class("lpeinfowarn"); } } - if (nowarn) { - _LPEInfo->set_visible(false); - } } int LivePathEffectAdd::on_sort(Gtk::FlowBoxChild *child1, Gtk::FlowBoxChild *child2) @@ -629,56 +613,234 @@ int LivePathEffectAdd::on_sort(Gtk::FlowBoxChild *child1, Gtk::FlowBoxChild *chi Glib::ustring name1 = ""; Glib::ustring name2 = ""; Gtk::EventBox *eventbox = dynamic_cast<Gtk::EventBox *>(child1->get_child()); + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gint mode = prefs->getInt("/dialogs/livepatheffect/dialogmode", 0); + if (mode == 2) { + eventbox->set_halign(Gtk::ALIGN_START); + } else { + eventbox->set_halign(Gtk::ALIGN_CENTER); + } if (eventbox) { Gtk::Box *box = dynamic_cast<Gtk::Box *>(eventbox->get_child()); + if (mode == 2) { + box->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + } else { + box->set_orientation(Gtk::ORIENTATION_VERTICAL); + } if (box) { std::vector<Gtk::Widget *> contents = box->get_children(); Gtk::Label *lpename = dynamic_cast<Gtk::Label *>(contents[1]); name1 = lpename->get_text(); + if (lpename) { + if (mode == 2) { + lpename->set_justify(Gtk::JUSTIFY_LEFT); + lpename->set_halign(Gtk::ALIGN_START); + lpename->set_valign(Gtk::ALIGN_CENTER); + lpename->set_width_chars(-1); + lpename->set_max_width_chars(-1); + } else { + lpename->set_justify(Gtk::JUSTIFY_CENTER); + lpename->set_halign(Gtk::ALIGN_CENTER); + lpename->set_valign(Gtk::ALIGN_CENTER); + lpename->set_width_chars(14); + lpename->set_max_width_chars(23); + } + } + Gtk::EventBox *lpemore = dynamic_cast<Gtk::EventBox *>(contents[4]); + if (lpemore) { + if (mode == 2) { + lpemore->hide(); + } else { + if (child1->is_selected()) { + lpemore->hide(); + } else { + lpemore->show(); + } + } + } + Gtk::ButtonBox *lpebuttonbox = dynamic_cast<Gtk::ButtonBox *>(contents[5]); + if (lpebuttonbox) { + if (mode == 2) { + lpebuttonbox->hide(); + } else { + if (child1->is_selected()) { + lpebuttonbox->show(); + } else { + lpebuttonbox->hide(); + } + } + } + Gtk::Label *lpedesc = dynamic_cast<Gtk::Label *>(contents[2]); + if (lpedesc) { + if (mode == 2) { + lpedesc->show(); + lpedesc->set_justify(Gtk::JUSTIFY_LEFT); + lpedesc->set_halign(Gtk::ALIGN_START); + lpedesc->set_valign(Gtk::ALIGN_CENTER); + lpedesc->set_ellipsize(Pango::ELLIPSIZE_END); + } else { + lpedesc->hide(); + lpedesc->set_justify(Gtk::JUSTIFY_CENTER); + lpedesc->set_halign(Gtk::ALIGN_CENTER); + lpedesc->set_valign(Gtk::ALIGN_CENTER); + lpedesc->set_ellipsize(Pango::ELLIPSIZE_NONE); + } + } Gtk::Overlay *overlay = dynamic_cast<Gtk::Overlay *>(contents[0]); if (overlay) { std::vector<Gtk::Widget *> contents_overlay = overlay->get_children(); + Gtk::Image *icon = dynamic_cast<Gtk::Image *>(contents_overlay[0]); + if (icon) { + if (mode == 2) { + icon->set_pixel_size(40); + icon->set_margin_right(25); + overlay->set_margin_right(5); + } else { + icon->set_pixel_size(60); + icon->set_margin_right(0); + overlay->set_margin_right(0); + } + } Gtk::EventBox *LPESelectorEffectEventFavTop = dynamic_cast<Gtk::EventBox *>(contents_overlay[1]); if (LPESelectorEffectEventFavTop) { + Gtk::Image *fav = dynamic_cast<Gtk::Image *>(LPESelectorEffectEventFavTop->get_child()); if (sp_has_fav(name1)) { + fav->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectEventFavTop->set_visible(true); LPESelectorEffectEventFavTop->show(); child1->get_style_context()->add_class("lpefav"); child1->get_style_context()->remove_class("lpenormal"); } else if (!sp_has_fav(name1)) { + fav->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectEventFavTop->set_visible(false); LPESelectorEffectEventFavTop->hide(); child1->get_style_context()->remove_class("lpefav"); child1->get_style_context()->add_class("lpenormal"); } + if (mode == 2) { + LPESelectorEffectEventFavTop->set_visible(true); + LPESelectorEffectEventFavTop->show(); + LPESelectorEffectEventFavTop->set_halign(Gtk::ALIGN_END); + LPESelectorEffectEventFavTop->set_valign(Gtk::ALIGN_CENTER); + } else { + LPESelectorEffectEventFavTop->set_halign(Gtk::ALIGN_END); + LPESelectorEffectEventFavTop->set_valign(Gtk::ALIGN_START); + } child1->get_style_context()->add_class("lpe"); } } } } eventbox = dynamic_cast<Gtk::EventBox *>(child2->get_child()); + if (mode == 2) { + eventbox->set_halign(Gtk::ALIGN_START); + } else { + eventbox->set_halign(Gtk::ALIGN_CENTER); + } if (eventbox) { Gtk::Box *box = dynamic_cast<Gtk::Box *>(eventbox->get_child()); + if (mode == 2) { + box->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + } else { + box->set_orientation(Gtk::ORIENTATION_VERTICAL); + } if (box) { std::vector<Gtk::Widget *> contents = box->get_children(); Gtk::Label *lpename = dynamic_cast<Gtk::Label *>(contents[1]); name2 = lpename->get_text(); + if (lpename) { + if (mode == 2) { + lpename->set_justify(Gtk::JUSTIFY_LEFT); + lpename->set_halign(Gtk::ALIGN_START); + lpename->set_valign(Gtk::ALIGN_CENTER); + lpename->set_width_chars(-1); + lpename->set_max_width_chars(-1); + } else { + lpename->set_justify(Gtk::JUSTIFY_CENTER); + lpename->set_halign(Gtk::ALIGN_CENTER); + lpename->set_valign(Gtk::ALIGN_CENTER); + lpename->set_width_chars(14); + lpename->set_max_width_chars(23); + } + } + Gtk::EventBox *lpemore = dynamic_cast<Gtk::EventBox *>(contents[4]); + if (lpemore) { + if (mode == 2) { + lpemore->hide(); + } else { + if (child2->is_selected()) { + lpemore->hide(); + } else { + lpemore->show(); + } + } + } + Gtk::ButtonBox *lpebuttonbox = dynamic_cast<Gtk::ButtonBox *>(contents[5]); + if (lpebuttonbox) { + if (mode == 2) { + lpebuttonbox->hide(); + } else { + if (child2->is_selected()) { + lpebuttonbox->show(); + } else { + lpebuttonbox->hide(); + } + } + } + Gtk::Label *lpedesc = dynamic_cast<Gtk::Label *>(contents[2]); + if (lpedesc) { + if (mode == 2) { + lpedesc->show(); + lpedesc->set_justify(Gtk::JUSTIFY_LEFT); + lpedesc->set_halign(Gtk::ALIGN_START); + lpedesc->set_valign(Gtk::ALIGN_CENTER); + lpedesc->set_ellipsize(Pango::ELLIPSIZE_END); + } else { + lpedesc->hide(); + lpedesc->set_justify(Gtk::JUSTIFY_CENTER); + lpedesc->set_halign(Gtk::ALIGN_CENTER); + lpedesc->set_valign(Gtk::ALIGN_CENTER); + lpedesc->set_ellipsize(Pango::ELLIPSIZE_NONE); + } + } Gtk::Overlay *overlay = dynamic_cast<Gtk::Overlay *>(contents[0]); if (overlay) { std::vector<Gtk::Widget *> contents_overlay = overlay->get_children(); + Gtk::Image *icon = dynamic_cast<Gtk::Image *>(contents_overlay[0]); + if (icon) { + if (mode == 2) { + icon->set_pixel_size(33); + icon->set_margin_right(40); + } else { + icon->set_pixel_size(60); + icon->set_margin_right(0); + } + } Gtk::EventBox *LPESelectorEffectEventFavTop = dynamic_cast<Gtk::EventBox *>(contents_overlay[1]); + Gtk::Image *fav = dynamic_cast<Gtk::Image *>(LPESelectorEffectEventFavTop->get_child()); if (LPESelectorEffectEventFavTop) { if (sp_has_fav(name2)) { + fav->set_from_icon_name("draw-star", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectEventFavTop->set_visible(true); LPESelectorEffectEventFavTop->show(); child2->get_style_context()->add_class("lpefav"); child2->get_style_context()->remove_class("lpenormal"); } else if (!sp_has_fav(name2)) { + fav->set_from_icon_name("draw-star-outline", Gtk::IconSize(Gtk::ICON_SIZE_SMALL_TOOLBAR)); LPESelectorEffectEventFavTop->set_visible(false); LPESelectorEffectEventFavTop->hide(); child2->get_style_context()->remove_class("lpefav"); child2->get_style_context()->add_class("lpenormal"); } + if (mode == 2) { + LPESelectorEffectEventFavTop->set_visible(true); + LPESelectorEffectEventFavTop->show(); + LPESelectorEffectEventFavTop->set_halign(Gtk::ALIGN_END); + LPESelectorEffectEventFavTop->set_valign(Gtk::ALIGN_CENTER); + } else { + LPESelectorEffectEventFavTop->set_halign(Gtk::ALIGN_END); + LPESelectorEffectEventFavTop->set_valign(Gtk::ALIGN_START); + } child2->get_style_context()->add_class("lpe"); } } diff --git a/src/ui/dialog/livepatheffect-add.h b/src/ui/dialog/livepatheffect-add.h index db362ff5e..56890099b 100644 --- a/src/ui/dialog/livepatheffect-add.h +++ b/src/ui/dialog/livepatheffect-add.h @@ -65,7 +65,7 @@ class LivePathEffectAdd { void onClose(); bool on_filter(Gtk::FlowBoxChild *child); int on_sort(Gtk::FlowBoxChild *child1, Gtk::FlowBoxChild *child2); - void on_search(bool nowarn); + void on_search(); void on_focus(Gtk::Widget *widg); bool pop_description(GdkEventCrossing *evt, Glib::RefPtr<Gtk::Builder> builder_effect); bool hide_pop_description(GdkEventCrossing *evt); |
