Merge pull request #3120 from adamreichold/fix-batch-queue-accelerator-group-destruction-order
Fix #3113 by changing the destruction order in the batch queue
This commit is contained in:
commit
ae69a08619
@ -39,46 +39,45 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace rtengine;
|
using namespace rtengine;
|
||||||
|
|
||||||
BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(NULL), fileCatalog(aFileCatalog), sequence(0), listener(NULL),
|
BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(NULL), fileCatalog(aFileCatalog), sequence(0), listener(NULL)
|
||||||
pmenu (new Gtk::Menu ())
|
|
||||||
{
|
{
|
||||||
|
|
||||||
location = THLOC_BATCHQUEUE;
|
location = THLOC_BATCHQUEUE;
|
||||||
|
|
||||||
int p = 0;
|
int p = 0;
|
||||||
|
|
||||||
pmenu->attach (*Gtk::manage(open = new Gtk::MenuItem (M("FILEBROWSER_POPUPOPENINEDITOR"))), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(open = new Gtk::MenuItem (M("FILEBROWSER_POPUPOPENINEDITOR"))), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
pmenu->attach (*Gtk::manage(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
|
|
||||||
pmenu->attach (*Gtk::manage(head = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEHEAD"))), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(head = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEHEAD"))), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
head->set_image(*Gtk::manage(new RTImage ("toleftend.png")));
|
head->set_image(*Gtk::manage(new RTImage ("toleftend.png")));
|
||||||
|
|
||||||
pmenu->attach (*Gtk::manage(tail = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEEND"))), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(tail = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEEND"))), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
tail->set_image(*Gtk::manage(new RTImage ("torightend.png")));
|
tail->set_image(*Gtk::manage(new RTImage ("torightend.png")));
|
||||||
|
|
||||||
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
|
|
||||||
pmenu->attach (*Gtk::manage(cancel = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCANCELJOB"))), 0, 1, p, p + 1);
|
pmenu.attach (*Gtk::manage(cancel = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCANCELJOB"))), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
cancel->set_image(*Gtk::manage(new RTImage ("gtk-close.png")));
|
cancel->set_image(*Gtk::manage(new RTImage ("gtk-close.png")));
|
||||||
|
|
||||||
pmenu->show_all ();
|
pmenu.show_all ();
|
||||||
|
|
||||||
// Accelerators
|
// Accelerators
|
||||||
pmaccelgroup = Gtk::AccelGroup::create ();
|
pmaccelgroup = Gtk::AccelGroup::create ();
|
||||||
pmenu->set_accel_group (pmaccelgroup);
|
pmenu.set_accel_group (pmaccelgroup);
|
||||||
open->add_accelerator ("activate", pmenu->get_accel_group(), GDK_e, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
open->add_accelerator ("activate", pmaccelgroup, GDK_e, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
||||||
selall->add_accelerator ("activate", pmenu->get_accel_group(), GDK_a, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
selall->add_accelerator ("activate", pmaccelgroup, GDK_a, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
|
||||||
head->add_accelerator ("activate", pmenu->get_accel_group(), GDK_Home, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
head->add_accelerator ("activate", pmaccelgroup, GDK_Home, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
||||||
tail->add_accelerator ("activate", pmenu->get_accel_group(), GDK_End, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
tail->add_accelerator ("activate", pmaccelgroup, GDK_End, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
||||||
cancel->add_accelerator ("activate", pmenu->get_accel_group(), GDK_Delete, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
cancel->add_accelerator ("activate", pmaccelgroup, GDK_Delete, (Gdk::ModifierType)0, Gtk::ACCEL_VISIBLE);
|
||||||
|
|
||||||
open->signal_activate().connect(sigc::mem_fun(*this, &BatchQueue::openLastSelectedItemInEditor));
|
open->signal_activate().connect(sigc::mem_fun(*this, &BatchQueue::openLastSelectedItemInEditor));
|
||||||
cancel->signal_activate().connect (std::bind (&BatchQueue::cancelItems, this, std::ref (selected)));
|
cancel->signal_activate().connect (std::bind (&BatchQueue::cancelItems, this, std::ref (selected)));
|
||||||
@ -141,8 +140,7 @@ int BatchQueue::getThumbnailHeight ()
|
|||||||
|
|
||||||
void BatchQueue::rightClicked (ThumbBrowserEntryBase* entry)
|
void BatchQueue::rightClicked (ThumbBrowserEntryBase* entry)
|
||||||
{
|
{
|
||||||
|
pmenu.popup (3, this->eventTime);
|
||||||
pmenu->popup (3, this->eventTime);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BatchQueue::doubleClicked(ThumbBrowserEntryBase* entry)
|
void BatchQueue::doubleClicked(ThumbBrowserEntryBase* entry)
|
||||||
|
@ -57,9 +57,8 @@ protected:
|
|||||||
Gtk::ImageMenuItem* tail;
|
Gtk::ImageMenuItem* tail;
|
||||||
Gtk::MenuItem* selall;
|
Gtk::MenuItem* selall;
|
||||||
Gtk::MenuItem* open;
|
Gtk::MenuItem* open;
|
||||||
std::unique_ptr<Gtk::Menu> pmenu;
|
|
||||||
|
|
||||||
Glib::RefPtr<Gtk::AccelGroup> pmaccelgroup;
|
Glib::RefPtr<Gtk::AccelGroup> pmaccelgroup;
|
||||||
|
Gtk::Menu pmenu;
|
||||||
|
|
||||||
BatchQueueListener* listener;
|
BatchQueueListener* listener;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user