[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdemultimedia/kmix
From: Christian Esken <esken () kde ! org>
Date: 2011-07-21 23:14:44
Message-ID: 20110721231444.852EBAC879 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1242585 by esken:
Add appStream property to MixDevice
Allow more than one control in the Dockarea-Popup
Put labels on subcontrols
M +0 -5 apps/kmix.cpp
M +1 -0 backends/mixer_mpris2.cpp
M +10 -2 backends/mixer_pulse.cpp
M +1 -0 backends/mixer_pulse.h
M +1 -0 core/mixdevice.cpp
M +9 -0 core/mixdevice.h
M +9 -0 core/volume.cpp
M +1 -1 core/volume.h
M +33 -11 gui/mdwslider.cpp
M +3 -1 gui/mdwslider.h
M +26 -12 gui/viewdockareapopup.cpp
M +1 -0 gui/viewdockareapopup.h
--- trunk/KDE/kdemultimedia/kmix/apps/kmix.cpp #1242584:1242585
@@ -494,11 +494,6 @@
*/
void KMixWindow::recreateGUI(bool saveConfig, const QString& mixerId, bool \
forceNewTab) {
- kDebug(67100) << "new dockarea with popup";
- ViewBase::ViewFlags vf1 = (ViewBase::ViewFlags)0;
- ViewDockAreaPopup* vdap = new ViewDockAreaPopup(0, "New Dockarea Popup with Apps", \
Mixer::mixers().at(0), vf1, 0, 0 );
- vdap->show();
-
// -1- Find out which of the tabs is currently selected for restoration
int current_tab = -1;
if (m_wsMixers)
--- trunk/KDE/kdemultimedia/kmix/backends/mixer_mpris2.cpp #1242584:1242585
@@ -148,6 +148,7 @@
Volume::ChannelMask chn = (Volume::ChannelMask)(Volume::MLEFT | Volume::MRIGHT);
MixDevice* md = new MixDevice(_mixer, readableName, readableName, \
MixDevice::VOLUME); Volume* vol = new Volume( chn, 100, 0, true, false);
+ md->setApplicationStream(true);
md->addPlaybackVolume(*vol);
m_mixDevices.append( md );
}
--- trunk/KDE/kdemultimedia/kmix/backends/mixer_pulse.cpp #1242584:1242585
@@ -819,6 +819,11 @@
void Mixer_PULSE::addDevice(devinfo& dev)
{
+ addDevice(dev, false);
+}
+
+void Mixer_PULSE::addDevice(devinfo& dev, bool isAppStream)
+{
if (dev.chanMask != Volume::MNONE) {
MixSet *ms = 0;
if (m_devnum == KMIXPA_APP_PLAYBACK && s_mixers.contains(KMIXPA_PLAYBACK))
@@ -829,6 +834,9 @@
Volume v(dev.chanMask, PA_VOLUME_NORM, PA_VOLUME_MUTED, true, false);
setVolumeFromPulse(v, dev);
MixDevice* md = new MixDevice( _mixer, dev.name, dev.description, \
dev.icon_name, ms); + if (isAppStream)
+ md->setApplicationStream(true);
+
md->addPlaybackVolume(v);
md->setMuted(dev.mute);
m_mixDevices.append(md);
@@ -991,9 +999,9 @@
{
m_mixerName = i18n("Playback Streams");
for (iter = outputRoles.begin(); iter != outputRoles.end(); ++iter)
- addDevice(*iter);
+ addDevice(*iter, true);
for (iter = outputStreams.begin(); iter != outputStreams.end(); ++iter)
- addDevice(*iter);
+ addDevice(*iter, true);
}
else if (KMIXPA_APP_CAPTURE == m_devnum)
{
--- trunk/KDE/kdemultimedia/kmix/backends/mixer_pulse.h #1242584:1242585
@@ -74,6 +74,7 @@
private:
void addDevice(devinfo& dev);
+ void addDevice(devinfo& dev, bool);
bool connectToDaemon();
public slots:
--- trunk/KDE/kdemultimedia/kmix/core/mixdevice.cpp #1242584:1242585
@@ -106,6 +106,7 @@
void MixDevice::init( Mixer* mixer, const QString& id, const QString& name, const \
QString& iconName, MixSet* moveDestinationMixSet ) {
_artificial = false;
+ _applicationStream = false;
_mixer = mixer;
_id = id;
if( name.isEmpty() )
--- trunk/KDE/kdemultimedia/kmix/core/mixdevice.h #1242584:1242585
@@ -145,6 +145,14 @@
virtual bool isRecSource();
virtual void setRecSource(bool value);
virtual bool isEnum();
+ /**
+ * Returns whether this is an application stream.
+ */
+ virtual bool isApplicationStream() const { return _applicationStream; };
+ /**
+ * Mark this MixDevice as application stream
+ */
+ void setApplicationStream(bool applicationStream) { _applicationStream = \
applicationStream; }
bool isMovable() const
{
@@ -197,6 +205,7 @@
bool _artificial;
MixSet *_moveDestinationMixSet;
QString _iconName;
+ bool _applicationStream;
QString _name; // Channel name
QString _id; // Primary key, used as part in config file keys
--- trunk/KDE/kdemultimedia/kmix/core/volume.cpp #1242584:1242585
@@ -35,6 +35,15 @@
MREARCENTER
};
+ QString Volume::ChannelNameReadable[9] =
+ {
+ "Left", "Right",
+ "Center", "Subwoofer",
+ "Surround Left", "Surround Right",
+ "Side Left", "Side Right",
+ "Rear Center"
+ };
+
char Volume::ChannelNameForPersistence[9][30] = {
"volumeL", "volumeR",
"volumeCenter", "volumeWoofer",
--- trunk/KDE/kdemultimedia/kmix/core/volume.h #1242584:1242585
@@ -70,8 +70,8 @@
CHIDMAX = 8 };
-
static char ChannelNameForPersistence[9][30];
+ static QString ChannelNameReadable[9];
enum VolumeType { PlaybackVT = 0 , CaptureVT = 1 };
--- trunk/KDE/kdemultimedia/kmix/gui/mdwslider.cpp #1242584:1242585
@@ -488,21 +488,12 @@
QList<QWidget *>& ref_sliders = *ref_slidersP;
- if (addLabel)
+ if (addLabel && type == 'c')
{
static QString capture = i18n("capture");
-
- if ( type == 'c' ) { // capture
- if (_orientation == Qt::Horizontal)
- m_extraCaptureLabel = new QLabel(capture, this);
- else
- m_extraCaptureLabel = new VerticalText(this, capture);
+ m_extraCaptureLabel = createLabel(this, capture, volLayout, false);
}
- m_extraCaptureLabel->installEventFilter( this );
- volLayout->addWidget(m_extraCaptureLabel);
- }
-
const int minSliderSize = fontMetrics().height() * 10;
for ( int i=0; i<= Volume::CHIDMAX; i++ ) {
if ( vol._chmask & Volume::_channelMaskEnum[i] ) {
@@ -511,6 +502,14 @@
long minvol = vol.minVolume();
long maxvol = vol.maxVolume();
+// if (addLabel)
+// {
+ kDebug(67100) << "Add label to " << chid << ": " << \
Volume::ChannelNameReadable[chid]; + QString subcontrolTranslation = \
Volume::ChannelNameReadable[chid]; //Volume::getSubcontrolTranslation(chid); + \
QWidget *subcontrolLabel = createLabel(this, subcontrolTranslation, volLayout, true); \
+ +// }
+
QWidget* slider;
if ( m_small ) {
slider = new KSmallSlider( minvol, maxvol, (maxvol-minvol)/10, // @todo !! User \
definable steps @@ -560,6 +559,29 @@
} // for all channels of this device
}
+QWidget* MDWSlider::createLabel(QWidget* parent, QString& label, QBoxLayout *layout, \
bool small) +{
+ QFont qf;
+ qf.setPointSize(8);
+
+ QWidget* labelWidget;
+ if (_orientation == Qt::Horizontal)
+ {
+ labelWidget = new QLabel(label, parent);
+ if ( small ) ((QLabel*)labelWidget)->setFont(qf);
+ }
+ else {
+ labelWidget = new VerticalText(parent, label);
+ if ( small ) ((VerticalText*)labelWidget)->setFont(qf);
+ }
+
+ labelWidget->installEventFilter( parent );
+ layout->addWidget(labelWidget);
+
+ return labelWidget;
+}
+
+
QPixmap MDWSlider::loadIcon( QString filename )
{
return KIconLoader::global()->loadIcon( filename, KIconLoader::Small, \
KIconLoader::SizeSmallMedium );
--- trunk/KDE/kdemultimedia/kmix/gui/mdwslider.h #1242584:1242585
@@ -94,6 +94,7 @@
void update();
void showMoveMenu();
virtual void showContextMenu();
+ //void getSubcontrolTranslation(Volume::ChannelID arg1);
signals:
@@ -119,13 +120,14 @@
QPixmap loadIcon( QString filename );
void createWidgets( bool showMuteLED, bool showCaptureLED );
void addSliders( QBoxLayout *volLayout, char type, bool addLabel);
- void addDefaultLabel(QBoxLayout *layout, Qt::Orientation orientation);
+ //void addDefaultLabel(QBoxLayout *layout, Qt::Orientation orientation);
// Methods that are called two times from a wrapper. Once for playabck, once for \
capture void setStereoLinkedInternal( QList<QWidget *>& ref_sliders );
void setTicksInternal( QList<QWidget *>& ref_sliders, bool ticks );
void volumeChangeInternal(Volume& vol, QList<Volume::ChannelID>& slidersChids, \
QList<QWidget *>& ref_sliders );
void updateInternal(Volume& vol, QList<QWidget *>& ref_sliders, \
QList<Volume::ChannelID>& slidersChids); + QWidget* createLabel(QWidget* parent, \
QString& label, QBoxLayout *layout, bool);
bool m_linked;
--- trunk/KDE/kdemultimedia/kmix/gui/viewdockareapopup.cpp #1242584:1242585
@@ -44,10 +44,12 @@
ViewDockAreaPopup::ViewDockAreaPopup(QWidget* parent, const char* name, Mixer* \
mixer, ViewBase::ViewFlags vflags, GUIProfile *guiprof, KMixWindow \
*dockW )
: ViewBase(parent, name, mixer, /*Qt::FramelessWindowHint | \
Qt::MSWindowsFixedSizeDialogHint*/0, vflags, guiprof), _dock(dockW) {
+ //_layoutControls = new QHBoxLayout(this);
_layoutMDW = new QGridLayout( this );
_layoutMDW->setSpacing( KDialog::spacingHint() );
_layoutMDW->setMargin(0);
_layoutMDW->setObjectName( QLatin1String( "KmixPopupLayout" ) );
+ //_layoutMDW->addItem(_layoutControls);
setMixSet();
}
@@ -107,11 +109,19 @@
_mixSet->append(dockMD);
}
+ Mixer* mixer2;
+ foreach ( mixer2 , Mixer::mixers() )
+ {
MixDevice *md;
- foreach ( md, _mixer->getMixSet() )
+ foreach ( md, mixer2->getMixSet() )
{
+ if (md->isApplicationStream())
+ {
_mixSet->append(md);
+ kDebug(67100) << "Add to tray popup: " << md->id();
}
+ }
+}
}
@@ -125,26 +135,30 @@
true, // Show Mute LED
false, // Show Record LED
false, // Small
- Qt::Vertical, // Direction: only 1 device, so doesn't matter
+ Qt::Horizontal, // Direction: only 1 device, so doesn't matter
this, // parent
0 // Is "NULL", so that there is no RMB-popup
, pctl
);
- _layoutMDW->addItem( new QSpacerItem( 5, 20 ), 0, 2 );
- _layoutMDW->addItem( new QSpacerItem( 5, 20 ), 0, 0 );
- _layoutMDW->addWidget( mdw, 0, 1 );
+ int sliderColumn = _layoutMDW->rowCount();
+ if (sliderColumn == 1 ) sliderColumn =0;
+ _layoutMDW->addItem( new QSpacerItem( 5, 20 ), sliderColumn,0 );
+ _layoutMDW->addWidget( mdw, sliderColumn+1,0 );
- // Add button to show main panel
- QPushButton *pb = new QPushButton( i18n("Mixer"), this );
- pb->setObjectName( QLatin1String("MixerPanel" ));
- connect ( pb, SIGNAL( clicked() ), SLOT( showPanelSlot() ) );
- _layoutMDW->addWidget( pb, 1, 0, 1, 3 );
-
+ kDebug(67100) << "ADDED " << md->id() << " at column " << sliderColumn;
return mdw;
}
void ViewDockAreaPopup::constructionFinished() {
// kDebug(67100) << "ViewDockAreaPopup::constructionFinished()\n";
+
+ int sliderColumn = _layoutMDW->rowCount();
+ _layoutMDW->addItem( new QSpacerItem( 5, 20 ), sliderColumn, 0 ); // TODO add this \
on "polish()" + QPushButton *pb = new QPushButton( i18n("Mixer"), this );
+ pb->setObjectName( QLatin1String("MixerPanel" ));
+ connect ( pb, SIGNAL( clicked() ), SLOT( showPanelSlot() ) );
+ _layoutMDW->addWidget( pb, sliderColumn+1, 0, 1, 1 );
+/*
QWidget* mdw = 0;
if ( !_mdws.isEmpty() )
mdw = _mdws.first();
@@ -152,8 +166,8 @@
if ( mdw != 0 ) {
mdw->move(0,0);
mdw->show();
+ }*/
}
-}
void ViewDockAreaPopup::refreshVolumeLevels() {
--- trunk/KDE/kdemultimedia/kmix/gui/viewdockareapopup.h #1242584:1242585
@@ -52,6 +52,7 @@
virtual void _setMixSet();
private:
+ QLayout* _layoutControls;
QGridLayout* _layoutMDW;
private slots:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic