]> git.sur5r.net Git - minitube/blob - src/globalshortcuts.cpp
Imported Upstream version 1.2
[minitube] / src / globalshortcuts.cpp
1 #include "globalshortcuts.h"
2 #include "globalshortcutbackend.h"
3
4 static GlobalShortcuts *singleton = 0;
5
6 GlobalShortcuts& GlobalShortcuts::instance() {
7     if (!singleton) singleton = new GlobalShortcuts();
8     return *singleton;
9 }
10
11 GlobalShortcuts::GlobalShortcuts(QObject *parent)
12     : QObject(parent),
13     backend(0) {
14
15     // Create actions
16     AddShortcut("play", tr("Play"), SIGNAL(Play()));
17     AddShortcut("pause", tr("Pause"), SIGNAL(Pause()));
18     AddShortcut("play_pause", tr("Play/Pause"), SIGNAL(PlayPause()), QKeySequence(Qt::Key_MediaPlay));
19     AddShortcut("stop", tr("Stop"), SIGNAL(Stop()), QKeySequence(Qt::Key_MediaStop));
20     AddShortcut("stop_after", tr("Stop playing after current track"), SIGNAL(StopAfter()));
21     AddShortcut("next_track", tr("Next track"), SIGNAL(Next()), QKeySequence(Qt::Key_MediaNext));
22     AddShortcut("prev_track", tr("Previous track"), SIGNAL(Previous()), QKeySequence(Qt::Key_MediaPrevious));
23     AddShortcut("inc_volume", tr("Increase volume"), SIGNAL(IncVolume()));
24     AddShortcut("dec_volume", tr("Decrease volume"), SIGNAL(DecVolume()));
25     AddShortcut("mute", tr("Mute"), SIGNAL(Mute()));
26     AddShortcut("seek_forward", tr("Seek forward"), SIGNAL(SeekForward()));
27     AddShortcut("seek_backward", tr("Seek backward"), SIGNAL(SeekBackward()));
28
29 }
30
31 void GlobalShortcuts::AddShortcut(const QString &id, const QString &name,
32                                   const char* signal,
33                                   const QKeySequence &default_key) {
34     Shortcut shortcut;
35     shortcut.action = new QAction(name, this);
36     shortcut.action->setShortcut(default_key);
37     shortcut.id = id;
38     shortcut.default_key = default_key;
39
40     connect(shortcut.action, SIGNAL(triggered()), this, signal);
41
42     shortcuts_[id] = shortcut;
43 }
44
45 void GlobalShortcuts::reload() {
46     if (backend) {
47         backend->Unregister();
48         backend->Register();
49     }
50 }