Show shortcuts in tooltip (thanks to krita devs)

CCBUG: 351721
This commit is contained in:
Jean-Baptiste Mardelle
2015-09-03 16:33:50 +02:00
parent 2cd100151a
commit dec999e1b4
4 changed files with 29 additions and 13 deletions

View File

@@ -284,6 +284,21 @@ MainWindow::MainWindow(const QString &MltPath, const QUrl &Url, const QString &
new TimelineSearch(this);
new ScopeManager(this);
// Add shortcut to action tooltips
QList< KActionCollection * > collections = KActionCollection::allCollections();
for (int i = 0; i < collections.count(); ++i) {
KActionCollection *coll = collections.at(i);
foreach( QAction* tempAction, coll->actions()) {
// find the shortcut pattern and delete (note the preceding space in the RegEx)
QString strippedTooltip = tempAction->toolTip().remove(QRegExp("\\s\\(.*\\)"));
// append shortcut if it exists for action
if (tempAction->shortcut() == QKeySequence(0))
tempAction->setToolTip( strippedTooltip);
else
tempAction->setToolTip( strippedTooltip + " (" + tempAction->shortcut().toString() + ")");
}
}
setupGUI();
emit GUISetupDone();

View File

@@ -130,14 +130,11 @@ Monitor::Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QWidget *paren
m_playIcon = QIcon::fromTheme("media-playback-start");
m_pauseIcon = QIcon::fromTheme("media-playback-pause");
if (id != Kdenlive::DvdMonitor) {
m_toolbar->addAction(QIcon::fromTheme("go-first"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
m_toolbar->addAction(QIcon::fromTheme("go-last"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
m_toolbar->addAction(manager->getAction("mark_in"));
m_toolbar->addAction(manager->getAction("mark_out"));
}
m_toolbar->addAction(QIcon::fromTheme("media-seek-backward"), i18n("Rewind"), this, SLOT(slotRewind()));
//m_toolbar->addAction(QIcon::fromTheme("media-skip-backward"), i18n("Rewind 1 frame"), this, SLOT(slotRewindOneFrame()));
m_toolbar->addAction(manager->getAction("monitor_seek_backward"));
QToolButton *playButton = new QToolButton(m_toolbar);
m_playMenu = new QMenu(i18n("Play..."), this);
@@ -150,9 +147,7 @@ Monitor::Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QWidget *paren
playButton->setMenu(m_playMenu);
playButton->setPopupMode(QToolButton::MenuButtonPopup);
m_toolbar->addWidget(playButton);
//m_toolbar->addAction(QIcon::fromTheme("media-skip-forward"), i18n("Forward 1 frame"), this, SLOT(slotForwardOneFrame()));
m_toolbar->addAction(QIcon::fromTheme("media-seek-forward"), i18n("Forward"), this, SLOT(slotForward()));
m_toolbar->addAction(manager->getAction("monitor_seek_forward"));
playButton->setDefaultAction(m_playAction);

View File

@@ -56,6 +56,11 @@ void MonitorManager::setDocument(KdenliveDoc *doc)
m_document = doc;
}
QAction *MonitorManager::getAction(QString name)
{
return pCore->window()->action(name.toLatin1());
}
void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor, RecMonitor *recMonitor)
{
m_clipMonitor = clipMonitor;
@@ -397,12 +402,12 @@ void MonitorManager::setupActions()
pCore->window()->addAction("seek_zone_end", zoneEnd);
connect(zoneEnd, &QAction::triggered, this, &MonitorManager::slotZoneEnd);
QAction *markIn = new QAction(i18n("Set Zone In"), this);
QAction *markIn = new QAction(QIcon::fromTheme("go-first"), i18n("Set Zone In"), this);
markIn->setShortcut(Qt::Key_I);
pCore->window()-> addAction("mark_in", markIn);
pCore->window()->addAction("mark_in", markIn);
connect(markIn, &QAction::triggered, this, &MonitorManager::slotSetInPoint);
QAction *markOut = new QAction(i18n("Set Zone Out"), this);
QAction *markOut = new QAction(QIcon::fromTheme("go-last"), i18n("Set Zone Out"), this);
markOut->setShortcut(Qt::Key_O);
pCore->window()-> addAction("mark_out", markOut);
connect(markOut, &QAction::triggered, this, &MonitorManager::slotSetOutPoint);

View File

@@ -62,7 +62,8 @@ public:
void setConsumerProperty(const QString &name, const QString &value);
BinController *binController();
Mlt::Profile *profile();
/** @brief Return a mainwindow action from its id name. */
QAction *getAction(QString name);
Monitor *clipMonitor();
Monitor *projectMonitor();