OSDN Git Service

Version 0.5
[fontmanager/fontmanager.git] / applicationcontroller.cpp
index 1241b60..2a5d132 100644 (file)
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
 ** All rights reserved.
 ** Contact: Takumi Asaki (takumi.asaki@gmail.com)
 **
 
 #include <QtCore>
 
+#define VERSION_STRING "0.5"
+
 ApplicationController::ApplicationController(QObject *parent) :
     QObject(parent), mFontDirExists(false), mShowSystemFont(false),
     mUpdating(0),
-    mForceOverwrite(false), mWorking(false), mIgnoreUpdate(false),
+    mWorking(false), mIgnoreUpdate(false),
     mFontConfig(0)
 {
 
@@ -96,7 +98,7 @@ void ApplicationController::init()
 
 QString ApplicationController::version() const
 {
-    return QLatin1String("0.4.9(0.5beta)");
+    return QLatin1String(VERSION_STRING);
 }
 
 QString ApplicationController::currentLanguage() const
@@ -227,6 +229,26 @@ QString ApplicationController::defaultBackupFilename() const
     return backupfile;
 }
 
+QString ApplicationController::url2path(const QUrl &url) const
+{
+    QString path = url.toLocalFile();
+    return path;
+}
+
+QString ApplicationController::path4display(const QString &path) const
+{
+    QString str(path);
+    if (str.startsWith(QDir::homePath()))
+        str.replace(0, QDir::homePath().length(), QLatin1String("~"));
+//    str.replace(QLatin1Char('/'), "/<wbr>");
+    return str;
+}
+
+QStringList ApplicationController::installedFonts() const
+{
+    return mInstalledFonts;
+}
+
 void ApplicationController::updateAllEditorController()
 {
     if (!mFontConfig->fontsConfModified() || mIgnoreUpdate) {
@@ -299,9 +321,8 @@ void ApplicationController::resetLocalFontsConf()
 void ApplicationController::importSystemSettings(const QString &family)
 {
     mFontConfig->importSystemSettings(family);
-    if (mFontConfig->fontsConfModified()) {
+    if (mFontConfig->fontsConfModified())
         updateEditorController(family);
-    }
 }
 
 void ApplicationController::createRecommendedSettings()
@@ -312,11 +333,18 @@ void ApplicationController::createRecommendedSettings()
 void ApplicationController::backupConfig(const QString &filename)
 {
     mFontConfig->backupFontsConf(filename);
+    emit backupConfigFinished(filename);
 }
 
 void ApplicationController::restoreConfig(const QString &filename)
 {
     mFontConfig->restoreFontsConf(filename);
+    emit restoreConfigFinished(filename);
+}
+
+void ApplicationController::restoreConfig(const QUrl &filename)
+{
+    restoreConfig(filename.toLocalFile());
 }
 
 void ApplicationController::createFontDir()
@@ -341,6 +369,11 @@ void ApplicationController::installFont(FontInfo *fontinfo)
         mFontConfig->appendFontProperty(prop);
     }
 
+    if (!mInstalledFonts.contains(dstfont.absoluteFilePath())) {
+        mInstalledFonts.append(dstfont.absoluteFilePath());
+        emit installedFontsChanged();
+    }
+
     emit installFinished(srcfont.fileName());
 
     mWorking = true;
@@ -357,6 +390,12 @@ void ApplicationController::updateFontsConf(InstalledFontInfo *fontInfo)
 void ApplicationController::uninstallFont(const QString &fontpath)
 {
     bool check = QFile::remove(fontpath);
+
+    if (mInstalledFonts.contains(fontpath)) {
+        mInstalledFonts.removeOne(fontpath);
+        emit installedFontsChanged();
+    }
+
     if (check) {
         emit uninstallFinished(fontpath);
 
@@ -394,12 +433,13 @@ void ApplicationController::syncInstallableFamilyFor(const QString &family)
 
 void ApplicationController::saveFontsConf()
 {
-    if (!mFontConfig->fontsConfModified())
+    if (!mFontConfig->fontsConfModified()) {
+        emit localFontsConfFileUpdated();
         return;
+    }
 
     mFontConfig->saveFontsConf();
-    mForceOverwrite = false;
-    emit localFontsConfPathChanged();
+    emit localFontsConfFileUpdated();
 }
 
 void ApplicationController::appendFamilyToConfig(const QString &family, const QString &value, const QString &priority)