ContextMenu::ContextMenu(QWidget *parent) :
QMenu(parent)
{
+ infoDialog = NULL;
+ aboutDialog = NULL;
+
+ createItems();
+
+ installEventFilter(this);
+}
+
+void ContextMenu::createItems() {
MainWindow *win = (MainWindow *)this->parent();
/* Detailed Info menu */
- infoDialog = new DetailedInfoDialog(win);
QAction *action = addAction(win->uiInfo->vmName + " : "
- + QString::number(win->uiInfo->basePort));
+ + QString::number(win->uiInfo->basePort));
action->setIcon(QIcon(QPixmap(":/icons/detailed_info.png")));
connect(action, SIGNAL(triggered()), this, SLOT(slotDetailedInfo()));
connect(action, SIGNAL(triggered()), this, SLOT(slotClose()));
}
+bool ContextMenu::eventFilter(QObject *obj, QEvent *event)
+{
+ ContextMenu *menu = dynamic_cast<ContextMenu *>(obj);
+
+ if (menu != NULL &&
+ (event->type() == QEvent::MouseButtonPress ||
+ event->type() == QEvent::MouseButtonRelease)) {
+ QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(event);
+
+ if (mouseEvent != NULL && mouseEvent->button() == Qt::RightButton) {
+ mouseEvent->ignore(); /* filtering */
+ return true;
+ }
+ }
+
+ return QObject::eventFilter(obj, event);
+}
+
void ContextMenu::slotDetailedInfo()
{
qDebug("VM info");
- /* for modaless dialog */
- if (infoDialog != NULL) {
- infoDialog->show();
+ if (infoDialog == NULL) {
+ infoDialog = new DetailedInfoDialog((QWidget *)this->parent());
}
+
+ infoDialog->show();
}
void ContextMenu::slotTopMost(bool check)
{
qDebug("about");
- if (aboutDialog != NULL) {
- aboutDialog->show();
+ if (aboutDialog == NULL) {
+ aboutDialog = new AboutDialog((QWidget *)this->parent());
}
+
+ aboutDialog->show();
}
void ContextMenu::slotForceClose()
<RCC>
- <qresource prefix="/skins">
- <file>wearable-320x320-1btn/default_0.png</file>
- <file>wearable-320x320-1btn/default_0_p.png</file>
- <file>wearable-320x320-1btn/default_180.png</file>
- <file>wearable-320x320-1btn/default_180_p.png</file>
- <file>wearable-320x320-1btn/default_L90.png</file>
- <file>wearable-320x320-1btn/default_L90_p.png</file>
- <file>wearable-320x320-1btn/default_R90.png</file>
- <file>wearable-320x320-1btn/default_R90_p.png</file>
- <file>wearable-320x320-1btn/layout.qml</file>
- <file>mobile-720x1280-3btn/default_0.png</file>
- <file>mobile-720x1280-3btn/default_0_p.png</file>
- <file>mobile-720x1280-3btn/default_180.png</file>
- <file>mobile-720x1280-3btn/default_180_p.png</file>
- <file>mobile-720x1280-3btn/default_L90.png</file>
- <file>mobile-720x1280-3btn/default_L90_p.png</file>
- <file>mobile-720x1280-3btn/default_R90.png</file>
- <file>mobile-720x1280-3btn/default_R90_p.png</file>
- <file>mobile-720x1280-3btn/layout.qml</file>
- </qresource>
<qresource prefix="/">
<file>about.png</file>
<file>icons/emulator_icon.ico</file>