Fixed a bug with crash if pressed any key in batch queue panel; some minor code changes to shortcut keys handling

This commit is contained in:
Ilia Popov 2010-09-14 01:35:47 +02:00
parent 8e404c95a2
commit cfbc6a511c
2 changed files with 34 additions and 43 deletions

View File

@ -914,6 +914,37 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
bool ctrl = event->state & GDK_CONTROL_MASK;
bool shift = event->state & GDK_SHIFT_MASK;
modifierKey = event->state;
switch(event->keyval) {
case GDK_1:
categoryButtonToggled(bRank[0]);
return true;
case GDK_2:
categoryButtonToggled(bRank[1]);
return true;
case GDK_3:
categoryButtonToggled(bRank[2]);
return true;
case GDK_4:
categoryButtonToggled(bRank[3]);
return true;
case GDK_5:
categoryButtonToggled(bRank[4]);
return true;
case GDK_grave:
categoryButtonToggled(bUnRanked);
return true;
case GDK_d:
case GDK_D:
categoryButtonToggled(bDir);
return true;
case GDK_t:
case GDK_T:
categoryButtonToggled(bTrash);
return true;
}
if (!ctrl) {
switch(event->keyval) {
case GDK_i:
@ -928,51 +959,10 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
case GDK_underscore:
zoomOut();
return true;
case GDK_1:
categoryButtonToggled(bRank[0]);
return true;
case GDK_2:
categoryButtonToggled(bRank[1]);
return true;
case GDK_3:
categoryButtonToggled(bRank[2]);
return true;
case GDK_4:
categoryButtonToggled(bRank[3]);
return true;
case GDK_5:
categoryButtonToggled(bRank[4]);
return true;
case GDK_grave:
categoryButtonToggled(bUnRanked);
return true;
case GDK_d:
case GDK_D:
categoryButtonToggled(bDir);
return true;
case GDK_t:
case GDK_T:
categoryButtonToggled(bTrash);
return true;
}
}
else {
switch (event->keyval) {
// case GDK_s:
// saveAsPressed();
// return true;
// case GDK_q:
// queueImgPressed();
// return true;
// case GDK_e:
// sendToGimpPressed();
// return true;
// case GDK_z:
// history->undo ();
// return true;
// case GDK_Z:
// history->redo ();
// return true;
}
}

View File

@ -162,8 +162,9 @@ bool RTWindow::keyPressed (GdkEventKey* event) {
if (mainNB->get_current_page() == mainNB->page_num(*fpanel)) {
return fpanel->handleShortcutKey (event);
}
// else if (mainNB->get_nth_page (mainNB->get_current_page()) == bqpanel) {
// }
else if (mainNB->get_current_page() == mainNB->page_num(*bpanel)) {
return false;
}
else {
EditorPanel* ep = (EditorPanel*)mainNB->get_nth_page (mainNB->get_current_page());
return ep->handleShortcutKey (event);