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.
tdemultimedia/arts/tools/artsactions.cpp

192 lines
7.2 KiB

/*
Copyright (C) 2003 Arnold Krille <arnold@arnoldarts.de>
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "artsactions.h"
#include <kaction.h>
#include <kactioncollection.h>
#include <kpopupmenu.h>
#include <klocale.h>
#include <kglobal.h>
//#include <kdebug.h>
#include <kartsserver.h>
#include "fftscopeview.h"
#include "audiomanager.h"
#include "statusview.h"
#include "midimanagerview.h"
#include "environmentview.h"
#include "mediatypesview.h"
ArtsActions::ArtsActions( KArtsServer* server, KActionCollection* col, QWidget* parent, const char* name )
: QObject( parent,name )
, _kartsserver( server )
, _actioncollection( col )
, _a_sv( 0 ), _a_am( 0 ), _a_asv( 0 ), _a_mmv( 0 ), _a_ev( 0 ), _a_mtv( 0 )
// , _a_morebars( 0 ), _a_lessbars( 0 )
, _a_style_normal( 0 ), _a_style_fire( 0 ), _a_style_line( 0 ), _a_style_led( 0 ), _a_style_analog( 0 ), _a_style_small( 0 )
, _stylemenu( 0 )
, _sv( 0 ), _am( 0 ), _asv( 0 ), _mmv( 0 ), _ev( 0 ), _mtv( 0 )
{
//kdDebug()<<k_funcinfo<<endl;
KGlobal::locale()->insertCatalogue( "artscontrol" );
if ( !_kartsserver ) _kartsserver = new KArtsServer( this );
}
ArtsActions::~ArtsActions() {
//kdDebug()<<k_funcinfo<<endl;
if ( _sv ) viewScopeView();
if ( _am ) viewAudioManager();
if ( _asv ) viewArtsStatusView();
if ( _mmv ) viewMidiManagerView();
if ( _ev ) viewEnvironmentView();
if ( _mtv ) viewMediaTypesView();
}
KAction* ArtsActions::actionScopeView() {
if ( !_a_sv ) _a_sv = new KAction( i18n( "&FFT Scope" ), "artsfftscope", KShortcut(), this, SLOT( viewScopeView() ), _actioncollection, "artssupport_view_scopeview" );
return _a_sv;
}
KAction* ArtsActions::actionAudioManager() {
if ( !_a_am ) _a_am = new KAction( i18n( "&Audio Manager" ), "artsaudiomanager", KShortcut(), this, SLOT( viewAudioManager() ), _actioncollection, "artssupport_view_audiomanager" );
return _a_am;
}
KAction* ArtsActions::actionArtsStatusView() {
if ( !_a_asv ) _a_asv = new KAction( i18n( "aRts &Status" ), "artscontrol", KShortcut(), this, SLOT( viewArtsStatusView() ), _actioncollection, "artssupport_view_artsstatus" );
return _a_asv;
}
KAction* ArtsActions::actionMidiManagerView() {
if ( !_a_mmv ) _a_mmv = new KAction( i18n( "&MIDI Manager" ), "artsmidimanager", KShortcut(), this, SLOT( viewMidiManagerView() ), _actioncollection, "artssupport_view_midimanager" );
return _a_mmv;
}
KAction* ArtsActions::actionEnvironmentView() {
if ( !_a_ev ) _a_ev = new KAction( i18n( "&Environment" ), "artsenvironment", KShortcut(), this, SLOT( viewEnvironmentView() ), _actioncollection, "artssupport_view_environment" );
return _a_ev;
}
KAction* ArtsActions::actionMediaTypesView() {
if ( !_a_mtv ) _a_mtv = new KAction( i18n( "Available Media &Types" ), "artsmediatypes", KShortcut(), this, SLOT( viewMediaTypesView() ), _actioncollection, "artssupport_view_mediatypes" );
return _a_mtv;
}
KAction* ArtsActions::actionStyleNormal() {
if ( !_a_style_normal ) _a_style_normal = new KAction( i18n( "Style: NormalBars" ), "", KShortcut(), this, SLOT( _p_style_normal() ), _actioncollection, "artssupport_style_normal" );
return _a_style_normal;
}
KAction* ArtsActions::actionStyleFire() {
if ( !_a_style_fire ) _a_style_fire = new KAction( i18n( "Style: FireBars" ), "", KShortcut(), this, SLOT( _p_style_fire() ), _actioncollection, "artssupport_style_fire" );
return _a_style_fire;
}
KAction* ArtsActions::actionStyleLine() {
if ( !_a_style_line ) _a_style_line = new KAction( i18n( "Style: LineBars" ), "", KShortcut(), this, SLOT( _p_style_line() ), _actioncollection, "artssupport_style_line" );
return _a_style_line;
}
KAction* ArtsActions::actionStyleLED() {
if ( !_a_style_led ) _a_style_led = new KAction( i18n( "Style: LEDs" ), "", KShortcut(), this, SLOT( _p_style_led() ), _actioncollection, "artssupport_style_led" );
return _a_style_led;
}
KAction* ArtsActions::actionStyleAnalog() {
if ( !_a_style_analog ) _a_style_analog = new KAction( i18n( "Style: Analog" ), "", KShortcut(), this, SLOT( _p_style_analog() ), _actioncollection, "artssupport_style_analog" );
return _a_style_analog;
}
KAction* ArtsActions::actionStyleSmall() {
if ( !_a_style_small ) _a_style_small = new KAction( i18n( "Style: Small" ), "", KShortcut(), this, SLOT( _p_style_small() ), _actioncollection, "artssupport_style_small" );
return _a_style_small;
}
KPopupMenu* ArtsActions::stylemenu() {
if ( !_stylemenu ) {
_stylemenu = new KPopupMenu();
KAction *tmp;
tmp = actionStyleNormal(); tmp->plug( _stylemenu );
tmp = actionStyleFire(); tmp->plug( _stylemenu );
tmp = actionStyleLine(); tmp->plug( _stylemenu );
tmp = actionStyleLED(); tmp->plug( _stylemenu );
tmp = actionStyleAnalog(); tmp->plug( _stylemenu );
tmp = actionStyleSmall(); tmp->plug( _stylemenu );
}
return _stylemenu;
}
KAction* ArtsActions::actionMoreBars( const QObject* receiver, const char* slot, KActionCollection *actioncollection ) {
static KAction *_a_morebars = new KAction( i18n( "More Bars in VU-Meters" ), "up", KShortcut(), receiver, slot, actioncollection, "artssupport_morebars" );
return _a_morebars;
}
KAction* ArtsActions::actionLessBars( const QObject* receiver, const char* slot, KActionCollection *actioncollection ) {
static KAction *_a_lessbars = new KAction( i18n( "Less Bars in VU-Meters" ), "down", KShortcut(), receiver, slot, actioncollection, "artssupport_lessbars" );
return _a_lessbars;
}
void ArtsActions::viewScopeView() {
if ( !_sv ) {
_sv = new FFTScopeView( _kartsserver->server() );
connect( _sv, SIGNAL( closed() ), this, SLOT( viewScopeView() ) );
} else {
delete _sv;
_sv = 0;
}
}
void ArtsActions::viewAudioManager() {
if ( !_am ) {
_am = new Gui_AUDIO_MANAGER();
connect( _am, SIGNAL( closed() ), this, SLOT( viewAudioManager() ) );
} else {
delete _am;
_am = 0;
}
}
void ArtsActions::viewArtsStatusView() {
if ( !_asv ) {
_asv = new ArtsStatusView( _kartsserver->server() );
connect( _asv, SIGNAL( closed() ), this, SLOT( viewArtsStatusView() ) );
} else {
delete _asv;
_asv = 0;
}
}
void ArtsActions::viewMidiManagerView() {
if ( !_mmv ) {
_mmv = new MidiManagerView();
connect( _mmv, SIGNAL( closed() ), this, SLOT( viewMidiManagerView() ) );
} else {
delete _mmv;
_mmv = 0;
}
}
void ArtsActions::viewEnvironmentView() {
if ( !_ev ) {
_ev = new EnvironmentView( defaultEnvironment() );
connect( _ev, SIGNAL( closed() ), this, SLOT( viewEnvironmentView() ) );
} else {
delete _ev;
_ev = 0;
}
}
void ArtsActions::viewMediaTypesView() {
if ( !_mtv ) {
_mtv = new MediaTypesView();
connect( _mtv, SIGNAL( closed() ), this, SLOT( viewMediaTypesView() ) );
} else {
delete _mtv;
_mtv = 0;
}
}
#include "artsactions.moc"