[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/kmid/src
From:       Pedro Lopez-Cabanillas <pedro.lopez.cabanillas () gmail ! com>
Date:       2010-06-30 18:57:35
Message-ID: 20100630190633.95421AC8E1 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1144765 by pedrol:

Allow the volume/pitch docking panel to be placed horizontally.

 M  +53 -28    kmid2.cpp  
 M  +5 -0      kmid2.h  


--- trunk/extragear/multimedia/kmid/src/kmid2.cpp #1144764:1144765
@@ -200,6 +200,10 @@
                  SLOT(slotSoftSynthErrors(const QString&,const QStringList&)));
     }
 
+    Qt::DockWidgetArea area = dockWidgetArea(m_volDock);
+    if (area != Qt::NoDockWidgetArea)
+        slotDockVolLocationChanged(area);
+
     finished();
     if (!m_settings->exec_fluid() && !m_settings->exec_timidity())
         connectMidiOutput();
@@ -1168,13 +1172,12 @@
 {
     /* Volume and Pitch dock */
 
-    QDockWidget *dock = new QDockWidget(i18nc("@title:window", "Volume and Pitch"), \
                this);
-    dock->setObjectName(QLatin1String("volumeAndPitchDock"));
-    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
-    dock->setFeatures(QDockWidget::DockWidgetClosable |
+    m_volDock = new QDockWidget(i18nc("@title:window", "Volume and Pitch"), this);
+    m_volDock->setObjectName(QLatin1String("volumeAndPitchDock"));
+    m_volDock->setFeatures(QDockWidget::DockWidgetClosable |
             QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable |
             QDockWidget::DockWidgetVerticalTitleBar );
-    QWidget *dw = new QWidget(dock);
+    QWidget *dw = new QWidget(m_volDock);
     QGridLayout *gridLayout = new QGridLayout(dw);
 
     QLabel *labelVol = new QLabel(this);
@@ -1209,21 +1212,24 @@
     gridLayout->addWidget(m_pitchSlider, 1, 1);
     labelPitch->setBuddy(m_pitchSlider);
 
-    dock->setWidget(dw);
-    addDockWidget(Qt::LeftDockWidgetArea, dock);
+    m_volDock->setWidget(dw);
+    addDockWidget(Qt::LeftDockWidgetArea, m_volDock);
 
-    QAction* action = dock->toggleViewAction();
+    QAction* action = m_volDock->toggleViewAction();
     action->setText(i18nc("@title:window", "Volume and Pitch"));
     action->setIcon(KIcon("view-media-equalizer"));
     action->setWhatsThis(i18nc("@action:inmenu","Show or hide the volume and pitch \
controls"));  actionCollection()->addAction("show_volume_pitch", action);
 
+    connect ( m_volDock, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)),
+              SLOT(slotDockVolLocationChanged(Qt::DockWidgetArea)));
+
     /* Time Position dock */
 
-    dock = new QDockWidget(i18nc("@title:window", "Time Position"), this);
-    dock->setObjectName(QLatin1String("timeDock"));
-    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
-    dw = new QWidget(dock);
+    m_posDock = new QDockWidget(i18nc("@title:window", "Time Position"), this);
+    m_posDock->setObjectName(QLatin1String("timeDock"));
+    m_posDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
+    dw = new QWidget(m_posDock);
     QVBoxLayout* vLayout = new QVBoxLayout(dw);
 
     m_timeSlider = new QSlider(this);
@@ -1241,10 +1247,10 @@
     m_timeLabel->setMarkers(8);
     vLayout->addWidget(m_timeLabel);
 
-    dock->setWidget(dw);
-    addDockWidget(Qt::TopDockWidgetArea, dock);
+    m_posDock->setWidget(dw);
+    addDockWidget(Qt::TopDockWidgetArea, m_posDock);
 
-    action = dock->toggleViewAction();
+    action = m_posDock->toggleViewAction();
     action->setText(i18nc("@title:window", "Time Position"));
     action->setIcon(KIcon("player-time"));
     action->setWhatsThis(i18nc("@action:inmenu","Show or hide the time position \
controls")); @@ -1252,18 +1258,18 @@
 
     /* Codecs dock */
 
