shortcut: added shortcut info on context menu
authorsungmin ha <sungmin82.ha@samsung.com>
Thu, 23 Jul 2015 06:32:51 +0000 (15:32 +0900)
committerSangHo Park <sangho.p@samsung.com>
Fri, 24 Jul 2015 03:16:26 +0000 (12:16 +0900)
added shortcut tooltip on general purpose controller

Change-Id: I1a420291db0e3798a55949bc8671f00a0e19a3ae
Signed-off-by: sungmin ha <sungmin82.ha@samsung.com>
tizen/src/ui/controller/generalpurposecon.cpp
tizen/src/ui/menu/contextmenu.cpp
tizen/src/ui/menu/contextmenu.h

index eeb98fa2b0a4a836bd7c9db4b6e52a3dc238f2f6..13c1f3ebf06c27f5adeaa7ce0ff94c6a57445429 100644 (file)
@@ -61,6 +61,11 @@ void GeneralPurposeCon::createItems(QList<HardwareKey *> 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);
         }
     }
index 5a2005fb941636605aa581d8ace3c4772b3f795c..43b2b82cf0ff22f8cd1fbd79f7310b205875da20 100644 (file)
@@ -78,6 +78,15 @@ void ContextMenu::createItems(QMenu *menu, QList<MenuItem *> &list)
     for (int i = 0; i < list.count(); i++) {
         item = list.at(i);
 
+        QMap<QString, QString> shortcutMap = item->getShortcutMap();
+        if (!shortcutMap.isEmpty()) {
+            QMap<QString, QString>::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<MenuItem *> &list)
         default:
             qWarning("unknown menu item type : %d", item->getType());
         }
-
-        QMap<QString, QString> shortcutMap = item->getShortcutMap();
-        if (!shortcutMap.isEmpty()) {
-            QMap<QString, QString>::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<QString, QString> shortcutMap = keyboardShortcut->getPopupMenuShortcutMap();
+    QMap<QString, QString>::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;
index f0588486fcd2126e255994cd252add9501cf423c..8eb684a960871a31430ac4f0d691bc0729d8e0fa 100644 (file)
@@ -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);