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