summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/dialog/livepatheffect-add.cpp29
-rw-r--r--src/ui/dialog/livepatheffect-add.h2
2 files changed, 30 insertions, 1 deletions
diff --git a/src/ui/dialog/livepatheffect-add.cpp b/src/ui/dialog/livepatheffect-add.cpp
index 84090c2e8..cc4375f37 100644
--- a/src/ui/dialog/livepatheffect-add.cpp
+++ b/src/ui/dialog/livepatheffect-add.cpp
@@ -92,6 +92,7 @@ LivePathEffectAdd::LivePathEffectAdd()
_builder->get_widget("LPEExperimentals", _LPEExperimentals);
_builder->get_widget("LPEScrolled", _LPEScrolled);
_builder->get_widget("LPESelectorEffectEventFavShow", _LPESelectorEffectEventFavShow);
+ _builder->get_widget("LPESelectorEffectInfoEventBox", _LPESelectorEffectInfoEventBox);
_LPEFilter->signal_search_changed().connect(sigc::mem_fun(*this, &LivePathEffectAdd::on_search));
_LPESelectorFlowBox->signal_child_activated().connect(sigc::mem_fun(*this, &LivePathEffectAdd::on_activate));
_LPEDialogSelector->add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK );
@@ -139,7 +140,6 @@ LivePathEffectAdd::LivePathEffectAdd()
LPESelectorButtonBox->signal_leave_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseout), GTK_WIDGET(LPESelectorEffect->gobj())));
LPESelectorEffect->signal_enter_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseover), GTK_WIDGET(LPESelectorEffect->gobj())));
LPESelectorEffect->signal_leave_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseout), GTK_WIDGET(LPESelectorEffect->gobj())));
-
_LPESelectorFlowBox->insert(*LPESelectorEffect, i);
}
_visiblelpe = _LPESelectorFlowBox->get_children().size();
@@ -147,10 +147,25 @@ LivePathEffectAdd::LivePathEffectAdd()
_LPESelectorEffectEventFavShow->signal_enter_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseover), GTK_WIDGET(_LPESelectorEffectEventFavShow->gobj())));
_LPESelectorEffectEventFavShow->signal_leave_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseout), GTK_WIDGET(_LPESelectorEffectEventFavShow->gobj())));
_LPESelectorEffectEventFavShow->signal_button_press_event().connect(sigc::mem_fun(*this, &LivePathEffectAdd::show_fav_toggler));
+ _LPESelectorEffectInfoEventBox->signal_button_press_event().connect(sigc::mem_fun(*this, &LivePathEffectAdd::hide_pop_description));
+ _LPESelectorEffectInfoEventBox->signal_enter_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseover), GTK_WIDGET(_LPESelectorEffectInfoEventBox->gobj())));
+ _LPESelectorEffectInfoEventBox->signal_leave_notify_event().connect(sigc::bind<GtkWidget *>(sigc::mem_fun(*this, &LivePathEffectAdd::mouseout), GTK_WIDGET(_LPESelectorEffectInfoEventBox->gobj())));
_LPESelectorFlowBox->set_sort_func(sigc::mem_fun(*this, &LivePathEffectAdd::on_sort));
_LPESelectorFlowBox->set_filter_func(sigc::mem_fun(*this, &LivePathEffectAdd::on_filter));
_LPEExperimentals->property_active().signal_changed().connect(sigc::mem_fun(*this, &LivePathEffectAdd::reload_effect_list));
_LPEDialogSelector->show_all_children();
+ int width;
+ int height;
+ int original_width;
+ int original_height;
+ _LPEDialogSelector->get_default_size (original_width, original_height);
+ _LPEDialogSelector->get_size (width, height);
+ if( width == original_width && height == original_height ){
+ Gtk::Window *window = SP_ACTIVE_DESKTOP->getToplevel();
+ window->get_size (width, height);
+ _LPEDialogSelector->resize(std::min(width - 300, 1800), height - 300);
+ reload_effect_list();
+ }
}
void LivePathEffectAdd::on_activate(Gtk::FlowBoxChild *child)
@@ -208,6 +223,12 @@ bool LivePathEffectAdd::pop_description(GdkEventButton* evt, Glib::RefPtr<Gtk::B
return true;
}
+bool LivePathEffectAdd::hide_pop_description(GdkEventButton* evt)
+{
+ _LPESelectorEffectInfoPop->hide();
+ return true;
+}
+
bool LivePathEffectAdd::fav_toggler(GdkEventButton* evt, Glib::RefPtr<Gtk::Builder> builder_effect)
{
Gtk::EventBox *LPESelectorEffect;
@@ -320,6 +341,12 @@ void LivePathEffectAdd::reload_effect_list()
_LPEInfo->set_visible(false);
_LPEInfo->get_style_context()->remove_class("lpeinfowarn");
}
+ if (!_showfavs &&
+ _LPEFilter->get_text().empty() &&
+ _LPEDialogSelector->get_allocated_height() - 200 > _LPESelectorFlowBox->get_allocated_height())
+ {
+ _LPEDialogSelector->resize(_LPEDialogSelector->get_allocated_width(), _LPESelectorFlowBox->get_allocated_height() + 200);
+ }
}
void LivePathEffectAdd::on_search()
diff --git a/src/ui/dialog/livepatheffect-add.h b/src/ui/dialog/livepatheffect-add.h
index 709cf2996..af411715d 100644
--- a/src/ui/dialog/livepatheffect-add.h
+++ b/src/ui/dialog/livepatheffect-add.h
@@ -62,6 +62,7 @@ public:
void on_search();
void on_activate(Gtk::FlowBoxChild *child);
bool pop_description(GdkEventButton* evt, Glib::RefPtr<Gtk::Builder> builder_effect);
+ bool hide_pop_description(GdkEventButton* evt);
bool fav_toggler(GdkEventButton* evt, Glib::RefPtr<Gtk::Builder> builder_effect);
bool show_fav_toggler(GdkEventButton* evt);
bool mouseover(GdkEventCrossing* evt, GtkWidget *wdg);
@@ -88,6 +89,7 @@ private:
Gtk::FlowBox *_LPESelectorFlowBox;
Gtk::Popover *_LPESelectorEffectInfoPop;
Gtk::EventBox *_LPESelectorEffectEventFavShow;
+ Gtk::EventBox *_LPESelectorEffectInfoEventBox;
Gtk::Switch * _LPEExperimentals;
Gtk::SearchEntry *_LPEFilter;
Gtk::ScrolledWindow *_LPEScrolled;