ClientImpl::ClientImpl(Client *interface, QObject *parent) : QObject(parent) , mInterface(interface) , mServiceWatcher(new QDBusServiceWatcher("org.razorqt.global_key_shortcuts", QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this)) , mDaemonPresent(false) { connect(mServiceWatcher, SIGNAL(serviceUnregistered(QString)), this, SLOT(daemonDisappeared(QString))); connect(mServiceWatcher, SIGNAL(serviceRegistered(QString)), this, SLOT(daemonAppeared(QString))); mProxy = new org::razorqt::global_key_shortcuts::native("org.razorqt.global_key_shortcuts", "/native", QDBusConnection::sessionBus(), this); mDaemonPresent = mProxy->isValid(); connect(this, SIGNAL(emitShortcutGrabbed(QString)), mInterface, SIGNAL(shortcutGrabbed(QString))); connect(this, SIGNAL(emitGrabShortcutFailed()), mInterface, SIGNAL(grabShortcutFailed())); connect(this, SIGNAL(emitGrabShortcutCancelled()), mInterface, SIGNAL(grabShortcutCancelled())); connect(this, SIGNAL(emitGrabShortcutTimedout()), mInterface, SIGNAL(grabShortcutTimedout())); connect(this, SIGNAL(emitDaemonDisappeared()), mInterface, SIGNAL(daemonDisappeared())); connect(this, SIGNAL(emitDaemonAppeared()), mInterface, SIGNAL(daemonAppeared())); connect(this, SIGNAL(emitDaemonPresenceChanged(bool)), mInterface, SIGNAL(daemonPresenceChanged(bool))); }
DefaultModel::DefaultModel(Actions *actions, const QColor &grayedOutColour, const QFont &highlightedFont, const QFont &italicFont, const QFont &highlightedItalicFont, QObject *parent) : QAbstractTableModel(parent) , mActions(actions) , mGrayedOutColour(grayedOutColour) , mHighlightedFont(highlightedFont) , mItalicFont(italicFont) , mHighlightedItalicFont(highlightedItalicFont) { connect(actions, SIGNAL(daemonDisappeared()), SLOT(daemonDisappeared())); connect(actions, SIGNAL(daemonAppeared()), SLOT(daemonAppeared())); connect(actions, SIGNAL(actionAdded(qulonglong)), SLOT(actionAdded(qulonglong))); connect(actions, SIGNAL(actionModified(qulonglong)), SLOT(actionModified(qulonglong))); connect(actions, SIGNAL(actionEnabled(qulonglong, bool)), SLOT(actionEnabled(qulonglong, bool))); connect(actions, SIGNAL(actionsSwapped(qulonglong, qulonglong)), SLOT(actionsSwapped(qulonglong, qulonglong))); connect(actions, SIGNAL(actionRemoved(qulonglong)), SLOT(actionRemoved(qulonglong))); mVerboseType["command"] = tr("Command"); mVerboseType["method"] = tr("DBus call"); mVerboseType["client"] = tr("Client"); }
MainWindow::MainWindow(QWidget *parent) : QDialog(parent) , mEditActionDialog(0) { setupUi(this); QColor grayedOutColour(actions_TV->palette().color(actions_TV->foregroundRole())); QColor backgroundColour(actions_TV->palette().color(actions_TV->backgroundRole())); grayedOutColour.toHsl(); backgroundColour.toHsl(); grayedOutColour.setHslF(grayedOutColour.hslHueF(), grayedOutColour.hslSaturationF(), (grayedOutColour.lightnessF() + backgroundColour.lightnessF() * 3) / 4.0); grayedOutColour.toRgb(); QFont highlightedFont(actions_TV->font()); QFont italicFont(actions_TV->font()); QFont highlightedItalicFont(actions_TV->font()); highlightedFont.setBold(!highlightedFont.bold()); italicFont.setItalic(!italicFont.italic()); highlightedItalicFont.setItalic(!highlightedItalicFont.italic()); highlightedItalicFont.setBold(!highlightedItalicFont.bold()); mActions = new Actions(this); mDefaultModel = new DefaultModel(mActions, grayedOutColour, highlightedFont, italicFont, highlightedItalicFont, this); mSortFilterProxyModel = new QSortFilterProxyModel(this); mSortFilterProxyModel->setSourceModel(mDefaultModel); actions_TV->setModel(mSortFilterProxyModel); mSelectionModel = new QItemSelectionModel(actions_TV->model()); actions_TV->setSelectionModel(mSelectionModel); actions_TV->setItemDelegateForColumn(1, new ShortcutDelegate(mActions, this)); connect(mSelectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)), SLOT(selectionChanged(QItemSelection, QItemSelection))); connect(mActions, SIGNAL(daemonDisappeared()), SLOT(daemonDisappeared())); connect(mActions, SIGNAL(daemonAppeared()), SLOT(daemonAppeared())); connect(mActions, SIGNAL(multipleActionsBehaviourChanged(MultipleActionsBehaviour)), SLOT(multipleActionsBehaviourChanged(MultipleActionsBehaviour))); }
void Actions::on_daemonAppeared(const QString &) { init(); emit daemonAppeared(); }