summaryrefslogtreecommitdiff
path: root/src/skingui/volumecontrolpanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/skingui/volumecontrolpanel.cpp')
-rw-r--r--src/skingui/volumecontrolpanel.cpp136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/skingui/volumecontrolpanel.cpp b/src/skingui/volumecontrolpanel.cpp
new file mode 100644
index 0000000..2bfd463
--- /dev/null
+++ b/src/skingui/volumecontrolpanel.cpp
@@ -0,0 +1,136 @@
+/* smplayer, GUI front-end for mplayer.
+ Copyright (C) 2006-2012 Ricardo Villalba <rvm@users.sourceforge.net>
+ umplayer, Copyright (C) 2010 Ori Rejwan
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "volumecontrolpanel.h"
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QEvent>
+#include "widgetactions.h"
+#include "myaction.h"
+#include "actiontools.h"
+
+VolumeControlPanel::VolumeControlPanel(QWidget *parent) :
+ QWidget(parent)
+{
+ setAttribute(Qt::WA_StyledBackground, true);
+ setFixedWidth(108);
+ muteButton = new MyButton(this);
+ maxButton = new MyButton(this);
+ playlistButton = new MyButton(this);
+ equalizerButton = new MyButton(this);
+ fullscreenButton = new MyButton(this);
+ playlistButton->setCheckable(true);
+ equalizerButton->setCheckable(true);
+ fullscreenButton->setCheckable(true);
+ volumeBar = new PanelSeeker(this);
+ volumeBar->setLeftRightMargin(8);
+ volumeBar->setMinimum(0);
+ volumeBar->setMaximum(100);
+ volumeBar->setDelayPeriod(1);
+ volumeBar->setFrozenPeriod(10);
+ QHBoxLayout* upperLayout = new QHBoxLayout;
+ QHBoxLayout* lowerLayout = new QHBoxLayout;
+ QVBoxLayout* mainLayout = new QVBoxLayout;
+ upperLayout->addWidget(muteButton);
+ upperLayout->addWidget(volumeBar);
+ upperLayout->addWidget(maxButton);
+ upperLayout->setContentsMargins(0, 0, 0, 0);
+ upperLayout->setSpacing(0);
+ QSpacerItem* sp1 = new QSpacerItem(1, 10, QSizePolicy::Expanding, QSizePolicy::Preferred);
+ lowerLayout->addSpacerItem(sp1);
+ lowerLayout->addWidget(fullscreenButton);
+ lowerLayout->addWidget(playlistButton);
+ lowerLayout->addWidget(equalizerButton);
+ QSpacerItem* sp2 = new QSpacerItem(1, 10, QSizePolicy::Expanding, QSizePolicy::Preferred);
+ lowerLayout->addSpacerItem(sp2);
+ lowerLayout->setContentsMargins(0, 0, 0, 0);
+ lowerLayout->setSpacing(0);
+ mainLayout->addLayout(upperLayout);
+ mainLayout->addLayout(lowerLayout);
+ mainLayout->setContentsMargins(0,8,5,8);
+ mainLayout->setSpacing(2);
+ setLayout(mainLayout);
+
+ connect(muteButton, SIGNAL(clicked()), this, SLOT(setVolumeMin()));
+ connect(maxButton, SIGNAL(clicked()), this, SLOT(setVolumeMax()));
+
+ connect(volumeBar, SIGNAL(valueChanged(int)), this, SIGNAL(volumeChanged(int)));
+}
+
+void VolumeControlPanel::setButtonIcons( MyButton* button, QPixmap pix)
+{
+ MyIcon icon;
+ int w = pix.width();
+ int h = pix.height();
+ icon.setPixmap(pix.copy(0, 0, w, h/4 ), MyIcon::Normal, MyIcon::Off);
+ icon.setPixmap(pix.copy(0, h/4, w, h/4 ), MyIcon::MouseOver, MyIcon::Off);
+ icon.setPixmap(pix.copy(0, h/2, w, h/4 ), MyIcon::MouseDown, MyIcon::Off);
+ icon.setPixmap(pix.copy(0, 3*h/4, w, h/4 ), MyIcon::Disabled, MyIcon::Off);
+ icon.setPixmap(pix.copy(0, 0, w, h/4 ), MyIcon::Normal, MyIcon::On);
+ icon.setPixmap(pix.copy(0, h/4, w, h/4 ), MyIcon::MouseOver, MyIcon::On);
+ icon.setPixmap(pix.copy(0, h/2, w, h/4 ), MyIcon::MouseDown, MyIcon::On);
+ icon.setPixmap(pix.copy(0, 3*h/4, w, h/4 ), MyIcon::Disabled, MyIcon::On);
+ button->setMyIcon(icon);
+ button->setFixedSize(icon.size(MyIcon::Normal, MyIcon::Off));
+}
+
+void VolumeControlPanel::setActionCollection(QList<QAction*> actions)
+{
+ //ActionTools::findAction("aaa", actions);
+ volumeBar->setEnabled(true);
+ /* volumeSliderAction->installEventFilter(this); */
+ SETACTIONTOBUTTON(playlistButton, "show_playlist");
+ SETACTIONTOBUTTON(fullscreenButton, "fullscreen");
+ SETACTIONTOBUTTON(equalizerButton, "video_equalizer");
+
+ retranslateStrings();
+}
+
+void VolumeControlPanel::setVolume(int value)
+{
+ volumeBar->setSliderValue(value);
+}
+
+/*
+bool VolumeControlPanel::eventFilter(QObject *watched, QEvent *event)
+{
+ if(watched == volumeSliderAction && event->type() == QEvent::EnabledChange)
+ {
+ volumeBar->setEnabled(volumeSliderAction->isEnabled());
+ }
+ return false;
+}
+*/
+
+// Language change stuff
+void VolumeControlPanel::changeEvent(QEvent *e) {
+ if (e->type() == QEvent::LanguageChange) {
+ retranslateStrings();
+ } else {
+ QWidget::changeEvent(e);
+ }
+}
+
+void VolumeControlPanel::retranslateStrings() {
+ if (playlistButton) playlistButton->setToolTip(tr("Playlist"));
+ if (fullscreenButton) fullscreenButton->setToolTip(tr("Fullscreen on/off"));
+ if (equalizerButton) equalizerButton->setToolTip(tr("Video equalizer"));
+}
+
+#include "moc_volumecontrolpanel.cpp"