+\r
+ \r
+ // Get the custom icon\r
+ public QIcon getIcon(String guid) {\r
+ NSqlQuery query = new NSqlQuery(db.getConnection());\r
+ \r
+ if (!query.prepare("Select icon from SavedSearch where guid=:guid"))\r
+ logger.log(logger.EXTREME, "Error preparing saved search icon select.");\r
+ query.bindValue(":guid", guid);\r
+ if (!query.exec())\r
+ logger.log(logger.EXTREME, "Error finding saved search icon.");\r
+ if (!query.next() || query.getBlob(0) == null)\r
+ return null;\r
+ \r
+ QByteArray blob = new QByteArray(query.getBlob(0));\r
+ QIcon icon = new QIcon(QPixmap.fromImage(QImage.fromData(blob)));\r
+ return icon;\r
+ }\r
+ // Set the custom icon\r
+ public void setIcon(String guid, QIcon icon, String type) {\r
+ NSqlQuery query = new NSqlQuery(db.getConnection());\r
+ if (icon == null) {\r
+ if (!query.prepare("update SavedSearch set icon=null where guid=:guid"))\r
+ logger.log(logger.EXTREME, "Error preparing saved search icon set.");\r
+ } else {\r
+ if (!query.prepare("update SavedSearch set icon=:icon where guid=:guid"))\r
+ logger.log(logger.EXTREME, "Error preparing tag icon set.");\r
+ QBuffer buffer = new QBuffer();\r
+ if (!buffer.open(QIODevice.OpenModeFlag.ReadWrite)) {\r
+ logger.log(logger.EXTREME, "Failure to open buffer. Aborting.");\r
+ return;\r
+ }\r
+ QPixmap p = icon.pixmap(32, 32);\r
+ QImage i = p.toImage();\r
+ i.save(buffer, type.toUpperCase());\r
+ buffer.close();\r
+ QByteArray b = new QByteArray(buffer.buffer());\r
+ if (!b.isNull() && !b.isEmpty())\r
+ query.bindValue(":icon", b.toByteArray());\r
+ else\r
+ return;\r
+ }\r
+ query.bindValue(":guid", guid);\r
+ if (!query.exec()) \r
+ logger.log(logger.LOW, "Error setting SavedSearch icon. " +query.lastError());\r
+ }\r
+\r
+ // Get a list of all icons\r
+ public HashMap<String, QIcon> getAllIcons() {\r
+ HashMap<String, QIcon> values = new HashMap<String, QIcon>();\r
+ NSqlQuery query = new NSqlQuery(db.getConnection());\r
+ \r
+ if (!query.exec("SELECT guid, icon from SavedSearch"))\r
+ logger.log(logger.EXTREME, "Error executing SavedSearch getAllIcons select.");\r
+ while (query.next()) {\r
+ if (query.getBlob(1) != null) {\r
+ String guid = query.valueString(0);\r
+ QByteArray blob = new QByteArray(query.getBlob(1));\r
+ QIcon icon = new QIcon(QPixmap.fromImage(QImage.fromData(blob)));\r
+ values.put(guid, icon);\r
+ }\r
+ }\r
+ return values;\r
+ }\r
+\r
+\r