]> Devoid-pointer.net GitWeb - FFBChecker.git/commitdiff
Don't empty effect slots combobox when the already selected interface is
authorMichal Malý <madcatxster@devoid-pointer.net>
Wed, 29 Jul 2015 22:59:14 +0000 (00:59 +0200)
committerMichal Malý <madcatxster@devoid-pointer.net>
Wed, 29 Jul 2015 22:59:14 +0000 (00:59 +0200)
selected again

deviceprober.h
linuxdeviceprober.h
mainwindow.cpp
mainwindow.h

index 4d5c30dc13564f66f1472ebe7a0f9fb340b9bc8b..69519b7edb905b3cc38906649e4588d2882e8d7e 100644 (file)
@@ -28,7 +28,7 @@ public:
   const DeviceInterfaces type;
 
 protected:
-  explicit DeviceProber() : type(DeviceInterfaces::NONE) {}
+  explicit DeviceProber(DeviceInterfaces _type) : type(_type) {}
 };
 
 
index 79ab94a65af021c3ff3ebdc0fad91b000aa5a7ad..52bb35ec6e16e73775ae2ab58344f4b2d20971cb 100644 (file)
@@ -7,7 +7,7 @@
 class LinuxDeviceProber : public DeviceProber
 {
 public:
-  explicit LinuxDeviceProber() {}
+  explicit LinuxDeviceProber() : DeviceProber(DeviceProber::DeviceInterfaces::LINUX) {}
   void closeAllDevices();
   DeviceList listDevices();
   std::shared_ptr<FFBDevice> openDevice(const QString& id);
index 130d20e04d179c5419ac1eb5bde5117e2e777c68..17041ae93e019aa565c432ebfe73ea304b5b4759 100644 (file)
@@ -53,13 +53,13 @@ MainWindow::MainWindow(const QString& title, QWidget* parent) :
   connect(ui->qpb_upload, SIGNAL(clicked()), this, SLOT(onUploadEffectClicked()));
 }
 
-void MainWindow::createDeviceProber(const DeviceProber::DeviceInterfaces iface)
+bool MainWindow::createDeviceProber(const DeviceProber::DeviceInterfaces iface)
 {
   std::shared_ptr<DeviceProber> prober;
 
   if (m_prober != nullptr) {
     if (m_prober->type == iface)
-      return;
+      return false;
 
     m_prober->closeAllDevices();
   }
@@ -74,6 +74,7 @@ void MainWindow::createDeviceProber(const DeviceProber::DeviceInterfaces iface)
   }
 
   m_prober = prober;
+  return true;
 }
 
 EffectSettings* MainWindow::effectSettingsByType(FFBEffectTypes type)
@@ -227,16 +228,18 @@ void MainWindow::onInterfaceSelected(const int cboxIdx)
     return;
   }
 
-  ui->cbox_effectSlots->clear();
 
   iface = static_cast<DeviceProber::DeviceInterfaces>(rawIface);
-  createDeviceProber(iface);
+  if (!createDeviceProber(iface))
+    return;
+
+  ui->cbox_effectSlots->clear();
   fillDeviceList();
 }
 
 void MainWindow::onRefreshDevicesClicked()
 {
-  //fillDeviceList();
+  fillDeviceList();
 }
 
 void MainWindow::onRemoveEffectClicked()
index 417d4b3114937246c90d969937ef6f50d5a93466..6770fa0cc33d2c75f8705933f3ca9eeca839de5c 100644 (file)
@@ -35,7 +35,7 @@ private:
     CANT_UPLOAD_EFFECT
   };
 
-  void createDeviceProber(const DeviceProber::DeviceInterfaces iface);
+  bool createDeviceProber(const DeviceProber::DeviceInterfaces iface);
   EffectSettings* effectSettingsByType(FFBEffectTypes type);
   QString effectTypeToEffectName(const FFBEffectTypes type) const;
   void fillDeviceList();