[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive] src: jogshuttle: make shuttle device selection more straightforward
From: Ed Rogalsky <ed.rogalsky () googlemail ! com>
Date: 2014-02-28 22:16:35
Message-ID: E1WJVjP-00015E-Hk () scm ! kde ! org
[Download RAW message or body]
Git commit 22f6ea68f792beba8a78cfa1b99cf7fc7bc40649 by Ed Rogalsky.
Committed on 28/02/2014 at 22:08.
Pushed by rogalsky into branch 'master'.
jogshuttle: make shuttle device selection more straightforward
M +10 -0 src/kdenlivesettings.kcfg
M +52 -23 src/kdenlivesettingsdialog.cpp
M +1 -0 src/kdenlivesettingsdialog.h
M +244 -98 src/ui/configjogshuttle_ui.ui
http://commits.kde.org/kdenlive/22f6ea68f792beba8a78cfa1b99cf7fc7bc40649
diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
index 40c0909..59c0334 100644
--- a/src/kdenlivesettings.kcfg
+++ b/src/kdenlivesettings.kcfg
@@ -523,6 +523,16 @@
<label>Path to shuttle device.</label>
<default></default>
</entry>
+
+ <entry name="shuttledevicenames" type="StringList">
+ <label>Available shuttle device names.</label>
+ <default></default>
+ </entry>
+
+ <entry name="shuttledevicepaths" type="StringList">
+ <label>Available shuttle device paths.</label>
+ <default></default>
+ </entry>
<entry name="shuttlebuttons" type="String">
<label>JogShuttle button to actions mappings.</label>
diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp
index 8e97b33..b298e8c 100644
--- a/src/kdenlivesettingsdialog.cpp
+++ b/src/kdenlivesettingsdialog.cpp
@@ -133,9 +133,12 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(const \
QMap<QString, QString>& map
QWidget *p5 = new QWidget;
m_configShuttle.setupUi(p5);
+ m_configShuttle.toolBtnReload->setIcon(KIcon("view-refresh"));
#ifdef USE_JOGSHUTTLE
connect(m_configShuttle.kcfg_enableshuttle, SIGNAL(stateChanged(int)), this, \
SLOT(slotCheckShuttle(int)));
connect(m_configShuttle.shuttledevicelist, SIGNAL(activated(int)), this, \
SLOT(slotUpdateShuttleDevice(int))); + connect(m_configShuttle.toolBtnReload, \
SIGNAL(clicked(bool)), this, SLOT(slotReloadShuttleDevices())); +
slotCheckShuttle(KdenliveSettings::enableshuttle());
m_configShuttle.shuttledisabled->hide();
@@ -523,31 +526,17 @@ void KdenliveSettingsDialog::slotCheckShuttle(int state)
{
#ifdef USE_JOGSHUTTLE
m_configShuttle.config_group->setEnabled(state);
- if (m_configShuttle.shuttledevicelist->count() == 0) {
- QString devDirStr = "/dev/input/by-id";
- QDir devDir(devDirStr);
- if (!devDir.exists()) {
- devDirStr = "/dev/input";
- }
+ m_configShuttle.shuttledevicelist->clear();
- DeviceMap devMap = JogShuttle::enumerateDevices(devDirStr);
-#if 0
- if (!devMap.isEmpty()) {
- m_configShuttle.shuttledevicelist->clear();
- }
-#endif
- DeviceMapIter iter = devMap.begin();
- while (iter != devMap.end()) {
- kDebug() << iter.key() << ": " << iter.value();
- m_configShuttle.shuttledevicelist->addItem(
- iter.key(),
- iter.value());
- ++iter;
- }
+ QStringList devNames = KdenliveSettings::shuttledevicenames();
+ QStringList devPaths = KdenliveSettings::shuttledevicepaths();
- if (KdenliveSettings::shuttledevice().isEmpty()) {
- QTimer::singleShot(1500, this, SLOT(slotUpdateShuttleDevice()));
- }
+ if (devNames.count() != devPaths.count()) {
+ return;
+ }
+ for (int i = 0; i < devNames.count(); i++) {
+ m_configShuttle.shuttledevicelist->addItem(
+ devNames.at(i), devPaths.at(i));
}
#endif /* USE_JOGSHUTTLE */
}
@@ -1133,6 +1122,46 @@ void KdenliveSettingsDialog::slotReloadBlackMagic()
}
m_configSdl.kcfg_external_display->setEnabled(KdenliveSettings::decklink_device_found());
}
+
+void KdenliveSettingsDialog::slotReloadShuttleDevices()
+{
+#ifdef USE_JOGSHUTTLE
+ QString devDirStr = "/dev/input/by-id";
+ QDir devDir(devDirStr);
+ if (!devDir.exists()) {
+ devDirStr = "/dev/input";
+ }
+
+ DeviceMap devMap = JogShuttle::enumerateDevices(devDirStr);
+ if (!devMap.isEmpty()) {
+ m_configShuttle.shuttledevicelist->clear();
+ }
+
+ QStringList devNamesList;
+ QStringList devPathList;
+ DeviceMapIter iter = devMap.begin();
+ if (iter == devMap.end()) {
+ KdenliveSettings::shuttledevicenames().clear();
+ KdenliveSettings::shuttledevicepaths().clear();
+ m_configShuttle.shuttledevicelist->clear();
+ }
+ while (iter != devMap.end()) {
+ kDebug() << iter.key() << ": " << iter.value();
+ m_configShuttle.shuttledevicelist->addItem(iter.key(), iter.value());
+ devNamesList << iter.key();
+ devPathList << iter.value();
+ ++iter;
+ }
+
+ KdenliveSettings::setShuttledevicenames(devNamesList);
+ KdenliveSettings::setShuttledevicepaths(devPathList);
+ QTimer::singleShot(200, this, SLOT(slotUpdateShuttleDevice()));
+
+ kDebug() << "Devices reloded";
+
+#endif //USE_JOGSHUTTLE
+}
+
#include "kdenlivesettingsdialog.moc"
diff --git a/src/kdenlivesettingsdialog.h b/src/kdenlivesettingsdialog.h
index f00a32f..3a9c1c7 100644
--- a/src/kdenlivesettingsdialog.h
+++ b/src/kdenlivesettingsdialog.h
@@ -79,6 +79,7 @@ private slots:
void slotUpdateGrabProfile(int ix = 0);
void slotEditVideo4LinuxProfile();
void slotReloadBlackMagic();
+ void slotReloadShuttleDevices();
private:
KPageWidgetItem *m_page1;
diff --git a/src/ui/configjogshuttle_ui.ui b/src/ui/configjogshuttle_ui.ui
index 2b69f8c..49a1513 100644
--- a/src/ui/configjogshuttle_ui.ui
+++ b/src/ui/configjogshuttle_ui.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>299</width>
- <height>548</height>
+ <width>455</width>
+ <height>749</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
@@ -31,6 +31,19 @@
</property>
</widget>
</item>
+ <item row="3" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>56</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
<item row="2" column="0">
<widget class="QGroupBox" name="config_group">
<property name="enabled">
@@ -39,190 +52,323 @@
<property name="title">
<string>Device configuration</string>
</property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
<layout class="QGridLayout" name="gridLayout">
- <item row="12" column="0">
- <widget class="QLabel" name="label_13">
+ <item row="1" column="1" colspan="5">
+ <widget class="KLineEdit" name="kcfg_shuttledevice">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 12</string>
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="squeezedTextEnabled">
+ <bool>false</bool>
</property>
</widget>
</item>
- <item row="14" column="0">
- <widget class="QLabel" name="label_15">
+ <item row="0" column="5">
+ <widget class="QToolButton" name="toolBtnReload">
<property name="text">
- <string>Button 14</string>
+ <string>...</string>
</property>
</widget>
</item>
- <item row="13" column="0">
- <widget class="QLabel" name="label_14">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
<property name="text">
- <string>Button 13</string>
+ <string>Button 1</string>
</property>
</widget>
</item>
- <item row="11" column="0">
- <widget class="QLabel" name="label_12">
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_17">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 11</string>
+ <string>Device</string>
</property>
</widget>
</item>
- <item row="7" column="0">
- <widget class="QLabel" name="label_8">
+ <item row="16" column="0">
+ <widget class="QLabel" name="label_16">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 7</string>
+ <string>Button 15</string>
</property>
</widget>
</item>
- <item row="8" column="0">
- <widget class="QLabel" name="label_9">
+ <item row="2" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle6"/>
+ </item>
+ <item row="14" column="0">
+ <widget class="QLabel" name="label_14">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 8</string>
+ <string>Button 13</string>
</property>
</widget>
</item>
<item row="9" column="0">
- <widget class="QLabel" name="label_10">
+ <widget class="QLabel" name="label_9">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 9</string>
+ <string>Button 8</string>
</property>
</widget>
</item>
- <item row="6" column="0">
- <widget class="QLabel" name="label_6">
+ <item row="12" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle11"/>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 6</string>
+ <string>Button 4</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Device</string>
+ <string>Device name</string>
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="KComboBox" name="shuttledevicelist"/>
- </item>
- <item row="0" column="2">
- <widget class="KLineEdit" name="kcfg_shuttledevice">
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string/>
+ <string>Button 5</string>
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
+ <item row="10" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle9"/>
+ </item>
+ <item row="5" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle4"/>
+ </item>
+ <item row="13" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle12"/>
+ </item>
+ <item row="8" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 1</string>
+ <string>Button 7</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
</widget>
</item>
- <item row="1" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle1"/>
+ <item row="11" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle10"/>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_4">
+ <item row="9" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle8"/>
+ </item>
+ <item row="10" column="0">
+ <widget class="QLabel" name="label_10">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 2</string>
+ <string>Button 9</string>
</property>
</widget>
</item>
- <item row="2" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle2"/>
- </item>
<item row="3" column="0">
- <widget class="QLabel" name="label_3">
+ <widget class="QLabel" name="label_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 3</string>
+ <string>Button 2</string>
</property>
</widget>
</item>
- <item row="3" column="1" colspan="2">
+ <item row="4" column="1" colspan="5">
<widget class="KComboBox" name="shuttle3"/>
</item>
- <item row="4" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle4"/>
- </item>
- <item row="4" column="0">
- <widget class="QLabel" name="label_7">
+ <item row="11" column="0">
+ <widget class="QLabel" name="label_11">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 4</string>
+ <string>Button 10</string>
</property>
</widget>
</item>
- <item row="5" column="0">
- <widget class="QLabel" name="label_5">
+ <item row="12" column="0">
+ <widget class="QLabel" name="label_12">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 5</string>
+ <string>Button 11</string>
</property>
</widget>
</item>
- <item row="5" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle5"/>
+ <item row="0" column="1" colspan="4">
+ <widget class="KComboBox" name="shuttledevicelist">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
</item>
- <item row="10" column="0">
- <widget class="QLabel" name="label_11">
+ <item row="7" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 10</string>
+ <string>Button 6</string>
</property>
</widget>
</item>
- <item row="6" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle6"/>
- </item>
- <item row="7" column="1" colspan="2">
+ <item row="8" column="1" colspan="5">
<widget class="KComboBox" name="shuttle7"/>
</item>
- <item row="8" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle8"/>
+ <item row="15" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle14"/>
</item>
- <item row="9" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle9"/>
+ <item row="6" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle5"/>
</item>
- <item row="10" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle10"/>
+ <item row="14" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle13"/>
+ </item>
+ <item row="16" column="1" colspan="5">
+ <widget class="KComboBox" name="shuttle15"/>
</item>
<item row="15" column="0">
- <widget class="QLabel" name="label_16">
+ <widget class="QLabel" name="label_15">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Button 15</string>
+ <string>Button 14</string>
</property>
</widget>
</item>
- <item row="11" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle11"/>
- </item>
- <item row="12" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle12"/>
- </item>
- <item row="13" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle13"/>
- </item>
- <item row="14" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle14"/>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Button 3</string>
+ </property>
+ </widget>
</item>
- <item row="15" column="1" colspan="2">
- <widget class="KComboBox" name="shuttle15"/>
+ <item row="13" column="0">
+ <widget class="QLabel" name="label_13">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Button 12</string>
+ </property>
+ </widget>
</item>
</layout>
</widget>
</item>
- <item row="3" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>56</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<customwidgets>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic