diff --git a/kmix/appearanceconfig.ui b/kmix/appearanceconfig.ui index a55f5a11..294b00fb 100644 --- a/kmix/appearanceconfig.ui +++ b/kmix/appearanceconfig.ui @@ -8,8 +8,8 @@ 0 0 - 464 - 280 + 487 + 278 @@ -19,30 +19,18 @@ unnamed - - - - Horizontal - - - - - Vertical - - + - kcfg_Orientation + kcfg_Menubar - - - 3 - 0 - 0 - 0 - + + Show &menu bar + + + true - + lblValueStyle @@ -50,20 +38,12 @@ Volume values: - + - lblOrientation - - - Sliders orientation: - - - - - kcfg_Tickmarks + kcfg_Labels - Show &tickmarks + Show &labels true @@ -71,27 +51,44 @@ - kcfg_Labels + kcfg_Tickmarks - Show &labels + Show &tickmarks true - + + + + None + + + + + Absolute + + + + + Relative + + - kcfg_Menubar - - - Show &menu bar + kcfg_ValueStyle - - true + + + 3 + 0 + 0 + 0 + - + spacer5 @@ -108,24 +105,63 @@ + + + lblOrientation + + + Sliders orientation: + + - None + Horizontal - Absolute + Vertical + + kcfg_Orientation + + + + 3 + 0 + 0 + 0 + + + + + + lblOrientation_2 + + + Icon theme: + + + - Relative + Crystal + + + + + Classic (Old Crystal) + + + + + System - kcfg_ValueStyle + kcfg_IconTheme diff --git a/kmix/kmix.kcfg b/kmix/kmix.kcfg index b6d595bd..d4ca0956 100644 --- a/kmix/kmix.kcfg +++ b/kmix/kmix.kcfg @@ -99,4 +99,21 @@ + + + + + + + + + + + + + + Crystal + + + \ No newline at end of file diff --git a/kmix/kmixdockwidget.cpp b/kmix/kmixdockwidget.cpp index fbc28d50..e2338f7f 100644 --- a/kmix/kmixdockwidget.cpp +++ b/kmix/kmixdockwidget.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -47,6 +48,7 @@ #include "mixer.h" #include "mixdevicewidget.h" #include "kmixdockwidget.h" +#include "kmixsettings.h" #include "viewdockareapopup.h" KMixDockWidget::KMixDockWidget( Mixer *mixer, TQWidget *parent, const char *name, bool volumePopup, bool dockIconMuting ) @@ -72,6 +74,9 @@ KMixDockWidget::KMixDockWidget( Mixer *mixer, TQWidget *parent, const char *name createActions(); createMasterVolWidget(); connect(this, TQ_SIGNAL(quitSelected()), kapp, TQ_SLOT(quitExtended())); + + TDEGlobal::dirs()->addResourceDir("icons_crystal", locate("appdata", "pics/crystal/")); + TDEGlobal::dirs()->addResourceDir("icons_oldcrystal", locate("appdata", "pics/oldcrystal/")); } KMixDockWidget::~KMixDockWidget() @@ -352,20 +357,10 @@ KMixDockWidget::updatePixmap(bool force) case 'H': fallback << "audio-volume-high" << "kmixdocked"; break; } - TQString icon = TQString::null; - for(TQStringList::iterator it = fallback.begin(); it != fallback.end(); ++it) - { - /* Check if icon exists */ - if(!kapp->iconLoader()->iconPath((*it), TDEIcon::User, true).isNull()) - { - icon = (*it); - break; - } - } - - if(icon.isNull()) + TQString icon = getIconPath(fallback); + if (icon.isNull()) { - icon = "kmixdocked_error"; + icon = getIconPath("audio-volume-error"); } origpixmap = isShown() ? loadSizedIcon(icon, width()) : loadIcon(icon); @@ -380,6 +375,51 @@ KMixDockWidget::updatePixmap(bool force) } } +TQString KMixDockWidget::getIconPath(TQStringList fallback) +{ + auto iconTheme = KMixSettings::iconTheme(); + + TQCString iconThemeName; + if (iconTheme != KMixSettings::EnumIconTheme::System) + { + switch (iconTheme) + { + case KMixSettings::EnumIconTheme::OldCrystal: + iconThemeName = "oldcrystal"; + break; + + default: + case KMixSettings::EnumIconTheme::Crystal: + iconThemeName = "crystal"; + break; + } + } + + for (TQStringList::iterator it = fallback.begin(); it != fallback.end(); ++it) + { + if (iconTheme == KMixSettings::EnumIconTheme::System) + { + TQString iconPath = kapp->iconLoader()->iconPath((*it), TDEIcon::Panel, true); + if (!iconPath.isNull()) + { + return iconPath; + } + } + + else + { + TQCString type = "icons_" + iconThemeName; + + TQString iconPath = TDEGlobal::dirs()->findResource(type, TQString("%1.png").arg(*it)); + if (!iconPath.isNull()) return iconPath; + + iconPath = TDEGlobal::dirs()->findResource(type, TQString("%1.svg").arg(*it)); + if (!iconPath.isNull()) return iconPath; + } + } + return TQString::null; +} + void KMixDockWidget::resizeEvent ( TQResizeEvent * ) { updatePixmap(true); diff --git a/kmix/kmixdockwidget.h b/kmix/kmixdockwidget.h index 266fa48f..8f119ace 100644 --- a/kmix/kmixdockwidget.h +++ b/kmix/kmixdockwidget.h @@ -71,6 +71,7 @@ class KMixDockWidget : public KSystemTray { void resizeEvent(TQResizeEvent *); void showEvent(TQShowEvent *); long getAvgVolume(); + TQString getIconPath(TQStringList fallback); private: bool _playBeepOnVolumeChange; diff --git a/kmix/pics/CMakeLists.txt b/kmix/pics/CMakeLists.txt index a2b88dc9..92af67f8 100644 --- a/kmix/pics/CMakeLists.txt +++ b/kmix/pics/CMakeLists.txt @@ -17,9 +17,9 @@ install( FILES mix_treble.png mix_unknown.png mix_volume.png mix_surround.png mix_video.png mix_headphone.png mix_digital.png mix_ac97.png mix_record.png - kmixdocked_error.png audio-volume-muted.png - audio-volume-low.png audio-volume-medium.png - audio-volume-high.png SpeakerFrontLeft.png SpeakerRearLeft.png SpeakerFrontRight.png SpeakerRearRight.png Listener.png DESTINATION ${DATA_INSTALL_DIR}/kmix/pics ) + +add_subdirectory(oldcrystal) +add_subdirectory(crystal) \ No newline at end of file diff --git a/kmix/pics/crystal/CMakeLists.txt b/kmix/pics/crystal/CMakeLists.txt new file mode 100644 index 00000000..71f61d26 --- /dev/null +++ b/kmix/pics/crystal/CMakeLists.txt @@ -0,0 +1,13 @@ +################################################################################ +# Copyright © 2024 Mavridis Philippe # +# # +# This file is released under the GNU GPL version 3 or later. # +# Improvements and feedback are welcome! # +################################################################################ + +set(theme "crystal") + +install(FILES audio-volume-error.png audio-volume-muted.png + audio-volume-low.png audio-volume-medium.png + audio-volume-high.png + DESTINATION ${DATA_INSTALL_DIR}/kmix/pics/${theme}) \ No newline at end of file diff --git a/kmix/pics/kmixdocked_error.png b/kmix/pics/crystal/audio-volume-error.png similarity index 100% rename from kmix/pics/kmixdocked_error.png rename to kmix/pics/crystal/audio-volume-error.png diff --git a/kmix/pics/audio-volume-high.png b/kmix/pics/crystal/audio-volume-high.png similarity index 100% rename from kmix/pics/audio-volume-high.png rename to kmix/pics/crystal/audio-volume-high.png diff --git a/kmix/pics/audio-volume-low.png b/kmix/pics/crystal/audio-volume-low.png similarity index 100% rename from kmix/pics/audio-volume-low.png rename to kmix/pics/crystal/audio-volume-low.png diff --git a/kmix/pics/audio-volume-medium.png b/kmix/pics/crystal/audio-volume-medium.png similarity index 100% rename from kmix/pics/audio-volume-medium.png rename to kmix/pics/crystal/audio-volume-medium.png diff --git a/kmix/pics/audio-volume-muted.png b/kmix/pics/crystal/audio-volume-muted.png similarity index 100% rename from kmix/pics/audio-volume-muted.png rename to kmix/pics/crystal/audio-volume-muted.png diff --git a/kmix/pics/oldcrystal/CMakeLists.txt b/kmix/pics/oldcrystal/CMakeLists.txt new file mode 100644 index 00000000..47b37e11 --- /dev/null +++ b/kmix/pics/oldcrystal/CMakeLists.txt @@ -0,0 +1,13 @@ +################################################################################ +# Copyright © 2024 Mavridis Philippe # +# # +# This file is released under the GNU GPL version 3 or later. # +# Improvements and feedback are welcome! # +################################################################################ + +set(theme "oldcrystal") + +install(FILES audio-volume-error.png audio-volume-muted.png + audio-volume-low.png audio-volume-medium.png + audio-volume-high.png + DESTINATION ${DATA_INSTALL_DIR}/kmix/pics/${theme}) \ No newline at end of file diff --git a/kmix/pics/oldcrystal/audio-volume-error.png b/kmix/pics/oldcrystal/audio-volume-error.png new file mode 100644 index 00000000..b0497662 Binary files /dev/null and b/kmix/pics/oldcrystal/audio-volume-error.png differ diff --git a/kmix/pics/oldcrystal/audio-volume-high.png b/kmix/pics/oldcrystal/audio-volume-high.png new file mode 120000 index 00000000..0d737c95 --- /dev/null +++ b/kmix/pics/oldcrystal/audio-volume-high.png @@ -0,0 +1 @@ +/home/src/tdemultimedia/kmix/pics/oldcrystal/audio-volume-medium.png \ No newline at end of file diff --git a/kmix/pics/oldcrystal/audio-volume-low.png b/kmix/pics/oldcrystal/audio-volume-low.png new file mode 100644 index 00000000..9e8997e5 Binary files /dev/null and b/kmix/pics/oldcrystal/audio-volume-low.png differ diff --git a/kmix/pics/oldcrystal/audio-volume-medium.png b/kmix/pics/oldcrystal/audio-volume-medium.png new file mode 120000 index 00000000..b2a8355e --- /dev/null +++ b/kmix/pics/oldcrystal/audio-volume-medium.png @@ -0,0 +1 @@ +/home/src/tdemultimedia/kmix/pics/oldcrystal/audio-volume-low.png \ No newline at end of file diff --git a/kmix/pics/oldcrystal/audio-volume-muted.png b/kmix/pics/oldcrystal/audio-volume-muted.png new file mode 100644 index 00000000..70764025 Binary files /dev/null and b/kmix/pics/oldcrystal/audio-volume-muted.png differ