X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fkdenlivesettingsdialog.cpp;h=42e5813338897ecd55a89a2c52e288507b8b06d3;hb=937f547e26859d0ef9ddc0ac38d6986ab591b3fd;hp=50e3dea68dac03d19639c04feee447a3fef1639e;hpb=7e7237ae57890a3a5de195d30c85f93fab4df555;p=kdenlive diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 50e3dea6..42e58133 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -44,10 +44,11 @@ #include #include #include + #ifdef USE_JOGSHUTTLE -#include "jogaction.h" -#include "jogshuttleconfig.h" -#include + #include "jogaction.h" + #include "jogshuttleconfig.h" + #include #endif @@ -487,14 +488,11 @@ void KdenliveSettingsDialog::slotEditVideoApplication() { KService::Ptr service; QPointer dlg = new KOpenWithDialog(KUrl::List(), i18n("Select default video player"), m_configEnv.kcfg_defaultplayerapp->text(), this); - if (dlg->exec() != QDialog::Accepted) - { - delete dlg; - return; + if (dlg->exec() == QDialog::Accepted) { + service = dlg->service(); + m_configEnv.kcfg_defaultplayerapp->setText(service->exec()); } - service = dlg->service(); - m_configEnv.kcfg_defaultplayerapp->setText(service->exec()); delete dlg; } @@ -502,14 +500,11 @@ void KdenliveSettingsDialog::slotEditAudioApplication() { KService::Ptr service; QPointer dlg = new KOpenWithDialog(KUrl::List(), i18n("Select default audio editor"), m_configEnv.kcfg_defaultaudioapp->text(), this); - if (dlg->exec() != QDialog::Accepted) - { - delete dlg; - return; + if (dlg->exec() == QDialog::Accepted) { + service = dlg->service(); + m_configEnv.kcfg_defaultaudioapp->setText(service->exec()); } - service = dlg->service(); - m_configEnv.kcfg_defaultaudioapp->setText(service->exec()); delete dlg; } @@ -517,13 +512,10 @@ void KdenliveSettingsDialog::slotEditImageApplication() { KService::Ptr service; QPointer dlg = new KOpenWithDialog(KUrl::List(), i18n("Select default image editor"), m_configEnv.kcfg_defaultimageapp->text(), this); - if (dlg->exec() != QDialog::Accepted) - { - delete dlg; - return; + if (dlg->exec() == QDialog::Accepted) { + service = dlg->service(); + m_configEnv.kcfg_defaultimageapp->setText(service->exec()); } - service = dlg->service(); - m_configEnv.kcfg_defaultimageapp->setText(service->exec()); delete dlg; } @@ -532,21 +524,42 @@ void KdenliveSettingsDialog::slotCheckShuttle(int state) #ifdef USE_JOGSHUTTLE m_configShuttle.config_group->setEnabled(state); if (m_configShuttle.shuttledevicelist->count() == 0) { - // parse devices - QString baseName = "/dev/input/event"; - int fd; - for (int i = 0; i < 30; ++i) { - QString filename = baseName + QString::number(i); - kDebug() << "/// CHECKING device: " << filename; - - char name[256] = "unknown"; - fd = KDE_open((char *) filename.toUtf8().data(), O_RDONLY); - if (fd >= 0 && ioctl(fd, EVIOCGNAME(sizeof(name)), name) >= 0) { - m_configShuttle.shuttledevicelist->addItem(name, filename); + QString devDirStr = "/dev/input/by-id/"; + QDir devDir(devDirStr); + if (devDir.exists()) { + QStringList fileList = devDir.entryList(QDir::Files); + foreach (const QString &fileName, fileList) { + QString devFullPath(devDirStr + fileName); + QString fileLink = JogShuttle::enumerateDevice(devFullPath); + kDebug() << QString(" [%1] ").arg(fileName); + kDebug() << QString(" [%1] ").arg(fileLink); + char name[256] = "unknown"; + int fd = KDE_open((char*)fileLink.toUtf8().data(), O_RDONLY); + if (fd >= 0 && ioctl(fd, EVIOCGNAME(sizeof(name)), name) >= 0) { + m_configShuttle.shuttledevicelist->addItem(name, devFullPath); + } + ::close(fd); } - ::close(fd); + } else { + // parse devices + QString baseName = "/dev/input/event"; + int fd; + for (int i = 0; i < 30; ++i) { + QString filename = baseName + QString::number(i); + kDebug() << "/// CHECKING device: " << filename; + + char name[256] = "unknown"; + fd = KDE_open((char *) filename.toUtf8().data(), O_RDONLY); + if (fd >= 0 && ioctl(fd, EVIOCGNAME(sizeof(name)), name) >= 0) { + m_configShuttle.shuttledevicelist->addItem(name, filename); + } + ::close(fd); + } + } + + if (KdenliveSettings::shuttledevice().isEmpty()) { + QTimer::singleShot(1500, this, SLOT(slotUpdateShuttleDevice())); } - if (KdenliveSettings::shuttledevice().isEmpty()) QTimer::singleShot(1500, this, SLOT(slotUpdateShuttleDevice())); } #endif /* USE_JOGSHUTTLE */ }