Global shortcuts dialog should work now.

This commit is contained in:
David Sansome 2010-05-17 11:06:50 +00:00
parent 55bc18a9c0
commit bb015ca3aa
34 changed files with 1201 additions and 863 deletions

View File

@ -9,11 +9,14 @@ set(SOURCES
commandlineoptions.cpp
database.cpp
fht.cpp
globalshortcutbackend.cpp
globalshortcuts.cpp
gnomeglobalshortcutbackend.cpp
m3uparser.cpp
mergedproxymodel.cpp
networkaccessmanager.cpp
player.cpp
qxtglobalshortcutbackend.cpp
scopedtransaction.cpp
settingsprovider.cpp
song.cpp
@ -28,6 +31,7 @@ set(HEADERS
backgroundthread.h
database.h
globalshortcuts.h
gnomeglobalshortcutbackend.h
m3uparser.h
mergedproxymodel.h
networkaccessmanager.h

View File

@ -0,0 +1,42 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#include "globalshortcutbackend.h"
#include "globalshortcuts.h"
GlobalShortcutBackend::GlobalShortcutBackend(GlobalShortcuts *parent)
: QObject(parent),
manager_(parent),
active_(false)
{
}
bool GlobalShortcutBackend::Register() {
bool ret = DoRegister();
if (ret)
active_ = true;
return ret;
}
void GlobalShortcutBackend::Unregister() {
DoUnregister();
active_ = false;
}
void GlobalShortcutBackend::Reregister() {
Unregister();
Register();
}

View File

@ -0,0 +1,43 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GLOBALSHORTCUTBACKEND_H
#define GLOBALSHORTCUTBACKEND_H
#include <QObject>
class GlobalShortcuts;
class GlobalShortcutBackend : public QObject {
public:
GlobalShortcutBackend(GlobalShortcuts* parent = 0);
virtual ~GlobalShortcutBackend() {}
bool is_active() const { return active_; }
bool Register();
void Unregister();
void Reregister();
protected:
virtual bool DoRegister() = 0;
virtual void DoUnregister() = 0;
GlobalShortcuts* manager_;
bool active_;
};
#endif // GLOBALSHORTCUTBACKEND_H

View File

@ -15,87 +15,95 @@
*/
#include "globalshortcuts.h"
#include "qxtglobalshortcut.h"
#include "gnomeglobalshortcutbackend.h"
#include "qxtglobalshortcutbackend.h"
#include "mac_startup.h"
#include <QtDebug>
#include <QAction>
#ifdef QT_DBUS_LIB
# include <QtDBus>
#endif
const char* GlobalShortcuts::kGsdService = "org.gnome.SettingsDaemon";
const char* GlobalShortcuts::kGsdPath = "/org/gnome/SettingsDaemon/MediaKeys";
const char* GlobalShortcuts::kGsdInterface = "org.gnome.SettingsDaemon.MediaKeys";
const char* GlobalShortcuts::kSettingsGroup = "Shortcuts";
GlobalShortcuts::GlobalShortcuts(QObject *parent)
: QObject(parent)
: QObject(parent),
gnome_backend_(NULL),
system_backend_(NULL)
{
Init();
settings_.beginGroup(kSettingsGroup);
// Create actions
AddShortcut("play", tr("Play"), SIGNAL(Play()));
AddShortcut("pause", tr("Pause"), SIGNAL(Pause()));
AddShortcut("play_pause", tr("Play/Pause"), SIGNAL(PlayPause()), QKeySequence(Qt::Key_MediaPlay));
AddShortcut("stop", tr("Stop"), SIGNAL(Stop()), QKeySequence(Qt::Key_MediaStop));
AddShortcut("stop_after", tr("Stop playing after current track"), SIGNAL(StopAfter()));
AddShortcut("next_track", tr("Next track"), SIGNAL(Next()), QKeySequence(Qt::Key_MediaNext));
AddShortcut("prev_track", tr("Previous track"), SIGNAL(Previous()), QKeySequence(Qt::Key_MediaPrevious));
AddShortcut("inc_volume", tr("Increase volume"), SIGNAL(IncVolume()));
AddShortcut("dec_volume", tr("Decrease volume"), SIGNAL(DecVolume()));
AddShortcut("mute", tr("Mute"), SIGNAL(Mute()));
AddShortcut("seek_forward", tr("Seek forward"), SIGNAL(SeekForward()));
AddShortcut("seek_backward", tr("Seek backward"), SIGNAL(SeekBackward()));
// Create backends - these do the actual shortcut registration
if (IsGsdAvailable())
gnome_backend_ = new GnomeGlobalShortcutBackend(this);
#ifndef Q_OS_DARWIN
system_backend_ = new QxtGlobalShortcutBackend(this);
#endif
ReloadSettings();
}
void GlobalShortcuts::Init() {
#ifdef Q_OS_DARWIN
mac::SetShortcutHandler(this);
return;
#endif
if (RegisterGnome()) return;
if (RegisterQxt()) return;
void GlobalShortcuts::AddShortcut(const QString &id, const QString &name,
const char* signal,
const QKeySequence &default_key) {
Shortcut shortcut;
shortcut.action = new QAction(name, this);
shortcut.action->setShortcut(QKeySequence::fromString(
settings_.value(id, default_key.toString()).toString()));
shortcut.id = id;
shortcut.default_key = default_key;
connect(shortcut.action, SIGNAL(triggered()), this, signal);
shortcuts_[id] = shortcut;
}
bool GlobalShortcuts::IsGsdAvailable() const {
#ifdef QT_DBUS_LIB
return QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService);
return QDBusConnection::sessionBus().interface()->isServiceRegistered(
GnomeGlobalShortcutBackend::kGsdService);
#else // QT_DBUS_LIB
return false;
#endif
}
bool GlobalShortcuts::RegisterGnome() {
#ifdef QT_DBUS_LIB
// Check if the GSD service is available
if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService))
return false;
QDBusInterface* interface = new QDBusInterface(
kGsdService, kGsdPath, kGsdInterface, QDBusConnection::sessionBus(), this);
connect(interface, SIGNAL(MediaPlayerKeyPressed(QString,QString)),
this, SLOT(GnomeMediaKeyPressed(QString,QString)));
return true;
#else // QT_DBUS_LIB
return false;
#endif
}
bool GlobalShortcuts::RegisterQxt() {
#ifndef Q_OS_DARWIN
QxtGlobalShortcut* play_pause = new QxtGlobalShortcut(QKeySequence("Media Play"), this);
QxtGlobalShortcut* stop = new QxtGlobalShortcut(QKeySequence("Media Stop"), this);
QxtGlobalShortcut* next = new QxtGlobalShortcut(QKeySequence("Media Next"), this);
QxtGlobalShortcut* prev = new QxtGlobalShortcut(QKeySequence("Media Previous"), this);
connect(play_pause, SIGNAL(activated()), SIGNAL(PlayPause()));
connect(stop, SIGNAL(activated()), SIGNAL(Stop()));
connect(next, SIGNAL(activated()), SIGNAL(Next()));
connect(prev, SIGNAL(activated()), SIGNAL(Previous()));
#endif
return true;
}
void GlobalShortcuts::GnomeMediaKeyPressed(const QString&, const QString& key) {
if (key == "Play") emit PlayPause();
if (key == "Stop") emit Stop();
if (key == "Next") emit Next();
if (key == "Previous") emit Previous();
}
void GlobalShortcuts::MacMediaKeyPressed(const QString& key) {
if (key == "Play") emit PlayPause();
// Stop doesn't exist on a mac keyboard.
if (key == "Next") emit Next();
if (key == "Previous") emit Previous();
}
void GlobalShortcuts::ReloadSettings() {
// The actual shortcuts have been set in our actions for us by the config
// dialog already - we just need to reread the gnome settings.
bool use_gnome = settings_.value("use_gnome", true).toBool();
if (gnome_backend_ && gnome_backend_->is_active())
gnome_backend_->Unregister();
if (system_backend_ && system_backend_->is_active())
system_backend_->Unregister();
if (gnome_backend_ && use_gnome)
gnome_backend_->Register();
else if (system_backend_)
system_backend_->Register();
}

