Possible Uninstall Fix, plus cleanup, more keysets
[pierogi] / pirkeysetmanager.h
index 66f0f56..85b99ff 100644 (file)
@@ -1,20 +1,24 @@
 #ifndef PIRKEYSETMANAGER_H
 #define PIRKEYSETMANAGER_H
 
-#include "pirkeysetmetadata.h"
-//#include "protocol.h"
 #include "pirkeynames.h"
-//#include "selectionwindow.h"
-#include "pirselectkeysetform.h"
-#include "pirkeysetwidgetitem.h"
+#include "pirmakenames.h"
 
-//#include <QtCore/QCoreApplication>
+#include <QString>
 #include <QThread>
-//#include <QStringList>
+
+class QObject;
+class PIRSelectKeysetForm;
+class PIRKeysetWidgetItem;
 
 #include <map>
+class PIRKeysetMetaData;
+
+typedef std::map<unsigned int, PIRKeysetMetaData *> PIRKeysetCollection;
 
-typedef std::map<int, PIRKeysetMetaData *> PIRKeysetCollection;
+// Maps used to locate metadata using QSettings values:
+typedef std::map<QString, unsigned int> PIRKeysetNameIndex;
+typedef std::map<QString, PIRKeysetNameIndex> PIRKeysetMakeIndex;
 
 class PIRKeysetManager
 {
@@ -25,24 +29,33 @@ public:
   ~PIRKeysetManager();
 
   void populateGuiWidget(
-    PIRSelectKeysetForm *widget);
+    PIRSelectKeysetForm *widget) const;
 
   bool keysetExists(
-    unsigned int keysetID);
+    unsigned int keysetID) const;
+
+  bool findKeysetID(
+    QString make,
+    QString name,
+    unsigned int &id) const;
+
+  PIRKeysetWidgetItem *makeKeysetItem(
+    QString make,
+    QString name) const;
 
   bool hasKey(
     unsigned int keysetID,
-    PIRKeyName name);
+    PIRKeyName name) const;
 
   PIRMakeName getMake(
-    unsigned int keysetID);
+    unsigned int keysetID) const;
 
   QString getDisplayName(
-    unsigned int keysetID);
+    unsigned int keysetID) const;
 
   void populateDeviceTypes(
     PIRKeysetWidgetItem *kwi,
-    unsigned int keysetID);
+    unsigned int keysetID) const;
 
 private:
   // This needs to be improved:
@@ -50,6 +63,7 @@ private:
     PIRKeysetMetaData *keyset);
 
   PIRKeysetCollection keysetsInfo;
+  PIRKeysetMakeIndex makeIndex;
 
   // The counter will be used to generate unique ids for each keyset:
   unsigned int counter;