From: sungmin ha Date: Thu, 23 Jul 2015 06:32:51 +0000 (+0900) Subject: shortcut: added shortcut info on context menu X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.2~286^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2532efb6f7cb2681c846ab4d94bc29ef3c7829ac;p=sdk%2Femulator%2Fqemu.git shortcut: added shortcut info on context menu added shortcut tooltip on general purpose controller Change-Id: I1a420291db0e3798a55949bc8671f00a0e19a3ae Signed-off-by: sungmin ha --- diff --git a/tizen/src/ui/controller/generalpurposecon.cpp b/tizen/src/ui/controller/generalpurposecon.cpp index eeb98fa2b0..13c1f3ebf0 100644 --- a/tizen/src/ui/controller/generalpurposecon.cpp +++ b/tizen/src/ui/controller/generalpurposecon.cpp @@ -61,6 +61,11 @@ void GeneralPurposeCon::createItems(QList keyList, QSize size) if (hwKey != NULL) { keyButton = new HWKeyButton(buttonGroup, hwKey, QSize(GPC_KEYBUTTON_WIDTH, GPC_KEYBUTTON_HEIGHT)); + + if (!hwKey->keySequence.isEmpty()) { + keyButton->setToolTip(hwKey->keySequence); + } + layout->addWidget(keyButton); } } diff --git a/tizen/src/ui/menu/contextmenu.cpp b/tizen/src/ui/menu/contextmenu.cpp index 5a2005fb94..43b2b82cf0 100644 --- a/tizen/src/ui/menu/contextmenu.cpp +++ b/tizen/src/ui/menu/contextmenu.cpp @@ -78,6 +78,15 @@ void ContextMenu::createItems(QMenu *menu, QList &list) for (int i = 0; i < list.count(); i++) { item = list.at(i); + QMap shortcutMap = item->getShortcutMap(); + if (!shortcutMap.isEmpty()) { + QMap::iterator iter; + for (iter = shortcutMap.begin(); iter != shortcutMap.end(); iter++) { + keyboardShortcut->setKeyboardShortcutContextMenu(item, + iter.key(), iter.value()); + } + } + switch (item->getType()) { case MenuItemType::separator: createSeparator(menu); @@ -137,15 +146,6 @@ void ContextMenu::createItems(QMenu *menu, QList &list) default: qWarning("unknown menu item type : %d", item->getType()); } - - QMap shortcutMap = item->getShortcutMap(); - if (!shortcutMap.isEmpty()) { - QMap::iterator iter; - for (iter = shortcutMap.begin(); iter != shortcutMap.end(); iter++) { - keyboardShortcut->setKeyboardShortcutContextMenu(item, - iter.key(), iter.value()); - } - } } } @@ -171,6 +171,25 @@ void ContextMenu::createAdvancedItem(QMenu *menu, MenuItem *item) createItems(advancedMenu, ((AdvancedMenuItem *)item)->getMenuList()); } +QString ContextMenu::getShortcutKeySeq(QString key) +{ + KeyboardShortcut *keyboardShortcut = parent->getKeyboardShortcut(); + QMap shortcutMap = keyboardShortcut->getPopupMenuShortcutMap(); + QMap::iterator iter; + QString keySequence; + + if (!shortcutMap.isEmpty()) { + for (iter = shortcutMap.begin(); iter != shortcutMap.end(); iter++) { + if (iter.key().startsWith(key)) { + keySequence.append(iter.value()); + break; + } + } + } + + return keySequence; +} + void ContextMenu::createInfoItem(QMenu *menu, MenuItem *item) { if (menu == NULL || item == NULL) { @@ -179,7 +198,8 @@ void ContextMenu::createInfoItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionDetailedInfo = addGeneralAction(menu, QIcon(QPixmap(":/icons/detailed_info.png")), - menuName.isEmpty() ? vmName : menuName, SLOT(slotDetailedInfo())); + menuName.isEmpty() ? vmName : menuName, SLOT(slotDetailedInfo()), + getShortcutKeySeq(DETAILED_INFO_TITLE)); } void ContextMenu::createOnTopItem(QMenu *menu, MenuItem *item) @@ -190,6 +210,7 @@ void ContextMenu::createOnTopItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionTopMost = menu->addAction(menuName.isEmpty() ? "Always on Top" : menuName); + actionTopMost->setShortcut(getShortcutKeySeq(menuName)); actionTopMost->setCheckable(true); connect(actionTopMost, SIGNAL(triggered(bool)), this, SLOT(slotTopMost(bool))); } @@ -206,6 +227,8 @@ void ContextMenu::createSwitchItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); switchMenu = menu->addMenu( QIcon(QPixmap(":/icons/rotate.png")), menuName.isEmpty() ? "Switch" : menuName); + QAction *menuAction = switchMenu->menuAction(); + menuAction->setShortcut(getShortcutKeySeq(menuName)); switchGroup = new QActionGroup(this); switchMapper = new QSignalMapper(this); connect(switchMapper, SIGNAL(mapped(int)), this, SLOT(slotSwitch(int))); @@ -239,6 +262,8 @@ void ContextMenu::createScaleItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); scaleMenu = menu->addMenu( QIcon(QPixmap(":/icons/scale.png")), menuName.isEmpty() ? "Scale" : menuName); + QAction *menuAction = scaleMenu->menuAction(); + menuAction->setShortcut(getShortcutKeySeq(menuName)); scaleGroup = new QActionGroup(this); scaleMapper = new QSignalMapper(this); connect(scaleMapper, SIGNAL(mapped(int)), this, SLOT(slotScale(int))); @@ -280,6 +305,8 @@ void ContextMenu::createControllerItem(QMenu *menu, MenuItem *item) if (conFormList.isEmpty() == false) { QString menuName = item->getName(); controllerMenu = menu->addMenu(menuName.isEmpty() ? "Controller" : menuName); + QAction *menuAction = controllerMenu->menuAction(); + menuAction->setShortcut(getShortcutKeySeq(menuName)); controllerGroup = new QActionGroup(this); controllerMapper = new QSignalMapper(this); connect(controllerMapper, SIGNAL(mapped(int)), this, @@ -313,6 +340,8 @@ void ContextMenu::createHostKeyboardItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); QMenu *keyboardMenu = menu->addMenu(QIcon(QPixmap(":/icons/host_keyboard.png")), menuName.isEmpty() ? "Host keyboard" : menuName); + QAction *menuAction = keyboardMenu->menuAction(); + menuAction->setShortcut(getShortcutKeySeq(menuName)); keyboardGroup = new QActionGroup(this); QAction *action = keyboardMenu->addAction(KEYBOARD_ON); @@ -334,7 +363,8 @@ void ContextMenu::createShellItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionShell = addGeneralAction(menu, QIcon(QPixmap(":/icons/shell.png")), - menuName.isEmpty() ? "Shell" : menuName, SLOT(slotShell())); + menuName.isEmpty() ? "Shell" : menuName, SLOT(slotShell()), + getShortcutKeySeq(menuName)); } void ContextMenu::createControlPanelItem(QMenu *menu, MenuItem *item) @@ -345,7 +375,8 @@ void ContextMenu::createControlPanelItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionControlPanel = addGeneralAction(menu, QIcon(QPixmap(":/icons/control_panel.png")), - menuName.isEmpty() ? "Control Panel" : menuName, SLOT(slotControlPanel())); + menuName.isEmpty() ? "Control Panel" : menuName, SLOT(slotControlPanel()), + getShortcutKeySeq(menuName)); } void ContextMenu::createScreenShotItem(QMenu *menu, MenuItem *item) @@ -356,7 +387,8 @@ void ContextMenu::createScreenShotItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionScreenShot = addGeneralAction(menu, QIcon(QPixmap(":/icons/screen_shot.png")), - menuName.isEmpty() ? "Screen Shot" : menuName, SLOT(slotRequestScreenshot())); + menuName.isEmpty() ? "Screen Shot" : menuName, SLOT(slotRequestScreenshot()), + getShortcutKeySeq(menuName)); } void ContextMenu::createAboutItem(QMenu *menu, MenuItem *item) @@ -367,7 +399,8 @@ void ContextMenu::createAboutItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionAbout = addGeneralAction(menu, QIcon(QPixmap(":/icons/about.png")), - menuName.isEmpty() ? "About" : menuName, SLOT(slotAbout())); + menuName.isEmpty() ? "About" : menuName, SLOT(slotAbout()), + getShortcutKeySeq(menuName)); } void ContextMenu::createForceCloseItem(QMenu *menu, MenuItem *item) @@ -378,7 +411,8 @@ void ContextMenu::createForceCloseItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionForceClose = addGeneralAction(menu, QIcon(QPixmap(":/icons/force_close.png")), - menuName.isEmpty() ? "Force Close" : menuName, SLOT(slotForceClose())); + menuName.isEmpty() ? "Force Close" : menuName, SLOT(slotForceClose()), + getShortcutKeySeq(menuName)); } void ContextMenu::createCloseItem(QMenu *menu, MenuItem *item) @@ -389,14 +423,16 @@ void ContextMenu::createCloseItem(QMenu *menu, MenuItem *item) QString menuName = item->getName(); actionClose = addGeneralAction(menu, QIcon(QPixmap(":/icons/close.png")), - menuName.isEmpty() ? "Close" : menuName, SLOT(slotClose())); + menuName.isEmpty() ? "Close" : menuName, SLOT(slotClose()), + getShortcutKeySeq(menuName)); } QAction *ContextMenu::addGeneralAction(QMenu *menu, - const QIcon &icon, const QString &text, const char *slot) + const QIcon &icon, const QString &text, const char *slot, const QString &shortcut) { QAction *action = menu->addAction(text); action->setIcon(icon); + action->setShortcut(shortcut); connect(action, SIGNAL(triggered()), this, slot); return action; diff --git a/tizen/src/ui/menu/contextmenu.h b/tizen/src/ui/menu/contextmenu.h index f0588486fc..8eb684a960 100644 --- a/tizen/src/ui/menu/contextmenu.h +++ b/tizen/src/ui/menu/contextmenu.h @@ -111,10 +111,12 @@ protected: void createForceCloseItem(QMenu *menu, MenuItem *item); void createCloseItem(QMenu *menu, MenuItem *item); bool eventFilter(QObject *obj, QEvent *event); + QString getShortcutKeySeq(QString key); private: QAction *addGeneralAction(QMenu *menu, - const QIcon &icon, const QString &text, const char *slot); + const QIcon &icon, const QString &text, const char *slot, + const QString &shortcut); QMessageBox *showMsgBox(QMessageBox::Icon iconType, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::NoButton, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton);