Add buttons to the file browser preferences to make the list of extensions user-sortable.

This commit is contained in:
Adam Reichold 2015-11-13 20:08:25 +01:00
parent ee766b71b8
commit b89cd282e0
3 changed files with 46 additions and 0 deletions

View File

@ -1001,6 +1001,8 @@ PREFERENCES_PARSEDEXT;Parsed Extensions
PREFERENCES_PARSEDEXTADD;Add extension
PREFERENCES_PARSEDEXTADDHINT;Add entered extension to the list.
PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.
PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list.
PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list.
PREFERENCES_PREVDEMO;Preview Demosaic Method
PREFERENCES_PREVDEMO_FAST;Fast
PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom:

View File

@ -1188,12 +1188,20 @@ Gtk::Widget* Preferences::getFileBrowserPanel ()
hb0->pack_start (*extension);
addExt = Gtk::manage( new Gtk::Button () );
delExt = Gtk::manage( new Gtk::Button () );
moveExtUp = Gtk::manage( new Gtk::Button () );
moveExtDown = Gtk::manage( new Gtk::Button () );
addExt->set_tooltip_text (M("PREFERENCES_PARSEDEXTADDHINT"));
delExt->set_tooltip_text (M("PREFERENCES_PARSEDEXTDELHINT"));
moveExtUp->set_tooltip_text (M("PREFERENCES_PARSEDEXTUPHINT"));
moveExtDown->set_tooltip_text (M("PREFERENCES_PARSEDEXTDOWNHINT"));
Gtk::Image* addExtImg = Gtk::manage( new RTImage ("list-add-small.png") );
Gtk::Image* delExtImg = Gtk::manage( new RTImage ("list-remove-red-small.png") );
addExt->add (*addExtImg);
delExt->add (*delExtImg);
moveExtUp->set_label (""); // TODO: Add arrow up image...
moveExtDown->set_label (""); // TODO: Add arrow down image...
hb0->pack_end (*moveExtDown, Gtk::PACK_SHRINK, 4);
hb0->pack_end (*moveExtUp, Gtk::PACK_SHRINK, 4);
hb0->pack_end (*delExt, Gtk::PACK_SHRINK, 4);
hb0->pack_end (*addExt, Gtk::PACK_SHRINK, 4);
extensions = Gtk::manage( new Gtk::TreeView () );
@ -1264,6 +1272,8 @@ Gtk::Widget* Preferences::getFileBrowserPanel ()
addExt->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::addExtPressed) );
delExt->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::delExtPressed) );
moveExtUp->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::moveExtUpPressed) );
moveExtDown->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::moveExtDownPressed) );
extension->signal_activate().connect( sigc::mem_fun(*this, &Preferences::addExtPressed) );
clearThumbnails->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::clearThumbImagesPressed) );
clearProfiles->signal_clicked().connect( sigc::mem_fun(*this, &Preferences::clearProfilesPressed) );
@ -2082,6 +2092,36 @@ void Preferences::delExtPressed ()
extensionModel->erase (extensions->get_selection()->get_selected ());
}
void Preferences::moveExtUpPressed ()
{
const Glib::RefPtr<Gtk::TreeSelection> selection = extensions->get_selection ();
if (!selection)
return;
const Gtk::TreeModel::iterator selected = selection->get_selected ();
if (!selected || selected == extensionModel->children ().begin ())
return;
Gtk::TreeModel::iterator previous = selected;
--previous;
extensionModel->iter_swap (selected, previous);
}
void Preferences::moveExtDownPressed ()
{
const Glib::RefPtr<Gtk::TreeSelection> selection = extensions->get_selection ();
if (!selection)
return;
const Gtk::TreeModel::iterator selected = selection->get_selected ();
if (!selected)
return;
Gtk::TreeModel::iterator next = selected;
if (++next)
extensionModel->iter_swap (selected, next);
}
void Preferences::clearProfilesPressed ()
{

View File

@ -144,6 +144,8 @@ protected:
Gtk::TreeView* extensions;
Gtk::Button* addExt;
Gtk::Button* delExt;
Gtk::Button* moveExtUp;
Gtk::Button* moveExtDown;
Gtk::CheckButton* overlayedFileNames;
Gtk::CheckButton* filmStripOverlayedFileNames;
Gtk::CheckButton* sameThumbSize;
@ -242,6 +244,8 @@ public:
void selectStartupDir ();
void addExtPressed ();
void delExtPressed ();
void moveExtUpPressed ();
void moveExtDownPressed ();
void darkFrameChanged ();
void flatFieldChanged ();
void clearProfilesPressed ();