Search
j0ke.net Open Build Service
>
Projects
>
multimedia
:
SL12
>
kdemultimedia4
> kmix-autostart_122.diff
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File kmix-autostart_122.diff of Package kdemultimedia4
--- kmix/apps/KMixApp.cpp 2011-01-02 16:53:28.000000000 +0100 +++ kmix/apps/KMixApp.cpp 2011-08-01 14:27:20.864178849 +0200 @@ -22,9 +22,11 @@ #include "KMixApp.h" #include "apps/kmix.h" #include <kdebug.h> +#include <kcmdlineargs.h> bool KMixApp::_keepVisibility = false; +bool KMixApp::_autoStart = false; KMixApp::KMixApp() : KUniqueApplication(), m_kmix( 0 ) @@ -51,6 +53,17 @@ // There are 3 cases for a new instance //kDebug(67100) << "KMixApp::newInstance() isRestored()=" << isRestored() << "_keepVisibility=" << _keepVisibility; + + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + if (args->isSet("autostart")) + { + kapp->disableSessionManagement(); + + if ( m_kmix ) + return 0; + } + static bool first = true; if ( !first ) { // There already exists an instance/window @@ -118,6 +131,11 @@ _keepVisibility = val_keepVisibility; } +void KMixApp::autoStart(bool val_autoStart) { + //kDebug(67100) << "KMixApp::autoStart()"; + _autoStart = val_autoStart; +} + /* void KMixApp::quitExtended() --- kmix/apps/KMixApp.h 2010-09-01 23:37:58.000000000 +0200 +++ kmix/apps/KMixApp.h 2011-08-01 14:27:20.865178847 +0200 @@ -36,6 +36,7 @@ public slots: //void quitExtended(); // For a hack on visibility() static void keepVisibility(bool); + static void autoStart(bool); /* signals: void stopUpdatesOnVisibility(); @@ -43,6 +44,7 @@ private: KMixWindow *m_kmix; static bool _keepVisibility; + static bool _autoStart; }; #endif --- kmix/apps/kmix.cpp 2011-07-31 18:38:33.000000000 +0200 +++ kmix/apps/kmix.cpp 2011-08-01 14:29:03.519183816 +0200 @@ -29,9 +29,11 @@ #include <qradiobutton.h> #include <QCursor> #include <QString> +#include <QTimer> // include files for KDE +#include <kcmdlineargs.h> #include <kcombobox.h> #include <kiconloader.h> #include <kmessagebox.h> @@ -106,6 +108,9 @@ fixConfigAfterRead(); theKMixDeviceManager->initHotplug(); connect(theKMixDeviceManager, SIGNAL(plugged(const char*,QString,QString&)), SLOT (plugged(const char*,QString,QString&)) ); + if (KCmdLineArgs::parsedArgs()->isSet("autostart") && ! Mixer::mixers().first()) + QTimer::singleShot(0, kapp, SLOT(quit())); + connect(theKMixDeviceManager, SIGNAL(unplugged(QString)), SLOT (unplugged(QString)) ); if ( m_startVisible && ! invisible) show(); // Started visible @@ -316,6 +321,7 @@ config.writeEntry( "Tickmarks", m_showTicks ); config.writeEntry( "Labels", m_showLabels ); config.writeEntry( "startkdeRestore", m_onLogin ); + config.writeEntry( "AutoStart", m_autoStart ); config.writeEntry( "DefaultCardOnStart", m_defaultCardOnStart ); config.writeEntry( "ConfigVersion", KMIX_CONFIG_VERSION ); config.writeEntry( "AutoUseMultimediaKeys", m_autouseMultimediaKeys ); @@ -420,6 +426,7 @@ m_showLabels = config.readEntry("Labels", true); m_onLogin = config.readEntry("startkdeRestore", true ); m_startVisible = config.readEntry("Visible", false); + m_autoStart = config.readEntry("AutoStart", true); m_multiDriverMode = config.readEntry("MultiDriver", false); const QString& orientationString = config.readEntry("Orientation", "Vertical"); m_defaultCardOnStart = config.readEntry( "DefaultCardOnStart", "" ); @@ -1030,6 +1037,7 @@ m_prefDlg->m_volumeChk->setChecked(m_volumeWidget); m_prefDlg->m_volumeChk->setEnabled( m_showDockWidget ); m_prefDlg->m_onLogin->setChecked( m_onLogin ); + m_prefDlg->m_disableAutoStart->setChecked( !m_autoStart ); m_prefDlg->m_showTicks->setChecked( m_showTicks ); m_prefDlg->m_showLabels->setChecked( m_showLabels ); @@ -1071,6 +1079,7 @@ m_showDockWidget = prefDlg->m_dockingChk->isChecked(); m_volumeWidget = prefDlg->m_volumeChk->isChecked(); m_onLogin = prefDlg->m_onLogin->isChecked(); + m_autoStart = !prefDlg->m_disableAutoStart->isChecked(); if ( prefDlg->_rbVertical->isChecked() ) { m_toplevelOrientation = Qt::Vertical; } --- kmix/apps/kmix.h 2011-07-22 01:15:32.000000000 +0200 +++ kmix/apps/kmix.h 2011-08-01 14:27:20.867178846 +0200 @@ -106,6 +106,7 @@ bool m_showDockWidget; bool m_volumeWidget; + bool m_autoStart; bool m_showTicks; bool m_showLabels; bool m_onLogin; --- kmix/apps/main.cpp 2010-09-07 00:50:02.000000000 +0200 +++ kmix/apps/main.cpp 2011-08-01 14:27:20.867178846 +0200 @@ -58,6 +58,7 @@ KCmdLineOptions options; options.add("keepvisibility", ki18n("Inhibits the unhiding of the KMix main window, if KMix is already running.")); + options.add("autostart", ki18n("Used by kmix_autostart.desktop")); KCmdLineArgs::addCmdLineOptions( options ); // Add our own options. KUniqueApplication::addCmdLineOptions(); @@ -65,6 +66,8 @@ bool hasArgKeepvisibility = args->isSet("keepvisibility"); //kDebug(67100) << "hasArgKeepvisibility=" << hasArgKeepvisibility; KMixApp::keepVisibility(hasArgKeepvisibility); + bool hasAutoStart = args->isSet("autostart"); + KMixApp::autoStart(hasAutoStart); if (!KMixApp::start()) return 0; --- kmix/gui/kmixprefdlg.cpp 2010-09-01 23:37:58.000000000 +0200 +++ kmix/gui/kmixprefdlg.cpp 2011-08-01 14:27:20.868178847 +0200 @@ -78,6 +78,12 @@ m_onLogin = new QCheckBox( i18n("Restore volumes on login"), m_generalTab ); l->addWidget( m_onLogin ); + l = new QHBoxLayout(); + layout->addItem( l ); + l->addSpacing(10); + m_disableAutoStart = new QCheckBox( i18n("Disable automatic startup on login"), m_generalTab ); + l->addWidget( m_disableAutoStart ); + // ----------------------------------------------------------- label = new QLabel( i18n("Visual"), m_generalTab ); --- kmix/gui/kmixprefdlg.h 2010-09-01 23:37:58.000000000 +0200 +++ kmix/gui/kmixprefdlg.h 2011-08-01 14:27:20.868178847 +0200 @@ -55,6 +55,7 @@ QCheckBox *m_showTicks; QCheckBox *m_showLabels; QCheckBox *m_onLogin; + QCheckBox *m_disableAutoStart; QRadioButton *_rbVertical; QRadioButton *_rbHorizontal; };