View File

@ -18,6 +18,13 @@
#define GLOBALSHORTCUTS_H
#include <QObject>
#include <QKeySequence>
#include <QMap>
#include <QSettings>
class QAction;
class GlobalShortcutBackend;
class GlobalShortcuts : public QObject {
Q_OBJECT
@ -25,27 +32,46 @@ class GlobalShortcuts : public QObject {
public:
GlobalShortcuts(QObject* parent = 0);
static const char* kGsdService;
static const char* kGsdPath;
static const char* kGsdInterface;
static const char* kSettingsGroup;
struct Shortcut {
QString id;
QKeySequence default_key;
QAction* action;
};
QMap<QString, Shortcut> shortcuts() const { return shortcuts_; }
bool IsGsdAvailable() const;
void MacMediaKeyPressed(const QString& key);
bool IsGsdAvailable() const;
public slots:
void ReloadSettings();
signals:
void Play();
void Pause();
void PlayPause();
void Stop();
void StopAfter();
void Next();
void Previous();
void IncVolume();
void DecVolume();
void Mute();
void SeekForward();
void SeekBackward();
private:
void Init();
bool RegisterGnome();
bool RegisterQxt();
void AddShortcut(const QString& id, const QString& name, const char* signal,
const QKeySequence& default_key = QKeySequence(0));
private slots:
void GnomeMediaKeyPressed(const QString& application, const QString& key);
private:
GlobalShortcutBackend* gnome_backend_;
GlobalShortcutBackend* system_backend_;
QMap<QString, Shortcut> shortcuts_;
QSettings settings_;
};
#endif

View File

@ -0,0 +1,77 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#include "gnomeglobalshortcutbackend.h"
#include "globalshortcuts.h"
#include <QAction>
#include <QtDebug>
#ifdef QT_DBUS_LIB
# include <QtDBus>
#endif
const char* GnomeGlobalShortcutBackend::kGsdService = "org.gnome.SettingsDaemon";
const char* GnomeGlobalShortcutBackend::kGsdPath = "/org/gnome/SettingsDaemon/MediaKeys";
const char* GnomeGlobalShortcutBackend::kGsdInterface = "org.gnome.SettingsDaemon.MediaKeys";
GnomeGlobalShortcutBackend::GnomeGlobalShortcutBackend(GlobalShortcuts* parent)
: GlobalShortcutBackend(parent),
interface_(NULL)
{
}
bool GnomeGlobalShortcutBackend::DoRegister() {
qDebug() << __PRETTY_FUNCTION__;
#ifdef QT_DBUS_LIB
// Check if the GSD service is available
if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService))
return false;
if (!interface_) {
interface_ = new QDBusInterface(
kGsdService, kGsdPath, kGsdInterface, QDBusConnection::sessionBus(), this);
}
connect(interface_, SIGNAL(MediaPlayerKeyPressed(QString,QString)),
this, SLOT(GnomeMediaKeyPressed(QString,QString)));
return true;
#else // QT_DBUS_LIB
return false;
#endif
}
void GnomeGlobalShortcutBackend::DoUnregister() {
qDebug() << __PRETTY_FUNCTION__;
#ifdef QT_DBUS_LIB
// Check if the GSD service is available
if (!QDBusConnection::sessionBus().interface()->isServiceRegistered(kGsdService))
return;
if (!interface_)
return;
disconnect(interface_, SIGNAL(MediaPlayerKeyPressed(QString,QString)),
this, SLOT(GnomeMediaKeyPressed(QString,QString)));
#endif
}
void GnomeGlobalShortcutBackend::GnomeMediaKeyPressed(const QString&, const QString& key) {
if (key == "Play") manager_->shortcuts()["play_pause"].action->trigger();
if (key == "Stop") manager_->shortcuts()["stop"].action->trigger();
if (key == "Next") manager_->shortcuts()["next_track"].action->trigger();
if (key == "Previous") manager_->shortcuts()["prev_track"].action->trigger();
}