-    dock = new QDockWidget(i18nc("@title:window", "Text Encoding"), this);
-    dock->setObjectName(QLatin1String("codecsDock"));
-    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
+    m_encDock = new QDockWidget(i18nc("@title:window", "Text Encoding"), this);
+    m_encDock->setObjectName(QLatin1String("codecsDock"));
+
     m_comboCodecs = new KComboBox(this);
     m_comboCodecs->setWhatsThis(i18nc("@info:whatsthis","Character encoding for \
                lyrics and other text"));
     m_comboCodecs->addItem(i18nc("@item:inlistbox Default MIDI text encoding", \
                "Default ( ASCII )"));
     m_comboCodecs->addItems( KGlobal::charsets()->descriptiveEncodingNames() );
     m_comboCodecs->setCurrentItem(m_settings->encoding());
-    dock->setWidget(m_comboCodecs);
-    addDockWidget(Qt::TopDockWidgetArea, dock);
+    m_encDock->setWidget(m_comboCodecs);
+    addDockWidget(Qt::TopDockWidgetArea, m_encDock);
 
-    action = dock->toggleViewAction();
+    action = m_encDock->toggleViewAction();
     action->setText(i18nc("@title:window", "Text Encoding"));
     action->setIcon(KIcon("view-list-text"));
     action->setWhatsThis(i18nc("@action:inmenu","Show or hide the character encoding \
control")); @@ -1271,10 +1277,10 @@
 
     /* Rhythm dock */
 
-    dock = new QDockWidget(i18nc("@title:window", "Rhythm"), this);
-    dock->setObjectName(QLatin1String("rhythmDock"));
-    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
-    dw = new QWidget(dock);
+    m_rthmDock = new QDockWidget(i18nc("@title:window", "Rhythm"), this);
+    m_rthmDock->setObjectName(QLatin1String("rhythmDock"));
+    m_rthmDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
+    dw = new QWidget(m_rthmDock);
     gridLayout = new QGridLayout(dw);
 
     QLabel* labelSpeed = new QLabel(this);
@@ -1322,10 +1328,10 @@
     m_rhythm->setWhatsThis(i18nc("@info:whatsthis","Visual metronome"));
     gridLayout->addWidget(m_rhythm, 1, 2, 1, 1, Qt::AlignVCenter);;
 
-    dock->setWidget(dw);
-    addDockWidget(Qt::BottomDockWidgetArea, dock);
+    m_rthmDock->setWidget(dw);
+    addDockWidget(Qt::BottomDockWidgetArea, m_rthmDock);
 
-    action = dock->toggleViewAction();
+    action = m_rthmDock->toggleViewAction();
     action->setText(i18nc("@title:window", "Rhythm"));
     action->setIcon(KIcon("chronometer"));
     action->setWhatsThis(i18nc("@action:inmenu","Show or hide the rhythm \
controls")); @@ -1519,4 +1525,23 @@
     }
 }
 
+void KMid2::slotDockVolLocationChanged(Qt::DockWidgetArea area)
+{
+    QDockWidget::DockWidgetFeatures flags = QDockWidget::DockWidgetClosable |
+        QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable;
+    if (area == Qt::LeftDockWidgetArea || area == Qt::RightDockWidgetArea) {
+        flags |= QDockWidget::DockWidgetVerticalTitleBar;
+        m_volumeSlider->setOrientation(Qt::Vertical);
+        m_volumeSlider->setTickPosition(QSlider::TicksBelow);
+        m_pitchSlider->setOrientation(Qt::Vertical);
+        m_pitchSlider->setTickPosition(QSlider::TicksBelow);
+    } else { // top or bottom
+        m_volumeSlider->setOrientation(Qt::Horizontal);
+        m_volumeSlider->setTickPosition(QSlider::TicksAbove);
+        m_pitchSlider->setOrientation(Qt::Horizontal);
+        m_pitchSlider->setTickPosition(QSlider::TicksAbove);
+    }
+    m_volDock->setFeatures(flags);
+}
+
 #include "kmid2.moc"
--- trunk/extragear/multimedia/kmid/src/kmid2.h #1144764:1144765
@@ -129,6 +129,7 @@
     void slotSoftSynthStarted(const QString& pgm, const QStringList& messages);
     void slotSoftSynthErrors(const QString& pgm, const QStringList& messages);
     void slotBackendChanged(int index);
+    void slotDockVolLocationChanged ( Qt::DockWidgetArea area );
 
 private:
     void setupDockWidgets();
@@ -216,6 +217,10 @@
     QString m_currentBackendLibrary;
 
     Settings* m_settings;
+    QDockWidget *m_volDock;
+    QDockWidget *m_posDock;
+    QDockWidget *m_rthmDock;
+    QDockWidget *m_encDock;
 };
 
 #endif // KMID2_H


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic