Hello community, here is the log from the commit of package kdemultimedia3 for openSUSE:Factory checked in at Mon Sep 19 22:53:13 CEST 2011.
-------- New Changes file: --- /dev/null 2010-08-26 16:28:41.000000000 +0200 +++ /mounts/work_src_done/STABLE/kdemultimedia3/kdemultimedia3.changes 2011-09-14 14:31:51.000000000 +0200 @@ -0,0 +1,1337 @@ +------------------------------------------------------------------- +Wed Sep 14 12:30:18 UTC 2011 - [email protected] + +- changed license for kdemultimedia3-extra package (bnc#717745) + +------------------------------------------------------------------- +Thu May 13 11:21:12 UTC 2010 - [email protected] + +- Fix factory build by adding -lpthread to spec. +- Cleanup spec file to remove some rpmlint errors +- Removed unneccesary patches + +------------------------------------------------------------------- +Mon Nov 16 21:49:55 CET 2009 - [email protected] + +- add .1 to version to allow obsoleting 11.1 version + +------------------------------------------------------------------- +Mon Jun 22 07:09:13 CEST 2009 - [email protected] + +- remove ancient unversionized obsolete (juk) + +------------------------------------------------------------------- +Wed Aug 20 18:39:28 CEST 2008 - [email protected] + +- update to KDE 3.5.10 + * translation update, bugfixes, desktop files validate + +------------------------------------------------------------------- +Mon May 19 17:53:32 CEST 2008 - [email protected] + +- Work around invalid configure check. + +------------------------------------------------------------------- +Wed Feb 13 23:33:27 CET 2008 - [email protected] + +- update to 3.5.9: + * http://kde.org/announcements/changelogs/changelog3_5_8to3_5_9.php + +------------------------------------------------------------------- +Wed Nov 28 14:01:32 CET 2007 - [email protected] + +- fix build against glibc 2.7 + +------------------------------------------------------------------- +Tue Oct 23 11:49:03 CEST 2007 - [email protected] + +- fix build with gcc 4.3 + +------------------------------------------------------------------- +Tue Oct 9 16:05:28 CEST 2007 - [email protected] + +- update to 3.5.8: bug fixes in audiocd slave, JuK and kaudiocreator + +------------------------------------------------------------------- +Thu Oct 4 14:34:01 CEST 2007 - [email protected] + +- unbreak build of internal mad subpackages + +------------------------------------------------------------------- +Thu Sep 13 15:53:28 CEST 2007 - [email protected] + +- fix filelist splitting again (#283166) + +------------------------------------------------------------------- +Sat Aug 4 19:24:21 CEST 2007 - [email protected] + +- update 3_5_BRANCH.diff + +------------------------------------------------------------------- +Sun Jul 22 13:53:33 CEST 2007 - [email protected] + +- add 3_5_BRANCH.diff for various bug fixes + +------------------------------------------------------------------- +Thu Jun 21 17:06:26 CEST 2007 - [email protected] + +- fix invalid .desktop files + +------------------------------------------------------------------- +Wed Jun 20 11:43:50 CEST 2007 - [email protected] + +- remove kappfinder data (#285831) + +------------------------------------------------------------------- +Tue Jun 5 09:25:28 CEST 2007 - [email protected] + +- fix package splitting + +------------------------------------------------------------------- +Fri Jun 1 08:20:57 CEST 2007 - [email protected] + +- move kde_post_install + +------------------------------------------------------------------- +Wed May 23 22:40:38 CEST 2007 - [email protected] + +- fix -devel package splitting +- add missing ldconfig calls + +------------------------------------------------------------------- +Mon May 14 23:30:14 CEST 2007 - [email protected] + +- update to 3.5.7: + Juk: Tell Google not to send JavaScript when we request images + to reduce errors in the cover art search, and make sure that + images we request have the appropriate http:// protocol. + +------------------------------------------------------------------- +Mon Apr 16 14:35:52 CEST 2007 - [email protected] + +- skip libtool check + +------------------------------------------------------------------- +Thu Apr 5 18:54:01 CEST 2007 - [email protected] + +- build with -fno-strict-aliasing + +------------------------------------------------------------------- +Fri Mar 9 15:18:20 CET 2007 - [email protected] + +- fix build (new icon location check) + +------------------------------------------------------------------- +Fri Feb 2 18:03:47 CET 2007 - [email protected] + +- fix changes file not incremental + +------------------------------------------------------------------- +Tue Jan 16 15:45:34 CET 2007 - [email protected] + +- update to 3.5.6 release: + * bugfixing within kaudiocreator, kmix, audiocd slave and juk + +------------------------------------------------------------------- +Thu Dec 7 18:16:19 CET 2006 - [email protected] + +- re-add arts backend for kdemm (#225732) + +------------------------------------------------------------------- +Wed Nov 22 18:32:24 CET 2006 - [email protected] + +- add default keybindings to kmix (#219919) + +------------------------------------------------------------------- +Tue Nov 14 23:48:27 CET 2006 - [email protected] + +- autostart kmix only once (#159352, #204751) + +------------------------------------------------------------------- +Wed Nov 8 16:56:47 CET 2006 - [email protected] + +- remove historic "Provides:" (#218798) + +------------------------------------------------------------------- +Tue Oct 31 16:50:30 CET 2006 - [email protected] + +- add 3_5_BRANCH.diff: + mpeg plugiN: Fix lookup of audio_rate + +------------------------------------------------------------------- +Tue Oct 3 10:41:46 CEST 2006 - [email protected] + +- update to 3.5.5 release tarball + +------------------------------------------------------------------- +Thu Sep 21 16:28:53 CEST 2006 - [email protected] + +- drop autorun kmix patch, will be solved differently (#204751) + +------------------------------------------------------------------- +Wed Sep 20 14:39:33 CEST 2006 - [email protected] + +- move kscd to -extra (#117757) + +------------------------------------------------------------------- +Thu Sep 7 15:54:52 CEST 2006 - [email protected] + +- add patch to always start kmix if mixer device is found (#159352) + +------------------------------------------------------------------- +Wed Aug 23 12:10:43 CEST 2006 - [email protected] + +- add 3_5_BRANCH.diff: + * changes to mpeg kfile plugin, kmix, juk, krec, kioslave audiocd + +------------------------------------------------------------------- +Mon Jul 24 08:02:28 CEST 2006 - [email protected] + +- update to KDE 3.5.4: + * kscd: add return value checks + * don't leak in akode_artsplugin + +------------------------------------------------------------------- +Wed May 24 10:28:24 CEST 2006 - [email protected] + +- update to KDE 3.5.3 ++++ 1140 more lines (skipped) ++++ between /dev/null ++++ and /mounts/work_src_done/STABLE/kdemultimedia3/kdemultimedia3.changes calling whatdependson for head-i586 New: ---- 3_5_BRANCH.diff akode-config.diff audiocd-desktop-icon.diff autorun-kmix.diff desktop-files.diff disable-cddb-usage-by-default.diff disable-examples.diff fix-aliasing.diff initial-preferences.diff kdemm.diff.bz2 kdemultimedia-3.5.10-alt3.2-kmix.patch kdemultimedia-3.5.10.tar.bz2 kdemultimedia-gcc43.diff kdemultimedia3-rpmlintrc kdemultimedia3.changes kdemultimedia3.spec kmix-autostart.diff kmix-default-keybindings.diff kscdrc yahoo_credit.png ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdemultimedia3.spec ++++++ ++++ 1296 lines (skipped) ++++++ 3_5_BRANCH.diff ++++++ package: kdemultimedia-3.5.10.tar.bz2 kdemod: kdemultimedia --- BRANCH_STATUS +++ BRANCH_STATUS @@ -0,0 +1,2 @@ +current HEAD: +svn di between //tags/KDE/3.5.10/kdemultimedia and //branches/KDE/3.5/kdemultimedia Eigenschaftsänderungen: . ___________________________________________________________________ Gelöscht: svn:mergeinfo Hinzugefügt: svn:externals + admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin ++++++ akode-config.diff ++++++ --- akode_artsplugin/configure.in.in +++ akode_artsplugin/configure.in.in @@ -2,10 +2,15 @@ if test x$build_arts != xyes || test x$h then DO_NOT_COMPILE="$DO_NOT_COMPILE akode_artsplugin" else + dnl Workaround invalid use of non-function. + m4_pushdef([AC_LANG_CALL(C)], + [AC_LANG_PROGRAM([$1 +extern char $2 [[]];], [return $2[[0]];])]) KDE_CHECK_LIB(akode_mpeg_decoder, mpeg_decoder, have_akode_mpeg=yes, have_akode_mpeg=no, -lakode) KDE_CHECK_LIB(akode_mpc_decoder, mpc_decoder, have_akode_mpc=yes, have_akode_mpc=no, -lakode) KDE_CHECK_LIB(akode_xiph_decoder, xiph_decoder, have_akode_xiph=yes, have_akode_xiph=no, -lakode) KDE_CHECK_LIB(akode_ffmpeg_decoder, ffmpeg_decoder, have_akode_ffmpeg=yes, have_akode_ffmpeg=no, -lakode) + m4_popdef([AC_LANG_CALL(C)]) fi # This must always be called to handle the --without-akode case, as autoconf ++++++ audiocd-desktop-icon.diff ++++++ --- ./kioslave/audiocd/kcmaudiocd/audiocd.desktop 2007/03/09 12:30:01 1.1 +++ ./kioslave/audiocd/kcmaudiocd/audiocd.desktop 2007/03/09 12:30:10 @@ -1,6 +1,6 @@ [Desktop Entry] Exec=kcmshell audiocd -Icon=cdaudio_unmount +Icon=kcmaudiocd Type=Application X-KDE-ModuleType=Library ++++++ autorun-kmix.diff ++++++ --- kmix/restore_kmix_volumes.desktop +++ kmix/restore_kmix_volumes.desktop @@ -3,7 +3,7 @@ X-KDE-autostart-phase=1 X-KDE-autostart-condition=kmixrc::startkdeRestore:true Type=Application -Exec=kmixctrl --restore +Exec=kmixctrl --restore --autorun-kmix OnlyShowIn=KDE; Name=Restore Mixer Volumes Name[bg]=Възстановяване на стойностите на миксера --- kmix/kmixctrl.cpp +++ kmix/kmixctrl.cpp @@ -28,6 +28,7 @@ #include <kconfig.h> #include <kdebug.h> #include <qptrlist.h> +#include <dcopclient.h> #include "kmixtoolbox.h" #include "mixer.h" @@ -42,6 +43,7 @@ { "save", I18N_NOOP("Save current volumes as default"), 0 }, { "r", 0, 0 }, { "restore", I18N_NOOP("Restore default volumes"), 0 }, + { "autorun-kmix", I18N_NOOP("Launch kmix if mixer found"), 0 }, KCmdLineLastOption // INSERT YOUR COMMANDLINE OPTIONS HERE }; @@ -75,6 +77,8 @@ for (Mixer *mixer=Mixer::mixers().first(); mixer!=0; mixer=Mixer::mixers().next()) { mixer->volumeLoad( KGlobal::config() ); } + if (args->isSet("autorun-kmix") && Mixer::mixers().first() && !kapp->dcopClient()->isApplicationRegistered("kmix")) + KApplication::kdeinitExec("kmix", QStringList(), 0, 0, "0"); } // save volumes ++++++ desktop-files.diff ++++++ --- ./libkcddb/kcmcddb/libkcddb.desktop 2007/10/09 15:36:35 1.1 +++ ./libkcddb/kcmcddb/libkcddb.desktop 2007/10/09 15:37:27 @@ -1,6 +1,5 @@ [Desktop Entry] Exec=kcmshell libkcddb -Icon=cdaudio_unmount Type=Application X-KDE-ModuleType=Library X-KDE-Library=cddb ++++++ disable-cddb-usage-by-default.diff ++++++ --- libkcddb/libkcddb.kcfg +++ libkcddb/libkcddb.kcfg 2005/04/01 08:09:34 @@ -18,7 +18,7 @@ <choice name="UseCache"></choice> <choice name="IgnoreCache"></choice> </choices> - <default>UseCache</default> + <default>OnlyCache</default> </entry> <entry name="lookupTransport" type="Enum"> <choices> ++++++ disable-examples.diff ++++++ --- mpeglib/Makefile.am +++ mpeglib/Makefile.am 2005/01/11 15:12:19 @@ -1,7 +1,7 @@ # This file you have to edit. Change the name here -SUBDIRS = lib example +SUBDIRS = lib EXTRA_DIST = CHANGES doemacs TODO \ ++++++ fix-aliasing.diff ++++++ --- kscd/libwm/audio/audio.c 2009/11/22 09:09:11 1.1 +++ kscd/libwm/audio/audio.c 2009/11/22 09:09:27 @@ -5,6 +5,16 @@ struct audio_oops* setup_arts(const char *dev, const char *ctl); struct audio_oops* setup_alsa(const char *dev, const char *ctl); +#ifdef USE_ARTS +struct audio_oops* setup_arts(const char *dev, const char *ctl); +#endif +#if defined(HAVE_ARTS_LIBASOUND2) +struct audio_oops* setup_alsa(const char *dev, const char *ctl); +#endif +#ifdef USE_SUN_AUDIO +struct audio_oops* setup_sun_audio(const char *dev, const char *ctl); +#endif + struct audio_oops* setup_soundsystem(const char* ss, const char* dev, const char* ctl) { if(!ss) { --- kscd/libwm/plat_linux_cdda.c 2009/11/22 09:09:20 1.1 +++ kscd/libwm/plat_linux_cdda.c 2009/11/22 09:09:27 @@ -51,6 +51,7 @@ #include <unistd.h> #include <errno.h> #include <string.h> +#include <stdlib.h> #include "include/wm_struct.h" #include "include/wm_cdda.h" ++++++ initial-preferences.diff ++++++ --- kaboodle/kaboodle.desktop +++ kaboodle/kaboodle.desktop @@ -78,6 +78,6 @@ GenericName[zh_TW]=媒體播放器 GenericName[zu]=Umdlali Womculo Terminal=false -InitialPreference=6 +InitialPreference=1 X-DCOP-ServiceType=Multi Categories=Qt;KDE;AudioVideo;X-KDE-More; --- noatun/noatun.desktop +++ noatun/noatun.desktop @@ -77,7 +77,7 @@ GenericName[zh_TW]=媒體播放器 GenericName[zu]=Umdlali Womculo Terminal=false -InitialPreference=6 +InitialPreference=1 X-KDE-StartupNotify=true X-DCOP-ServiceType=Unique Categories=Qt;KDE;AudioVideo; ++++++ kdemm.diff.bz2 ++++++ ++++ 2050 lines (skipped) ++++++ kdemultimedia-3.5.10-alt3.2-kmix.patch ++++++ kmix/kmix-platforms.cpp | 18 ++++++++++-------- kmix/mixer.cpp | 5 +++++ kmix/mixer.h | 1 + kmix/mixer_alsa.h | 7 +++++++ kmix/mixer_alsa9.cpp | 30 ++++++++++++++++++++++++------ kmix/mixer_backend.cpp | 25 +++++++++++++++++++++++++ kmix/mixer_backend.h | 12 ++++++++++++ kmix/mixer_oss.cpp | 2 +- kmix/mixertoolbox.cpp | 16 +++++++++++++++- 9 files changed, 100 insertions(+), 16 deletions(-) diff --git a/kmix/kmix-platforms.cpp b/kmix/kmix-platforms.cpp index a492345..e43e114 100644 --- a/kmix/kmix-platforms.cpp +++ b/kmix/kmix-platforms.cpp @@ -109,42 +109,44 @@ typedef Mixer_Backend *getMixerFunc( int device ); typedef QString getDriverNameFunc( ); +typedef DevIterator* getDevIteratorFunc( ); struct MixerFactory { getMixerFunc *getMixer; getDriverNameFunc *getDriverName; + getDevIteratorFunc *getDevIterator; }; MixerFactory g_mixerFactories[] = { #if defined(NAS_MIXER) - { NAS_getMixer, 0 }, + { NAS_getMixer, NULL, NULL }, #endif #if defined(SUN_MIXER) - { SUN_getMixer, SUN_getDriverName }, + { SUN_getMixer, SUN_getDriverName, NULL }, #endif #if defined(IRIX_MIXER) - { IRIX_getMixer, IRIX_getDriverName }, + { IRIX_getMixer, IRIX_getDriverName, NULL }, #endif #if defined(ALSA_MIXER) - { ALSA_getMixer, ALSA_getDriverName }, + { ALSA_getMixer, ALSA_getDriverName, ALSA_getDevIterator }, #endif #if defined(OSS4_MIXER) - { OSS4_getMixer, OSS4_getDriverName }, + { OSS4_getMixer, OSS4_getDriverName, NULL }, #endif #if defined(OSS_MIXER) - { OSS_getMixer, OSS_getDriverName }, + { OSS_getMixer, OSS_getDriverName, NULL }, #endif #if defined(HPUX_MIXER) - { HPUX_getMixer, HPUX_getDriverName }, + { HPUX_getMixer, HPUX_getDriverName, NULL }, #endif - { 0, 0 } + { NULL, NULL, NULL } }; diff --git a/kmix/mixer.cpp b/kmix/mixer.cpp index 316625e..da5459b 100644 --- a/kmix/mixer.cpp +++ b/kmix/mixer.cpp @@ -347,6 +347,11 @@ QString Mixer::mixerName() return _mixerBackend->m_mixerName; } +int Mixer::devnum() +{ + return _mixerBackend->m_devnum; +} + QString Mixer::driverName( int driver ) { getDriverNameFunc *f = g_mixerFactories[driver].getDriverName; diff --git a/kmix/mixer.h b/kmix/mixer.h index b6d0917..30e5a76 100644 --- a/kmix/mixer.h +++ b/kmix/mixer.h @@ -82,6 +82,7 @@ class Mixer : public QObject, virtual public MixerIface QString& stateMessage() const; virtual QString mixerName(); + virtual int devnum(); // Returns the name of the driver, e.g. "OSS" or "ALSA0.9" static QString driverName(int num); diff --git a/kmix/mixer_alsa.h b/kmix/mixer_alsa.h index da04e37..0d73dc7 100644 --- a/kmix/mixer_alsa.h +++ b/kmix/mixer_alsa.h @@ -50,4 +50,11 @@ class Mixer_ALSA : public Mixer_Backend }; +class ALSA_DevIterator : public DevIterator +{ + public: + ALSA_DevIterator(); + virtual void next(); +}; + #endif diff --git a/kmix/mixer_alsa9.cpp b/kmix/mixer_alsa9.cpp index e55f611..4fbfdc6 100644 --- a/kmix/mixer_alsa9.cpp +++ b/kmix/mixer_alsa9.cpp @@ -114,12 +114,8 @@ Mixer_ALSA::open() snd_mixer_selem_id_alloca( &sid ); // Card information - if( m_devnum == -1 ) - m_devnum = 0; - if ( (unsigned)m_devnum > 31 ) - devName = "default"; - else - devName = QString( "hw:%1" ).arg( m_devnum ); + if ((unsigned)m_devnum > 31) m_devnum = -1; + devName = m_devnum == -1 ? "default" : QString("hw:%1").arg(m_devnum); QString probeMessage; @@ -146,6 +142,8 @@ Mixer_ALSA::open() //mixer_device_name = snd_ctl_card_info_get_mixername( hw_info ); // Copy the name of kmix mixer from card name (mixername is rumoured to be not that good) m_mixerName = mixer_card_name; + if (m_devnum == -1) m_devnum = snd_card_get_index(snd_ctl_card_info_get_id(hw_info)); + if (m_devnum < 0) m_devnum = -1; snd_ctl_close( ctl_handle ); @@ -826,3 +824,23 @@ ALSA_getDriverName() } +ALSA_DevIterator::ALSA_DevIterator() +{ + N = -1; + NMax = 31; +} + +void ALSA_DevIterator::next() +{ +#if 0 + int rc = snd_card_next(&N); + if (rc || (N == -1)) N = NMax + 1; +#else + if ((snd_card_next(&N) != 0) || (N == -1)) N = NMax + 1; +#endif +} + +DevIterator* ALSA_getDevIterator() +{ + return new ALSA_DevIterator(); +} diff --git a/kmix/mixer_backend.cpp b/kmix/mixer_backend.cpp index 2eb6108..7d2a840 100644 --- a/kmix/mixer_backend.cpp +++ b/kmix/mixer_backend.cpp @@ -145,3 +145,28 @@ QString Mixer_Backend::errorText(int mixer_error) return l_s_errmsg; } + +DevIterator::DevIterator() +{ + N = 0; + NMax = 19; +} + +void DevIterator::next() +{ + N++; +} + +int DevIterator::getdev() +{ + return N; +} + +bool DevIterator::end() +{ + return N > NMax; +} + +DevIterator::~DevIterator() +{ +} diff --git a/kmix/mixer_backend.h b/kmix/mixer_backend.h index 8132ea0..93340cf 100644 --- a/kmix/mixer_backend.h +++ b/kmix/mixer_backend.h @@ -101,4 +101,16 @@ protected: MixDevice* m_recommendedMaster; }; +class DevIterator +{ +public: + DevIterator(); + virtual ~DevIterator(); + virtual void next(); + virtual int getdev(); + virtual bool end(); +protected: + int N, NMax; +}; + #endif diff --git a/kmix/mixer_oss.cpp b/kmix/mixer_oss.cpp index 6991c1a..cc2eb84 100644 --- a/kmix/mixer_oss.cpp +++ b/kmix/mixer_oss.cpp @@ -133,7 +133,7 @@ int Mixer_OSS::open() readVolumeFromHW( idx, vol ); MixDevice* md = new MixDevice( idx, vol, recmask & ( 1 << idx ), true, - i18n(MixerDevNames[idx]), + MixerDevNames[idx], MixerChannelTypes[idx]); md->setRecSource( isRecsrcHW( idx ) ); m_mixDevices.append( md ); diff --git a/kmix/mixertoolbox.cpp b/kmix/mixertoolbox.cpp index 9b6ee94..9b6e103 100644 --- a/kmix/mixertoolbox.cpp +++ b/kmix/mixertoolbox.cpp @@ -99,11 +99,25 @@ void MixerToolBox::initMixer(QPtrList<Mixer> &mixers, bool multiDriverMode, QStr // New: We don't try be that clever anymore. We now blindly scan 20 cards, as the clever // approach doesn't work for the one or other user. int devNumMax = 19; - for( int dev=0; dev<=devNumMax; dev++ ) + getDevIteratorFunc* f = g_mixerFactories[drv].getDevIterator; + for( DevIterator* I = f ? f() : new DevIterator(); !I->end(); I->next()) { + int dev = I->getdev(); Mixer *mixer = new Mixer( drv, dev ); if ( mixer->isValid() ) { mixer->open(); + Mixer* m; + if (dev >= 0) { + for (m = mixers.first(); m; m = mixers.next()) +#if 0 + if ((mixer->devnum() == m->devnum()) && + m->id().startsWith(mixer->driverName(drv) + "::", true)) +#else + if (mixer->devnum() == m->devnum()) +#endif + break; + if (m) continue; + } mixers.append( mixer ); // Count mixer nums for every mixer name to identify mixers with equal names. // This is for creating persistent (reusable) primary keys, which can safely ++++++ kdemultimedia-gcc43.diff ++++++ --- kdemmbackends/arts/artsplayer.cpp 2007/10/23 09:01:33 1.19 +++ kdemmbackends/arts/artsplayer.cpp 2007/10/23 09:30:45 @@ -25,6 +25,8 @@ #include <kplayobjectfactory.h> #include <flowsystem.h> +#include <stdlib.h> + #include <qtimer.h> #include <kurl.h> --- kdemmbackends/arts/artschannel.cpp 2007/10/23 09:01:33 1.19 +++ kdemmbackends/arts/artschannel.cpp 2007/10/23 09:31:29 @@ -20,6 +20,8 @@ #include "artschannel.h" #include <arts/kartsserver.h> +#include <stdlib.h> + #include <qstring.h> #include <kmessagebox.h> #include <kdebug.h> ++++++ kdemultimedia3-rpmlintrc ++++++ # arts seems to crash when so symlinks are missing even # though the service files are there (#283166) addFilter('devel-file-in-non-devel-package.*arts.*') addFilter('devel-file-in-non-devel-package .*/opt/kde3/lib64/libaudiocdplugins.so') ++++++ kmix-autostart.diff ++++++ Index: kmix/kmixprefdlg.h =================================================================== --- kmix/kmixprefdlg.h.orig +++ kmix/kmixprefdlg.h @@ -57,6 +57,7 @@ KMixPrefDlg : public KDialogBase QCheckBox *m_showTicks; QCheckBox *m_showLabels; QCheckBox *m_onLogin; + QCheckBox *m_disableAutoStart; QRadioButton *_rbVertical; QRadioButton *_rbHorizontal; QRadioButton *_rbNone; Index: kmix/kmix.cpp =================================================================== --- kmix/kmix.cpp.orig +++ kmix/kmix.cpp @@ -29,6 +29,7 @@ #include <qtooltip.h> // include files for KDE +#include <kcmdlineargs.h> #include <kcombobox.h> #include <kiconloader.h> #include <kmessagebox.h> @@ -81,6 +82,9 @@ KMixWindow::KMixWindow() initPrefDlg(); updateDocking(); + if (KCmdLineArgs::parsedArgs()->isSet("autostart") && ! Mixer::mixers().first()) + QTimer::singleShot(0, kapp, SLOT(quit())); + if ( m_startVisible ) { /* Started visible: We should do probably do: @@ -249,6 +253,7 @@ KMixWindow::saveConfig() config->writeEntry( "Tickmarks", m_showTicks ); config->writeEntry( "Labels", m_showLabels ); config->writeEntry( "startkdeRestore", m_onLogin ); + config->writeEntry( "AutoStart", m_autoStart); Mixer* mixerMasterCard = Mixer::masterCard(); if ( mixerMasterCard != 0 ) { config->writeEntry( "MasterMixer", mixerMasterCard->id() ); @@ -299,6 +304,7 @@ KMixWindow::loadConfig() const QString& valueStyleString = config->readEntry("ValueStyle", "None"); m_onLogin = config->readBoolEntry("startkdeRestore", true ); m_startVisible = config->readBoolEntry("Visible", true); + m_autoStart = config->readBoolEntry("AutoStart", true); m_multiDriverMode = config->readBoolEntry("MultiDriver", false); m_surroundView = config->readBoolEntry("Experimental-ViewSurround", false ); m_gridView = config->readBoolEntry("Experimental-ViewGrid", false ); @@ -428,6 +434,7 @@ KMixWindow::showSettings() m_prefDlg->m_showTicks->setChecked( m_showTicks ); m_prefDlg->m_showLabels->setChecked( m_showLabels ); m_prefDlg->m_onLogin->setChecked( m_onLogin ); + m_prefDlg->m_disableAutoStart->setChecked( !m_autoStart); m_prefDlg->_rbVertical ->setChecked( m_toplevelOrientation == Qt::Vertical ); m_prefDlg->_rbHorizontal->setChecked( m_toplevelOrientation == Qt::Horizontal ); m_prefDlg->_rbNone->setChecked( m_valueStyle == MixDeviceWidget::NNONE ); @@ -497,6 +504,7 @@ KMixWindow::applyPrefs( KMixPrefDlg *pre m_showTicks = prefDlg->m_showTicks->isChecked(); m_showLabels = prefDlg->m_showLabels->isChecked(); m_onLogin = prefDlg->m_onLogin->isChecked(); + m_autoStart = !prefDlg->m_disableAutoStart->isChecked(); if ( prefDlg->_rbNone->isChecked() ) { m_valueStyle = MixDeviceWidget::NNONE; Index: kmix/KMixApp.cpp =================================================================== --- kmix/KMixApp.cpp.orig +++ kmix/KMixApp.cpp @@ -23,6 +23,7 @@ #include "KMixApp.h" #include "kmix.h" #include <kdebug.h> +#include <kcmdlineargs.h> KMixApp::KMixApp() @@ -40,9 +41,19 @@ KMixApp::~KMixApp() int KMixApp::newInstance() { + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + if (args->isSet("autostart")) + { + kapp->disableSessionManagement(); + + if ( m_kmix ) + return 0; + } + if ( m_kmix ) { - m_kmix->show(); + m_kmix->show(); } else { @@ -69,3 +80,4 @@ KMixApp::quitExtended() } #include "KMixApp.moc" +// vim: sw=8:noet: Index: kmix/kmix.h =================================================================== --- kmix/kmix.h.orig +++ kmix/kmix.h @@ -99,6 +99,7 @@ KMixWindow : public KMainWindow bool m_showDockWidget; bool m_volumeWidget; bool m_hideOnClose; + bool m_autoStart; bool m_showTicks; bool m_showLabels; MixDeviceWidget::ValueStyle m_valueStyle; // No numbers by default Index: kmix/main.cpp =================================================================== --- kmix/main.cpp.orig +++ kmix/main.cpp @@ -33,8 +33,8 @@ I18N_NOOP("KMix - KDE's full featured mi static KCmdLineOptions options[] = { + { "autostart", "", 0 }, KCmdLineLastOption - // INSERT YOUR COMMANDLINE OPTIONS HERE }; extern "C" KDE_EXPORT int kdemain(int argc, char *argv[]) Index: kmix/kmixprefdlg.cpp =================================================================== --- kmix/kmixprefdlg.cpp.orig +++ kmix/kmixprefdlg.cpp @@ -68,6 +68,10 @@ KMixPrefDlg::KMixPrefDlg( QWidget *paren m_onLogin = new QCheckBox( i18n("Restore volumes on login"), m_generalTab ); layout->addWidget( m_onLogin ); + m_disableAutoStart = new QCheckBox( + i18n("Disable automatic startup on login"), m_generalTab); + layout->addWidget(m_disableAutoStart); + QBoxLayout *numbersLayout = new QHBoxLayout( layout ); QButtonGroup *numbersGroup = new QButtonGroup( 3, Qt::Horizontal, i18n("Numbers"), m_generalTab ); numbersGroup->setRadioButtonExclusive(true); ++++++ kmix-default-keybindings.diff ++++++ --- kmix/kmix.cpp 2007/01/16 15:27:38 1.9 +++ kmix/kmix.cpp 2007/01/16 15:31:04 @@ -125,11 +125,11 @@ m_globalAccel = new KGlobalAccel( this ); m_globalAccel->insert( "Increase volume", i18n( "Increase Volume of Master Channel"), QString::null, - KShortcut(), KShortcut(), this, SLOT( increaseVolume() ) ); + KShortcut(Key_VolumeUp), KShortcut(Key_VolumeUp), this, SLOT( increaseVolume() ) ); m_globalAccel->insert( "Decrease volume", i18n( "Decrease Volume of Master Channel"), QString::null, - KShortcut(), KShortcut(), this, SLOT( decreaseVolume() ) ); + KShortcut(Key_VolumeDown), KShortcut(Key_VolumeDown), this, SLOT( decreaseVolume() ) ); m_globalAccel->insert( "Toggle mute", i18n( "Toggle Mute of Master Channel"), QString::null, - KShortcut(), KShortcut(), this, SLOT( toggleMuted() ) ); + KShortcut(Key_VolumeMute), KShortcut(Key_VolumeMute), this, SLOT( toggleMuted() ) ); m_globalAccel->readSettings(); m_globalAccel->updateConnections(); @@ -551,9 +551,7 @@ show(); } - this->repaint(); // make KMix look fast (saveConfig() often uses several seconds) - kapp->processEvents(); - saveConfig(); + QTimer::singleShot(0, this, SLOT(saveConfig())); } @@ -623,6 +621,8 @@ if ( mixerMaster != 0 ) { MixDevice* md = mixerMaster->masterDevice(); if ( md != 0 && md->hasMute() ) { + if (!isVisible() && m_dockWidget) + m_dockWidget->prepareOSD(); mixerMaster->toggleMute(md->num()); } } @@ -635,6 +635,8 @@ if ( mixerMaster != 0 ) { MixDevice* md = mixerMaster->masterDevice(); if ( md != 0 ) { + if (!isVisible() && m_dockWidget) + m_dockWidget->prepareOSD(); mixerMaster->increaseVolume(md->num()); } } @@ -647,6 +649,8 @@ if ( mixerMaster != 0 ) { MixDevice* md = mixerMaster->masterDevice(); if ( md != 0 ) { + if (!isVisible() && m_dockWidget) + m_dockWidget->prepareOSD(); mixerMaster->decreaseVolume(md->num()); } } Index: kmix/kmix.h =================================================================== --- kmix/kmix.h (revision 606690) +++ kmix/kmix.h (working copy) @@ -64,7 +64,6 @@ KMixWindow : public KMainWindow void saveSettings(); protected: - void saveConfig(); void loadConfig(); void initPrefDlg(); @@ -79,6 +78,7 @@ KMixWindow : public KMainWindow void hideEvent( QHideEvent * ); public slots: + void saveConfig(); void quit(); void showSettings(); void showHelp(); Index: kmix/kmixdockwidget.cpp =================================================================== --- kmix/kmixdockwidget.cpp (revision 606690) +++ kmix/kmixdockwidget.cpp (working copy) @@ -68,6 +68,7 @@ KMixDockWidget::KMixDockWidget( Mixer *m createActions(); createMasterVolWidget(); connect(this, SIGNAL(quitSelected()), kapp, SLOT(quitExtended())); + connect(&_volumePopupHide, SIGNAL(timeout()), SLOT(hideDockAreaPopup())); } KMixDockWidget::~KMixDockWidget() @@ -206,6 +207,22 @@ KMixDockWidget::setVolumeTip() _oldToolTipValue = newToolTipValue; } +void KMixDockWidget::prepareOSD() +{ + if (_dockAreaPopup && !_dockAreaPopup->isVisible()) { + + popupVolumePopup(); + _volumePopupHide.stop(); + _volumePopupHide.start(2000, true /* single shot */); + } +} + +void KMixDockWidget::hideDockAreaPopup() +{ + if (_dockAreaPopup && _dockAreaPopup->isVisible()) + _dockAreaPopup->hide(); +} + void KMixDockWidget::updatePixmap() { @@ -241,6 +258,34 @@ KMixDockWidget::updatePixmap() } void +KMixDockWidget::popupVolumePopup() +{ + int h = _dockAreaPopup->height(); + int x = this->mapToGlobal( QPoint( 0, 0 ) ).x() + this->width()/2 - _dockAreaPopup->width()/2; + int y = this->mapToGlobal( QPoint( 0, 0 ) ).y() - h; + if ( y < 0 ) + y = y + h + this->height(); + + _dockAreaPopup->move(x, y); // so that the mouse is outside of the widget + + // Now handle Multihead displays. And also make sure that the dialog is not + // moved out-of-the screen on the right (see Bug 101742). + QDesktopWidget* vdesktop = QApplication::desktop(); + const QRect& vScreenSize = vdesktop->screenGeometry(_dockAreaPopup); + if ( (x+_dockAreaPopup->width()) > (vScreenSize.width() + vScreenSize.x()) ) { + // move horizontally, so that it is completely visible + _dockAreaPopup->move(vScreenSize.width() + vScreenSize.x() - _dockAreaPopup->width() -1 , y); + } // horizontally out-of bound + else if ( x < vScreenSize.x() ) { + _dockAreaPopup->move(vScreenSize.x(), y); + } + // the above stuff could also be implemented vertically + + _dockAreaPopup->show(); + KWin::setState(_dockAreaPopup->winId(), NET::StaysOnTop | NET::SkipTaskbar | NET::SkipPager ); +} + +void KMixDockWidget::mousePressEvent(QMouseEvent *me) { if ( _dockAreaPopup == 0 ) { @@ -265,31 +310,7 @@ KMixDockWidget::mousePressEvent(QMouseEv _dockAreaPopup->hide(); return; } - - int h = _dockAreaPopup->height(); - int x = this->mapToGlobal( QPoint( 0, 0 ) ).x() + this->width()/2 - _dockAreaPopup->width()/2; - int y = this->mapToGlobal( QPoint( 0, 0 ) ).y() - h; - if ( y < 0 ) - y = y + h + this->height(); - - _dockAreaPopup->move(x, y); // so that the mouse is outside of the widget - - // Now handle Multihead displays. And also make sure that the dialog is not - // moved out-of-the screen on the right (see Bug 101742). - QDesktopWidget* vdesktop = QApplication::desktop(); - const QRect& vScreenSize = vdesktop->screenGeometry(_dockAreaPopup); - if ( (x+_dockAreaPopup->width()) > (vScreenSize.width() + vScreenSize.x()) ) { - // move horizontally, so that it is completely visible - _dockAreaPopup->move(vScreenSize.width() + vScreenSize.x() - _dockAreaPopup->width() -1 , y); - } // horizontally out-of bound - else if ( x < vScreenSize.x() ) { - _dockAreaPopup->move(vScreenSize.x(), y); - } - // the above stuff could also be implemented vertically - - _dockAreaPopup->show(); - KWin::setState(_dockAreaPopup->winId(), NET::StaysOnTop | NET::SkipTaskbar | NET::SkipPager ); - + popupVolumePopup(); QWidget::mousePressEvent(me); // KSystemTray's shouldn't do the default action for this return; } // LeftMouseButton pressed Index: kmix/kmixdockwidget.h =================================================================== --- kmix/kmixdockwidget.h (revision 606690) +++ kmix/kmixdockwidget.h (working copy) @@ -57,6 +57,9 @@ class KMixDockWidget : public KSystemTra public slots: void setVolumeTip(); void updatePixmap(); + void prepareOSD(); + + void hideDockAreaPopup(); protected: void createMasterVolWidget(); @@ -73,6 +76,8 @@ class KMixDockWidget : public KSystemTra int _oldToolTipValue; char _oldPixmapType; bool _volumePopup; + QTimer _volumePopupHide; + void popupVolumePopup(); private slots: void dockMute(); void selectMaster(); ++++++ kscdrc ++++++ [CDDB] CDDBLocalAutoSaveEnabled=true LocalBaseDir=/var/cache/cddb/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
