summaryrefslogtreecommitdiffstats
path: root/src/extension/param/radiobutton.cpp
diff options
context:
space:
mode:
authorNicolas Dufour <nicoduf@yahoo.fr>2015-03-02 18:21:57 +0000
committerJazzyNico <nicoduf@yahoo.fr>2015-03-02 18:21:57 +0000
commitffc4704f95bbe7d9445fb635a5d245d033e7098f (patch)
tree0863446c63820648e87dfa62e67b7d817c38a276 /src/extension/param/radiobutton.cpp
parentFix make check (diff)
downloadinkscape-ffc4704f95bbe7d9445fb635a5d245d033e7098f.tar.gz
inkscape-ffc4704f95bbe7d9445fb635a5d245d033e7098f.zip
Extensions. Fix for Bug #1426684 (INX optiongroup does not trigger a refresh).
Fixed bugs: - https://launchpad.net/bugs/1426684 (bzr r13963)
Diffstat (limited to 'src/extension/param/radiobutton.cpp')
-rw-r--r--src/extension/param/radiobutton.cpp41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp
index f9515197c..740acf1d1 100644
--- a/src/extension/param/radiobutton.cpp
+++ b/src/extension/param/radiobutton.cpp
@@ -249,28 +249,35 @@ void ParamRadioButtonWdg::changed(void)
class ComboWdg : public Gtk::ComboBoxText {
+private:
+ ParamRadioButton* _base;
+ SPDocument* _doc;
+ Inkscape::XML::Node* _node;
+ sigc::signal<void> * _changeSignal;
+
public:
- ComboWdg(ParamRadioButton* base, SPDocument * doc, Inkscape::XML::Node * node) :
- Gtk::ComboBoxText(),
- base(base),
- doc(doc),
- node(node)
+ ComboWdg(ParamRadioButton* base, SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) :
+ _base(base),
+ _doc(doc),
+ _node(node),
+ _changeSignal(changeSignal)
{
+ this->signal_changed().connect(sigc::mem_fun(this, &ComboWdg::changed));
}
virtual ~ComboWdg() {}
+ void changed (void);
+};
-protected:
- ParamRadioButton* base;
- SPDocument* doc;
- Inkscape::XML::Node* node;
-
- virtual void on_changed() {
- if ( base ) {
- Glib::ustring value = base->value_from_label(get_active_text());
- base->set(value.c_str(), doc, node);
- }
+void ComboWdg::changed(void)
+{
+ if ( _base ) {
+ Glib::ustring value = _base->value_from_label(get_active_text());
+ _base->set(value.c_str(), _doc, _node);
}
-};
+ if (_changeSignal != NULL) {
+ _changeSignal->emit();
+ }
+}
/**
* Returns the value for the options label parameter
@@ -317,7 +324,7 @@ Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node
Gtk::ComboBoxText* cbt = 0;
bool comboSet = false;
if (_mode == MINIMAL) {
- cbt = Gtk::manage(new ComboWdg(this, doc, node));
+ cbt = Gtk::manage(new ComboWdg(this, doc, node, changeSignal));
cbt->show();
vbox->pack_start(*cbt, false, false);
}