summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h
Side-by-side diff
Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h b/noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h
new file mode 100644
index 0000000..8446578
--- a/dev/null
+++ b/noncore/applets/keyhelper/keyhelperapplet/anylnk/AppLnkManager.h
@@ -0,0 +1,56 @@
+#ifndef _APPLNK_MANAGER_H_
+#define _APPLNK_MANAGER_H_
+
+#include <qsize.h>
+
+#include <qpe/applnk.h>
+#include <qpe/mimetype.h>
+
+class AppLnkManager
+{
+public:
+ AppLnkManager(){
+ }
+ ~AppLnkManager(){
+ if(m_pLnkSet) delete m_pLnkSet;
+ }
+ static void init(bool force=false){
+ if(m_notfound || force){
+ if(m_pLnkSet){
+ delete m_pLnkSet;
+ }
+ qDebug("AppLnkManager::init()");
+ m_pLnkSet = new AppLnkSet(MimeType::appsFolderName());
+ m_notfound = false;
+ }
+ }
+ static AppLnkSet* getInstance(){
+ if(m_pLnkSet == NULL){
+ init(true);
+ }
+ return(m_pLnkSet);
+ }
+ static const QSize& getIconSize(){
+ if(m_oIconSize.isValid()){
+ return(m_oIconSize);
+ }
+ const QList<AppLnk>& lnkList = getInstance()->children();
+ QListIterator<AppLnk> it(lnkList);
+ for(; it.current(); ++it){
+ if((*it)->pixmap().isNull() == false){
+ m_oIconSize = (*it)->pixmap().size();
+ break;
+ }
+ }
+ return(m_oIconSize);
+ }
+ static void notfound(){
+ m_notfound = true;
+ }
+private:
+ static bool m_notfound;
+ static AppLnkSet* m_pLnkSet;
+ static QSize m_oIconSize;
+};
+
+#endif /* _APPLNK_MANAGER_H_ */