QTfrontend/main.cpp
changeset 5276 562070d3f978
parent 5257 0bbdd47522b9
child 5289 9d18b61bd3eb
--- a/QTfrontend/main.cpp	Tue Jun 21 16:55:34 2011 +0200
+++ b/QTfrontend/main.cpp	Tue Jun 21 22:43:55 2011 +0400
@@ -384,24 +384,26 @@
         return 1;
     }
 
-    Themes = new QStringList();
-    QFile userthemesfile(cfgdir->absolutePath() + "/Data/Themes/themes.cfg");
-    if (userthemesfile.open(QIODevice::ReadOnly)) {
-        QTextStream stream(&userthemesfile);
-        while (!stream.atEnd()) Themes->append(stream.readLine());
-        userthemesfile.close();
-    }
-    QFile themesfile(datadir->absolutePath() + "/Themes/themes.cfg");
-    QString str;
-    if (themesfile.open(QIODevice::ReadOnly)) {
-        QTextStream stream(&themesfile);
-        while (!stream.atEnd()) {
-            str = stream.readLine();
-            if (!Themes->contains(str)) Themes->append(str);
+    {
+        QDir dir;
+        dir.setPath(cfgdir->absolutePath() + "/Data/Themes");
+        Themes = new QStringList();
+        Themes->append(dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));
+
+        dir.setPath(datadir->absolutePath() + "/Themes");
+        Themes->append(dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));
+qDebug() << *Themes;
+        for(int i = Themes->size() - 1; i >= 0; --i)
+        {
+            QFile tmpfile;
+            tmpfile.setFileName(QString("%1/Data/Themes/%2/icon.png").arg(cfgdir->absolutePath()).arg(Themes->at(i)));
+            if (!tmpfile.exists())
+            {
+                tmpfile.setFileName(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(Themes->at(i)));
+                if(!tmpfile.exists())
+                    Themes->removeAt(i);
+            }
         }
-        themesfile.close();
-    } else {
-        QMessageBox::critical(0, "Error", "Cannot access themes.cfg", "OK");
     }
 
     QDir tmpdir;