void LauncherView::updateSuperKeyMonitoring() { KeyboardModifiersMonitor *modifiersMonitor = KeyboardModifiersMonitor::instance(); KeyMonitor *keyMonitor = KeyMonitor::instance(); QVariant value = m_dconf_launcher->property("superKeyEnable"); if (!value.isValid() || value.toBool() == true) { QObject::connect(modifiersMonitor, SIGNAL(keyboardModifiersChanged(Qt::KeyboardModifiers)), this, SLOT(setHotkeysForModifiers(Qt::KeyboardModifiers))); /* Ignore Super presses if another key was pressed simultaneously (i.e. a shortcut). https://bugs.launchpad.net/unity-2d/+bug/801073 */ QObject::connect(keyMonitor, SIGNAL(keyPressed()), this, SLOT(ignoreSuperPress())); setHotkeysForModifiers(modifiersMonitor->keyboardModifiers()); } else { QObject::disconnect(modifiersMonitor, SIGNAL(keyboardModifiersChanged(Qt::KeyboardModifiers)), this, SLOT(setHotkeysForModifiers(Qt::KeyboardModifiers))); QObject::disconnect(keyMonitor, SIGNAL(keyPressed()), this, SLOT(ignoreSuperPress())); m_superKeyHoldTimer.stop(); m_superKeyPressed = false; if (m_superKeyHeld) { m_superKeyHeld = false; Q_EMIT superKeyHeldChanged(false); } } }
void Global::updateModifiers() { Qt::KeyboardModifiers keyboardModifiers = QGuiApplication::queryKeyboardModifiers(); if(keyboardModifiers_ != keyboardModifiers) { keyboardModifiers_ = keyboardModifiers; emit keyboardModifiersChanged(); } }
Global::Global(MainWindow * w) : toolMode_(SELECT), toolBar_(0), toolModeToolBar_(0), isScalingCorner_(false), isScalingEdge_(false), isRotating_(false), isDragAndDropping_(false), isDraggingPivot_(false), xSceneCursorPos_(0), ySceneCursorPos_(0), currentDisplayMode_(ILLUSTRATION), switchToDisplayMode_(OUTLINE), otherDisplayMode_(ILLUSTRATION_OUTLINE), mainWindow_(w), preferences_(), preferencesDialog_(0), settings_(0), documentDir_(QDir::home()) { // Color selectors currentColor_ = new ColorSelector(); currentColor_->setToolTip(tr("Current color (C)")); currentColor_->setStatusTip(tr("Click to open the color selector")); snapThreshold_ = new SpinBox(); snapThreshold_->setCaption(tr(" snap threshold ")); sculptRadius_ = new SpinBox(); sculptRadius_->setCaption(tr(" sculpt radius ")); // Event filter QCoreApplication::instance()->installEventFilter(this); // Status bar help statusBarHelp_ = new QLabel(); statusBarHelp_->setText("Find help here."); w->statusBar()->addWidget(statusBarHelp_); connect(this, SIGNAL(keyboardModifiersChanged()), this, SLOT(updateStatusBarHelp())); }