Disable addExt/delExt buttons based on context
This commit is contained in:
parent
cffba6c3b0
commit
6eb191c5e5
@ -1566,8 +1566,10 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
|||||||
delExt = Gtk::manage(new Gtk::Button());
|
delExt = Gtk::manage(new Gtk::Button());
|
||||||
moveExtUp = Gtk::manage(new Gtk::Button());
|
moveExtUp = Gtk::manage(new Gtk::Button());
|
||||||
moveExtDown = Gtk::manage(new Gtk::Button());
|
moveExtDown = Gtk::manage(new Gtk::Button());
|
||||||
addExt->set_tooltip_text(M("PREFERENCES_PARSEDEXTADDHINT"));
|
addExt->set_sensitive(false);
|
||||||
delExt->set_tooltip_text(M("PREFERENCES_PARSEDEXTDELHINT"));
|
delExt->set_sensitive(false);
|
||||||
|
addExt->set_tooltip_markup(M("PREFERENCES_PARSEDEXTADDHINT"));
|
||||||
|
delExt->set_tooltip_markup(M("PREFERENCES_PARSEDEXTDELHINT"));
|
||||||
moveExtUp->set_tooltip_text(M("PREFERENCES_PARSEDEXTUPHINT"));
|
moveExtUp->set_tooltip_text(M("PREFERENCES_PARSEDEXTUPHINT"));
|
||||||
moveExtDown->set_tooltip_text(M("PREFERENCES_PARSEDEXTDOWNHINT"));
|
moveExtDown->set_tooltip_text(M("PREFERENCES_PARSEDEXTDOWNHINT"));
|
||||||
Gtk::Image* addExtImg = Gtk::manage ( new RTImage ("add-small", Gtk::ICON_SIZE_BUTTON) );
|
Gtk::Image* addExtImg = Gtk::manage ( new RTImage ("add-small", Gtk::ICON_SIZE_BUTTON) );
|
||||||
@ -1672,11 +1674,14 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
|||||||
|
|
||||||
vbFileBrowser->pack_start (*hb6, Gtk::PACK_SHRINK, 4);
|
vbFileBrowser->pack_start (*hb6, Gtk::PACK_SHRINK, 4);
|
||||||
|
|
||||||
|
extensions->signal_cursor_changed().connect(sigc::mem_fun(*this, &Preferences::extensionsChanged));
|
||||||
|
extension->signal_changed().connect(sigc::mem_fun(*this, &Preferences::extensionChanged));
|
||||||
|
|
||||||
addExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::addExtPressed));
|
addExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::addExtPressed));
|
||||||
delExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::delExtPressed));
|
delExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::delExtPressed));
|
||||||
moveExtUp->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtUpPressed));
|
moveExtUp->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtUpPressed));
|
||||||
moveExtDown->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtDownPressed));
|
moveExtDown->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtDownPressed));
|
||||||
extension->signal_activate().connect(sigc::mem_fun(*this, &Preferences::addExtPressed));
|
|
||||||
clearThumbsBtn->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::clearThumbImagesPressed) );
|
clearThumbsBtn->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::clearThumbImagesPressed) );
|
||||||
if (moptions.saveParamsCache) {
|
if (moptions.saveParamsCache) {
|
||||||
clearProfilesBtn->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::clearProfilesPressed));
|
clearProfilesBtn->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::clearProfilesPressed));
|
||||||
@ -2670,9 +2675,50 @@ void Preferences::workflowUpdate()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Preferences::extensionsChanged()
|
||||||
|
{
|
||||||
|
const Glib::RefPtr<Gtk::TreeSelection> selection = extensions->get_selection();
|
||||||
|
if (!selection) {
|
||||||
|
delExt->set_sensitive(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Gtk::TreeModel::iterator selected = selection->get_selected();
|
||||||
|
if (!selected) {
|
||||||
|
delExt->set_sensitive(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool delOkay = true;
|
||||||
|
for (auto const &x : moptions.knownExtensions) {
|
||||||
|
if (x == (*selected)[extensionColumns.ext]) {
|
||||||
|
delOkay = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delExt->set_sensitive(delOkay);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::extensionChanged()
|
||||||
|
{
|
||||||
|
if (extension->get_text()[0] == '\0') {
|
||||||
|
addExt->set_sensitive(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Gtk::TreeNodeChildren c = extensionModel->children();
|
||||||
|
for (size_t i = 0; i < c.size(); i++) {
|
||||||
|
if (c[i][extensionColumns.ext] == extension->get_text()) {
|
||||||
|
addExt->set_sensitive(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addExt->set_sensitive(true);
|
||||||
|
}
|
||||||
|
|
||||||
void Preferences::addExtPressed()
|
void Preferences::addExtPressed()
|
||||||
{
|
{
|
||||||
|
|
||||||
Gtk::TreeNodeChildren c = extensionModel->children();
|
Gtk::TreeNodeChildren c = extensionModel->children();
|
||||||
|
|
||||||
for (size_t i = 0; i < c.size(); i++) {
|
for (size_t i = 0; i < c.size(); i++) {
|
||||||
@ -2685,33 +2731,14 @@ void Preferences::addExtPressed()
|
|||||||
|
|
||||||
row[extensionColumns.enabled] = true;
|
row[extensionColumns.enabled] = true;
|
||||||
row[extensionColumns.ext] = extension->get_text();
|
row[extensionColumns.ext] = extension->get_text();
|
||||||
|
|
||||||
|
extension->set_text("");
|
||||||
|
addExt->set_sensitive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Preferences::delExtPressed()
|
void Preferences::delExtPressed()
|
||||||
{
|
{
|
||||||
const Glib::RefPtr<Gtk::TreeSelection> selection = extensions->get_selection();
|
extensionModel->erase(extensions->get_selection()->get_selected());
|
||||||
|
|
||||||
if (!selection) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Gtk::TreeModel::iterator selected = selection->get_selected();
|
|
||||||
|
|
||||||
if (!selected) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool delOkay = true;
|
|
||||||
for (auto const &x : moptions.knownExtensions) {
|
|
||||||
if (x == (*selected)[extensionColumns.ext]) {
|
|
||||||
delOkay = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (delOkay) {
|
|
||||||
extensionModel->erase(selected);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Preferences::moveExtUpPressed()
|
void Preferences::moveExtUpPressed()
|
||||||
|
@ -323,6 +323,8 @@ public:
|
|||||||
void observer10Toggled ();
|
void observer10Toggled ();
|
||||||
|
|
||||||
void selectStartupDir ();
|
void selectStartupDir ();
|
||||||
|
void extensionsChanged ();
|
||||||
|
void extensionChanged ();
|
||||||
void addExtPressed ();
|
void addExtPressed ();
|
||||||
void delExtPressed ();
|
void delExtPressed ();
|
||||||
void moveExtUpPressed ();
|
void moveExtUpPressed ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user