You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
6.0 KiB
190 lines
6.0 KiB
#include <noatun/engine.h>
|
|
#include <noatun/player.h>
|
|
#include <noatun/app.h>
|
|
#include <noatun/playlist.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <kglobalaccel.h>
|
|
#include <kkeydialog.h>
|
|
#include <klocale.h>
|
|
#include <tqclipboard.h>
|
|
|
|
#include "keyz.h"
|
|
|
|
extern "C"
|
|
{
|
|
KDE_EXPORT Plugin *create_plugin()
|
|
{
|
|
return new Keyz();
|
|
}
|
|
}
|
|
|
|
KGlobalAccel * Keyz::s_accel = 0L;
|
|
|
|
Keyz::Keyz() : TQObject( 0L, "Keyz" ), Plugin(), preMuteVol(0)
|
|
{
|
|
NOATUNPLUGINC(Keyz);
|
|
Player *player = napp->player();
|
|
|
|
if ( !s_accel )
|
|
{
|
|
s_accel = new KGlobalAccel( this, "noatunglobalaccel" );
|
|
s_accel->insert( "PlayPause", i18n("Play/Pause"), TQString::null,
|
|
CTRL+ALT+Key_P, KKey::QtWIN+CTRL+Key_P,
|
|
player, TQT_SLOT( playpause() ));
|
|
s_accel->insert( "Stop", i18n("Stop Playing"), TQString::null,
|
|
CTRL+ALT+Key_S, KKey::QtWIN+CTRL+Key_S,
|
|
player, TQT_SLOT( stop() ));
|
|
s_accel->insert( "Back", i18n("Back"), TQString::null,
|
|
CTRL+ALT+Key_Left, KKey::QtWIN+CTRL+Key_Left,
|
|
player, TQT_SLOT( back() ));
|
|
s_accel->insert( "Forward", i18n("Forward"), TQString::null,
|
|
CTRL+ALT+Key_Right, KKey::QtWIN+CTRL+Key_Right,
|
|
player, TQT_SLOT( forward() ));
|
|
s_accel->insert( "Playlist", i18n("Show/Hide Playlist"), TQString::null,
|
|
CTRL+ALT+Key_L, KKey::QtWIN+CTRL+Key_L,
|
|
player, TQT_SLOT( toggleListView() ));
|
|
s_accel->insert( "OpenFile", i18n("Open File to Play"), TQString::null,
|
|
CTRL+ALT+Key_O, KKey::QtWIN+CTRL+Key_O,
|
|
napp, TQT_SLOT( fileOpen() ));
|
|
s_accel->insert( "Effects", i18n("Effects Configuration"), TQString::null,
|
|
CTRL+ALT+Key_E, KKey::QtWIN+CTRL+Key_E,
|
|
napp, TQT_SLOT( effectView() ));
|
|
s_accel->insert( "Preferences", i18n("Preferences"), TQString::null,
|
|
CTRL+ALT+Key_F, KKey::QtWIN+CTRL+Key_F,
|
|
napp, TQT_SLOT( preferences() ));
|
|
s_accel->insert( "VolumeUp", i18n("Volume Up"), TQString::null,
|
|
CTRL+ALT+SHIFT+Key_Up, KKey::QtWIN+CTRL+SHIFT+Key_Up,
|
|
this, TQT_SLOT( slotVolumeUp() ));
|
|
s_accel->insert( "VolumeDown", i18n("Volume Down"), TQString::null,
|
|
CTRL+ALT+SHIFT+Key_Down, KKey::QtWIN+CTRL+SHIFT+Key_Down,
|
|
this, TQT_SLOT( slotVolumeDown() ));
|
|
s_accel->insert( "Mute", i18n("Mute"), TQString::null,
|
|
CTRL+ALT+Key_M, KKey::QtWIN+CTRL+Key_M,
|
|
this, TQT_SLOT( slotMute() ));
|
|
s_accel->insert( "SeekForward", i18n("Seek Forward"), TQString::null,
|
|
CTRL+ALT+SHIFT+Key_Right, KKey::QtWIN+CTRL+SHIFT+Key_Right,
|
|
this, TQT_SLOT( slotForward() ));
|
|
s_accel->insert( "SeekBackward", i18n("Seek Backward"), TQString::null,
|
|
CTRL+ALT+SHIFT+Key_Left, KKey::QtWIN+CTRL+SHIFT+Key_Left,
|
|
this, TQT_SLOT( slotBackward() ));
|
|
s_accel->insert( "NextSection", i18n("Next Section"), TQString::null,
|
|
0, 0,
|
|
this, TQT_SLOT( slotNextSection() ));
|
|
s_accel->insert( "PrevSection", i18n("Previous Section"), TQString::null,
|
|
0, 0,
|
|
this, TQT_SLOT( slotPrevSection() ));
|
|
s_accel->insert( "CopyTitle", i18n("Copy Song Title to Clipboard"), TQString::null,
|
|
CTRL+ALT+Key_C, KKey::QtWIN+CTRL+Key_C,
|
|
this, TQT_SLOT( slotCopyTitle() ));
|
|
|
|
s_accel->insert( "ToggleGUI", i18n("Show/Hide Main Window"), TQString::null,
|
|
CTRL+ALT+Key_W, KKey::QtWIN+CTRL+Key_W,
|
|
napp, TQT_SLOT( toggleInterfaces() ));
|
|
|
|
s_accel->readSettings();
|
|
s_accel->updateConnections();
|
|
}
|
|
|
|
new KeyzPrefs(this);
|
|
}
|
|
|
|
Keyz::~Keyz()
|
|
{
|
|
delete s_accel;
|
|
s_accel = 0L;
|
|
}
|
|
|
|
void Keyz::slotVolumeUp()
|
|
{
|
|
int vol = napp->player()->volume();
|
|
if ( vol >= 100 )
|
|
return;
|
|
|
|
napp->player()->setVolume( vol + 4 );
|
|
}
|
|
|
|
void Keyz::slotVolumeDown()
|
|
{
|
|
int vol = napp->player()->volume();
|
|
if ( vol <= 0 )
|
|
return;
|
|
|
|
napp->player()->setVolume( vol - 4 );
|
|
}
|
|
|
|
void Keyz::slotForward()
|
|
{
|
|
napp->player()->skipTo( QMIN(napp->player()->getLength(), napp->player()->getTime() + 3000) ); // + 3 seconds
|
|
}
|
|
|
|
void Keyz::slotBackward()
|
|
{
|
|
napp->player()->skipTo( QMAX( 0, napp->player()->getTime() - 3000 )); // - 3 seconds
|
|
}
|
|
|
|
void Keyz::slotNextSection()
|
|
{
|
|
Playlist *list = napp->playlist();
|
|
if ( list ) {
|
|
PlaylistItem item = list->nextSection();
|
|
if ( !item.isNull() )
|
|
napp->player()->play( item );
|
|
}
|
|
}
|
|
|
|
void Keyz::slotPrevSection()
|
|
{
|
|
Playlist *list = napp->playlist();
|
|
if ( list ) {
|
|
PlaylistItem item = list->previousSection();
|
|
if ( !item.isNull() )
|
|
napp->player()->play( item );
|
|
}
|
|
}
|
|
|
|
void Keyz::slotCopyTitle()
|
|
{
|
|
if (napp->player()->current())
|
|
KApplication::kApplication()->clipboard()->setText(napp->player()->current().title());
|
|
}
|
|
|
|
|
|
void Keyz::slotMute()
|
|
{
|
|
int vol = napp->player()->volume();
|
|
|
|
if ( vol <= 0 ) // already muted
|
|
{
|
|
vol = preMuteVol;
|
|
}
|
|
else // we should mute
|
|
{
|
|
preMuteVol = vol;
|
|
vol = 0;
|
|
}
|
|
|
|
napp->player()->setVolume( vol );
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
KeyzPrefs::KeyzPrefs( TQObject *parent ) :
|
|
CModule( i18n("Keyz"), i18n("Shortcut Configuration"), "key_bindings",
|
|
parent )
|
|
{
|
|
TQVBoxLayout *layout = new TQVBoxLayout( this );
|
|
m_chooser = new KKeyChooser( Keyz::accel(), this );
|
|
layout->addWidget( m_chooser );
|
|
}
|
|
|
|
void KeyzPrefs::save()
|
|
{
|
|
m_chooser->commitChanges();
|
|
Keyz::accel()->updateConnections();
|
|
Keyz::accel()->writeSettings();
|
|
}
|
|
|
|
#include "keyz.moc"
|