Improved to "half-way usable" (version 0.5)
[pierogi] / pirkeysetmanager.h
index 66f0f56..156b1f6 100644 (file)
@@ -8,13 +8,19 @@
 #include "pirselectkeysetform.h"
 #include "pirkeysetwidgetitem.h"
 
+#include <QString> // needed to work with QSettings data...
+
 //#include <QtCore/QCoreApplication>
 #include <QThread>
 //#include <QStringList>
 
 #include <map>
 
-typedef std::map<int, PIRKeysetMetaData *> PIRKeysetCollection;
+typedef std::map<unsigned 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
 {
@@ -30,6 +36,15 @@ public:
   bool keysetExists(
     unsigned int keysetID);
 
+  bool findKeysetID(
+    QString make,
+    QString name,
+    unsigned int &id);
+
+  PIRKeysetWidgetItem *makeKeysetItem(
+    QString make,
+    QString name);
+
   bool hasKey(
     unsigned int keysetID,
     PIRKeyName name);
@@ -50,6 +65,7 @@ private:
     PIRKeysetMetaData *keyset);
 
   PIRKeysetCollection keysetsInfo;
+  PIRKeysetMakeIndex makeIndex;
 
   // The counter will be used to generate unique ids for each keyset:
   unsigned int counter;