View File

@ -0,0 +1,45 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GNOMEGLOBALSHORTCUTBACKEND_H
#define GNOMEGLOBALSHORTCUTBACKEND_H
#include "globalshortcutbackend.h"
class QDBusInterface;
class GnomeGlobalShortcutBackend : public GlobalShortcutBackend {
Q_OBJECT
public:
GnomeGlobalShortcutBackend(GlobalShortcuts* parent);
static const char* kGsdService;
static const char* kGsdPath;
static const char* kGsdInterface;
protected:
bool DoRegister();
void DoUnregister();
private slots:
void GnomeMediaKeyPressed(const QString& application, const QString& key);
private:
QDBusInterface* interface_;
};
#endif // GNOMEGLOBALSHORTCUTBACKEND_H

View File

@ -95,6 +95,8 @@ class Player : public QObject {
void Previous();
void SetVolume(int value);
void Seek(int seconds);
void SeekForward() { Seek(+5); }
void SeekBackward() { Seek(-5); }
void StreamReady(const QUrl& original_url, const QUrl& media_url);
void CurrentMetadataChanged(const Song& metadata);
@ -116,6 +118,8 @@ class Player : public QObject {
void ShowOSD();
void VolumeDown(int);
void VolumeUp(int);
void VolumeDown() { VolumeDown(4); }
void VolumeUp() { VolumeUp(4); }
int VolumeGet() const;
void VolumeSet(int);

View File

@ -0,0 +1,50 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#include "globalshortcuts.h"
#include "qxtglobalshortcutbackend.h"
#include "qxtglobalshortcut.h"
#include <QAction>
#include <QtDebug>
QxtGlobalShortcutBackend::QxtGlobalShortcutBackend(GlobalShortcuts *parent)
: GlobalShortcutBackend(parent)
{
}
bool QxtGlobalShortcutBackend::DoRegister() {
qDebug() << __PRETTY_FUNCTION__;
#ifndef Q_OS_DARWIN
foreach (const GlobalShortcuts::Shortcut& shortcut, manager_->shortcuts().values()) {
AddShortcut(shortcut.action);
}
#endif
return true;
}
void QxtGlobalShortcutBackend::AddShortcut(QAction* action) {
QxtGlobalShortcut* shortcut = new QxtGlobalShortcut(action->shortcut(), this);
connect(shortcut, SIGNAL(activated()), action, SLOT(trigger()));
shortcuts_ << shortcut;
}
void QxtGlobalShortcutBackend::DoUnregister() {
qDebug() << __PRETTY_FUNCTION__;
qDeleteAll(shortcuts_);
shortcuts_.clear();
}

View File

@ -0,0 +1,37 @@
/* This file is part of Clementine.
Clementine is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Clementine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef QXTGLOBALSHORTCUTBACKEND_H
#define QXTGLOBALSHORTCUTBACKEND_H
#include "globalshortcutbackend.h"
class QxtGlobalShortcut;
class QxtGlobalShortcutBackend : public GlobalShortcutBackend {
public:
QxtGlobalShortcutBackend(GlobalShortcuts* parent = 0);
protected:
bool DoRegister();
void DoUnregister();
private:
void AddShortcut(QAction* action);
QList<QxtGlobalShortcut*> shortcuts_;
};
#endif // QXTGLOBALSHORTCUTBACKEND_H

View File

@ -106,6 +106,42 @@ msgstr "Vyber engine"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Neznámý audio engine \"%1\". Možnosti jsou:"
msgid "Play"
msgstr "Přehrát"
msgid "Pause"
msgstr "Pozastavit"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Zastavit"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Další skladba"
msgid "Previous track"
msgstr "Předchozí skladba"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Přidat adresář..."
@ -772,42 +808,6 @@ msgstr "Opravdu chcete smazat \"%1\" přednastavení?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Přehrát"
msgid "Pause"
msgstr "Pozastavit"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Zastavit"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Další skladba"
msgid "Previous track"
msgstr "Předchozí skladba"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -108,6 +108,42 @@ msgstr "Vælg motor"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Ukendt lydmotor \"%1\". Valgmulighederne er:"
msgid "Play"
msgstr "Afspil"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Næste spor"
msgid "Previous track"
msgstr "Forrige spor"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Tilføj mappe..."
@ -775,42 +811,6 @@ msgstr "Vil du slettet \"%1\"-forudindstilling?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Afspil"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Næste spor"
msgid "Previous track"
msgstr "Forrige spor"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr "Engine:"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Ubekannte Engine \"%1\". Wahlmöglichkeiten:"
msgid "Play"
msgstr "Wiedergabe"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Anhalten"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nächstes Stück"
msgid "Previous track"
msgstr "Vorheriges Stück"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Verzeichnis hinzufügen..."
@ -771,42 +807,6 @@ msgstr "Profil \"%1\" wirklich löschen?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Wiedergabe"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Anhalten"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nächstes Stück"
msgid "Previous track"
msgstr "Vorheriges Stück"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -107,6 +107,42 @@ msgstr "Επιλογή μηχανής"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Άγνωστη μηχανή \"%1\". ΟΙ επιλογές είναι:"
msgid "Play"
msgstr "Αναπαραγωγή"
msgid "Pause"
msgstr "Παύση"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Σταμάτημα"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Επόμενο κομμάτι"
msgid "Previous track"
msgstr "Προηγούμενο κομμάτι"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Προσθήκη καταλόγου..."
@ -774,42 +810,6 @@ msgstr "Είστε σίγουροι πως θέλετε να διαγράψετ
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Αναπαραγωγή"
msgid "Pause"
msgstr "Παύση"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Σταμάτημα"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Επόμενο κομμάτι"
msgid "Previous track"
msgstr "Προηγούμενο κομμάτι"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr "Select engine"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Unknown audio engine \"%1\". Choices are:"
msgid "Play"
msgstr "Play"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Next track"
msgid "Previous track"
msgstr "Previous track"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Add directory..."
@ -770,42 +806,6 @@ msgstr "Are you sure you want to delete the \"%1\" preset?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Play"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Next track"
msgid "Previous track"
msgstr "Previous track"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -106,6 +106,42 @@ msgstr "Seleccione motor de audio"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Motor de audio \"%1\" desconocido. Las opciones son:"
msgid "Play"
msgstr "Reproducir"
msgid "Pause"
msgstr "Pausar"
msgid "Play/Pause"
msgstr "Reproducir/Pausar"
msgid "Stop"
msgstr "Detener"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Pista siguiente"
msgid "Previous track"
msgstr "Pista anterior"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Añadir directorio..."
@ -777,42 +813,6 @@ msgstr "¿Estás seguro de que quieres eliminar la predefinición \"%1\"?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Reproducir"
msgid "Pause"
msgstr "Pausar"
msgid "Play/Pause"
msgstr "Reproducir/Pausar"
msgid "Stop"
msgstr "Detener"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Pista siguiente"
msgid "Previous track"
msgstr "Pista anterior"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Toista"
msgid "Pause"
msgstr "Keskeytä"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Lisää kansio..."
@ -766,42 +802,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Toista"
msgid "Pause"
msgstr "Keskeytä"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -106,6 +106,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Lecture"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Piste suivante"
msgid "Previous track"
msgstr "Piste précédente"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Ajouter un répertoire..."
@ -778,42 +814,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Lecture"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stop"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Piste suivante"
msgid "Previous track"
msgstr "Piste précédente"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Reproducir"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Adicionar directório..."
@ -768,42 +804,6 @@ msgstr "Está certo que quer apagar o \"%1\" predefinido?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Reproducir"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -106,6 +106,42 @@ msgstr "Seleziona motore"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Motore audio \"%1\" sconosciuto. Puoi scegliere tra:"
msgid "Play"
msgstr "Riproduci"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Ferma"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Traccia successiva"
msgid "Previous track"
msgstr "Traccia precedente"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Aggiungi cartella..."
@ -775,42 +811,6 @@ msgstr "Sei sicuro di voler eliminare la preimpostazione \"%1\"?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Riproduci"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Ferma"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Traccia successiva"
msgid "Previous track"
msgstr "Traccia precedente"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Ойнату"
msgid "Pause"
msgstr "Аялдату"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Тоқтату"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr ""
@ -768,42 +804,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Ойнату"
msgid "Pause"
msgstr "Аялдату"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Тоқтату"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Spill"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stopp"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Neste spor"
msgid "Previous track"
msgstr "Forrige spor"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Legg til katalog..."
@ -772,42 +808,6 @@ msgstr "Er du sikker på at du vil slette \"%1\" innstillingen?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Spill"
msgid "Pause"
msgstr "Pause"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stopp"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Neste spor"
msgid "Previous track"
msgstr "Forrige spor"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -106,6 +106,42 @@ msgstr "Wybierz silnik odtwarzania"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Odtwarzaj"
msgid "Pause"
msgstr "Pauza"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Zatrzymaj"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Następny utwór"
msgid "Previous track"
msgstr "Poprzedni utwór"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Dodaj katalog..."
@ -770,42 +806,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Odtwarzaj"
msgid "Pause"
msgstr "Pauza"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Zatrzymaj"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Następny utwór"
msgid "Previous track"
msgstr "Poprzedni utwór"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr "Seleccione o motor"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Motor de áudio desconhecido \"%1\". As alternativas são:"
msgid "Play"
msgstr "Reproduzir"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Parar"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Faixa seguinte"
msgid "Previous track"
msgstr "Faixa anterior"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Adicionar directoria..."
@ -773,42 +809,6 @@ msgstr "Tem a certeza que deseja apagar a pré-definição \"%1\""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Reproduzir"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Parar"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Faixa seguinte"
msgid "Previous track"
msgstr "Faixa anterior"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Reproduzir"
msgid "Pause"
msgstr "Pausar"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr ""
@ -766,42 +802,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Reproduzir"
msgid "Pause"
msgstr "Pausar"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Redă"
msgid "Pause"
msgstr "Pauză"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Oprește"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Piesa următoare"
msgid "Previous track"
msgstr "Piesa precedentă"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Adaugă director..."
@ -767,42 +803,6 @@ msgstr "Sigur doriți să ștergeți presetarea \"%1\"?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Redă"
msgid "Pause"
msgstr "Pauză"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Oprește"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Piesa următoare"
msgid "Previous track"
msgstr "Piesa precedentă"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -104,6 +104,42 @@ msgstr "Укажите движок"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Неизвестный аудио движок \"%1\". Варианты:"
msgid "Play"
msgstr "Воспроизвести"
msgid "Pause"
msgstr "Приостановить"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Остановить"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Следующая композиция"
msgid "Previous track"
msgstr "Предыдущая композиция"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Добавить каталог..."
@ -770,42 +806,6 @@ msgstr "Вы действительно хотите удалить настро
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Воспроизвести"
msgid "Pause"
msgstr "Приостановить"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Остановить"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Следующая композиция"
msgid "Previous track"
msgstr "Предыдущая композиция"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -106,6 +106,42 @@ msgstr "Vybrať engine"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Neznámy audio engine \"%1\". Na výber sú:"
msgid "Play"
msgstr "Hrať"
msgid "Pause"
msgstr "Pauza"
msgid "Play/Pause"
msgstr "Hrať/Pauza"
msgid "Stop"
msgstr "Zastaviť"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nesledujca skladba"
msgid "Previous track"
msgstr "Predchádzajúca skladba"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Pridať priečinok..."
@ -772,42 +808,6 @@ msgstr "Ste si istý, že chcete vymazať predvoľbu \"%1\"?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Hrať"
msgid "Pause"
msgstr "Pauza"
msgid "Play/Pause"
msgstr "Hrať/Pauza"
msgid "Stop"
msgstr "Zastaviť"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nesledujca skladba"
msgid "Previous track"
msgstr "Predchádzajúca skladba"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr "Välj motor"
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr "Okänd audiomotor \"%1\". Följande val finns:"
msgid "Play"
msgstr "Spela upp"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stoppa"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nästa spår"
msgid "Previous track"
msgstr "Föregående spår"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr "Lägg till katalog..."
@ -773,42 +809,6 @@ msgstr "Är du säker på att du vill ta bort förinställningen \"%1\"?"
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Spela upp"
msgid "Pause"
msgstr "Pausa"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr "Stoppa"
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr "Nästa spår"
msgid "Previous track"
msgstr "Föregående spår"
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -105,6 +105,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr "Başlat"
msgid "Pause"
msgstr "Duraklat"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr ""
@ -766,42 +802,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr "Başlat"
msgid "Pause"
msgstr "Duraklat"
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -96,6 +96,42 @@ msgstr ""
msgid "Unknown audio engine \"%1\". Choices are:"
msgstr ""
msgid "Play"
msgstr ""
msgid "Pause"
msgstr ""
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
msgid "Add directory..."
msgstr ""
@ -757,42 +793,6 @@ msgstr ""
msgid "Press a key combination to use for %1..."
msgstr ""
msgid "Play"
msgstr ""
msgid "Pause"
msgstr ""
msgid "Play/Pause"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Stop playing after current track"
msgstr ""
msgid "Next track"
msgstr ""
msgid "Previous track"
msgstr ""
msgid "Increase volume"
msgstr ""
msgid "Decrease volume"
msgstr ""
msgid "Mute"
msgstr ""
msgid "Seek forward"
msgstr ""
msgid "Seek backward"
msgstr ""
#, qt-format
msgid "Shortcut for %1"
msgstr ""

View File

@ -26,8 +26,6 @@
#include <QProcess>
#include <QMessageBox>
const char* GlobalShortcutsDialog::kSettingsGroup = "Shortcuts";
GlobalShortcutsDialog::GlobalShortcutsDialog(GlobalShortcuts* manager,
QWidget* parent)
: QDialog(parent),
@ -43,20 +41,18 @@ GlobalShortcutsDialog::GlobalShortcutsDialog(GlobalShortcuts* manager,
ui_->gnome_container->hide();
}
settings_.beginGroup(kSettingsGroup);
settings_.beginGroup(GlobalShortcuts::kSettingsGroup);
AddShortcut("play", tr("Play"));
AddShortcut("pause", tr("Pause"));
AddShortcut("play_pause", tr("Play/Pause"), QKeySequence(Qt::Key_MediaPlay));
AddShortcut("stop", tr("Stop"), QKeySequence(Qt::Key_MediaStop));
AddShortcut("stop_after", tr("Stop playing after current track"));
AddShortcut("next_track", tr("Next track"), QKeySequence(Qt::Key_MediaNext));
AddShortcut("prev_track", tr("Previous track"), QKeySequence(Qt::Key_MediaPrevious));
AddShortcut("inc_volume", tr("Increase volume"));
AddShortcut("dec_volume", tr("Decrease volume"));
AddShortcut("mute", tr("Mute"));
AddShortcut("seek_forward", tr("Seek forward"));
AddShortcut("seek_backward", tr("Seek backward"));
foreach (const GlobalShortcuts::Shortcut& s, manager_->shortcuts().values()) {
Shortcut shortcut;
shortcut.s = s;
shortcut.key = s.action->shortcut();
shortcut.item = new QTreeWidgetItem(ui_->list,
QStringList() << s.action->text()
<< s.action->shortcut().toString(QKeySequence::NativeText));
shortcut.item->setData(0, Qt::UserRole, s.id);
shortcuts_[s.id] = shortcut;
}
ui_->list->sortItems(0, Qt::AscendingOrder);
@ -75,24 +71,20 @@ GlobalShortcutsDialog::~GlobalShortcutsDialog() {
delete ui_;
}
void GlobalShortcutsDialog::AddShortcut(const QString& id, const QString& name,
const QKeySequence& default_key) {
Shortcut s;
s.id = id;
s.name = name;
s.default_key = default_key;
s.key = QKeySequence::fromString(settings_.value(id, default_key.toString()).toString());
void GlobalShortcutsDialog::showEvent(QShowEvent*) {
foreach (const Shortcut& s, shortcuts_.values()) {
SetShortcut(s.s.id, s.s.action->shortcut());
}
s.item = new QTreeWidgetItem(ui_->list,
QStringList() << name << s.key.toString(QKeySequence::NativeText));
s.item->setData(0, Qt::UserRole, id);
shortcuts_[id] = s;
bool use_gnome = settings_.value("use_gnome", true).toBool();
if (ui_->gnome_container->isVisible()) {
ui_->gnome_checkbox->setChecked(use_gnome);
}
}
void GlobalShortcutsDialog::ResetAll() {
foreach (const QString& id, shortcuts_.keys()) {
SetShortcut(id, shortcuts_[id].default_key);
SetShortcut(id, shortcuts_[id].s.default_key);
}
}
@ -109,9 +101,12 @@ void GlobalShortcutsDialog::accept() {
}
void GlobalShortcutsDialog::Save() {
foreach (const QString& id, shortcuts_.keys()) {
settings_.setValue(id, shortcuts_[id].key.toString());
foreach (const Shortcut& s, shortcuts_.values()) {
s.s.action->setShortcut(s.key);
settings_.setValue(s.s.id, s.key.toString());
}
settings_.setValue("use_gnome", ui_->gnome_checkbox->isChecked());
}
void GlobalShortcutsDialog::ItemClicked(QTreeWidgetItem* item) {
@ -120,9 +115,9 @@ void GlobalShortcutsDialog::ItemClicked(QTreeWidgetItem* item) {
// Enable options
ui_->shortcut_options->setEnabled(true);
ui_->shortcut_options->setTitle(tr("Shortcut for %1").arg(shortcut.name));
ui_->shortcut_options->setTitle(tr("Shortcut for %1").arg(shortcut.s.action->text()));
if (shortcut.key == shortcut.default_key)
if (shortcut.key == shortcut.s.default_key)
ui_->radio_default->setChecked(true);
else if (shortcut.key.isEmpty())
ui_->radio_none->setChecked(true);
@ -135,11 +130,11 @@ void GlobalShortcutsDialog::NoneClicked() {
}
void GlobalShortcutsDialog::DefaultClicked() {
SetShortcut(current_id_, shortcuts_[current_id_].default_key);
SetShortcut(current_id_, shortcuts_[current_id_].s.default_key);
}
void GlobalShortcutsDialog::ChangeClicked() {
QKeySequence key = grabber_->GetKey(shortcuts_[current_id_].name);
QKeySequence key = grabber_->GetKey(shortcuts_[current_id_].s.action->text());
if (key.isEmpty())
return;

View File

@ -23,11 +23,12 @@
#include <boost/scoped_ptr.hpp>
#include "core/globalshortcuts.h"
class QTreeWidgetItem;
class Ui_GlobalShortcutsDialog;
class GlobalShortcutGrabber;
class GlobalShortcuts;
class GlobalShortcutsDialog : public QDialog {
Q_OBJECT
@ -36,7 +37,9 @@ class GlobalShortcutsDialog : public QDialog {
GlobalShortcutsDialog(GlobalShortcuts* manager, QWidget* parent = 0);
~GlobalShortcutsDialog();
static const char* kSettingsGroup;
protected:
// QWidget
void showEvent(QShowEvent *);
private slots:
void accept();
@ -54,16 +57,11 @@ class GlobalShortcutsDialog : public QDialog {
private:
struct Shortcut {
QString id;
QString name;
QTreeWidgetItem* item;
QKeySequence default_key;
GlobalShortcuts::Shortcut s;
QKeySequence key;
QTreeWidgetItem* item;
};
void AddShortcut(const QString& id, const QString& name,
const QKeySequence& default_key = QKeySequence(0));
void SetShortcut(const QString& id, const QKeySequence& key);
private:

View File

@ -325,10 +325,19 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
#endif
// Global shortcuts
connect(global_shortcuts_, SIGNAL(Play()), player_, SLOT(Play()));
connect(global_shortcuts_, SIGNAL(Pause()), player_, SLOT(Pause()));
connect(global_shortcuts_, SIGNAL(PlayPause()), ui_->action_play_pause, SLOT(trigger()));
connect(global_shortcuts_, SIGNAL(Stop()), ui_->action_stop, SLOT(trigger()));
connect(global_shortcuts_, SIGNAL(StopAfter()), ui_->action_stop_after_this_track, SLOT(trigger()));
connect(global_shortcuts_, SIGNAL(Next()), ui_->action_next_track, SLOT(trigger()));
connect(global_shortcuts_, SIGNAL(Previous()), ui_->action_previous_track, SLOT(trigger()));
connect(global_shortcuts_, SIGNAL(IncVolume()), player_, SLOT(VolumeUp()));
connect(global_shortcuts_, SIGNAL(DecVolume()), player_, SLOT(VolumeDown()));
connect(global_shortcuts_, SIGNAL(Mute()), player_, SLOT(Mute()));
connect(global_shortcuts_, SIGNAL(SeekForward()), player_, SLOT(SeekForward()));
connect(global_shortcuts_, SIGNAL(SeekBackward()), player_, SLOT(SeekBackward()));
connect(global_shortcuts_dialog_.get(), SIGNAL(accepted()), global_shortcuts_, SLOT(ReloadSettings()));
// Settings
connect(settings_dialog_.get(), SIGNAL(accepted()), SLOT(ReloadSettings()));