* Add changing config order.
* Add editing System font.
* Add backup/restore configuration.
* Improvement UI & performance
/****************************************************************************
**
-** 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)
{
QString ApplicationController::version() const
{
- return QLatin1String("0.4.95(0.5RC)");
+ return QLatin1String(VERSION_STRING);
}
QString ApplicationController::currentLanguage() const
QString ApplicationController::url2path(const QUrl &url) const
{
QString path = url.toLocalFile();
- if (path.startsWith(QDir::homePath()))
- path.replace(0, QDir::homePath().length(), QLatin1String("~"));
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) {
void ApplicationController::importSystemSettings(const QString &family)
{
mFontConfig->importSystemSettings(family);
- if (mFontConfig->fontsConfModified()) {
+ if (mFontConfig->fontsConfModified())
updateEditorController(family);
- }
}
void ApplicationController::createRecommendedSettings()
emit restoreConfigFinished(filename);
}
+void ApplicationController::restoreConfig(const QUrl &filename)
+{
+ restoreConfig(filename.toLocalFile());
+}
+
void ApplicationController::createFontDir()
{
QDir fontDir(mFontDirPath);
mFontConfig->appendFontProperty(prop);
}
+ if (!mInstalledFonts.contains(dstfont.absoluteFilePath())) {
+ mInstalledFonts.append(dstfont.absoluteFilePath());
+ emit installedFontsChanged();
+ }
+
emit installFinished(srcfont.fileName());
mWorking = true;
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);
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)
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
Q_PROPERTY(QString localFontsConfPath READ localFontsConfPath NOTIFY localFontsConfPathChanged)
Q_PROPERTY(bool localFontsConfExists READ localFontsConfExists NOTIFY localFontsConfExistsChanged)
- Q_PROPERTY(bool isEmptyFontsConf READ isEmptyFontsConf NOTIFY localFontsConfChanged)
- Q_PROPERTY(QString localFontsConf READ localFontsConf NOTIFY localFontsConfChanged)
+ Q_PROPERTY(bool isEmptyFontsConf READ isEmptyFontsConf NOTIFY localFontsConfFileUpdated)
+ Q_PROPERTY(QString localFontsConf READ localFontsConf NOTIFY localFontsConfFileUpdated)
Q_PROPERTY(bool showSystemFont READ showSystemFont WRITE setShowSystemFont NOTIFY showSystemFontChanged)
Q_PROPERTY(bool working READ working NOTIFY workingChanged)
Q_PROPERTY(QUrl backupDir READ backupDir NOTIFY backupDirChanged)
+
+ Q_PROPERTY(QStringList installedFonts READ installedFonts NOTIFY installedFontsChanged)
public:
explicit ApplicationController(QObject *parent = 0);
Q_INVOKABLE QString defaultBackupFilename() const;
Q_INVOKABLE QString url2path(const QUrl &url) const;
+ Q_INVOKABLE QString path4display(const QString &path) const;
+
+ QStringList installedFonts() const;
public slots:
void updateAllEditorController();
void backupConfig(const QString &filename);
void restoreConfig(const QString &filename);
+ void restoreConfig(const QUrl &filename);
signals:
void alertDialog(const QString &message);
void fontDirExistsChanged();
void showSystemFontChanged();
+ void installedFontsChanged();
void installFinished(const QString &fontpath);
void uninstallFinished(const QString &fontpath);
void localFontsConfPathChanged();
void localFontsConfExistsChanged();
void localFontsConfChanged();
+ void localFontsConfFileUpdated();
void workingChanged();
QString mFontDirPath;
bool mFontDirExists;
bool mShowSystemFont;
+ QStringList mInstalledFonts;
int mUpdating;
- bool mForceOverwrite;
bool mWorking;
bool mIgnoreUpdate;
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
#include <QVariant>
#include <QFontInfo>
#include <QFontMetrics>
+#include <QFontDatabase>
#include <QUrl>
+#include <QTextStream>
+#undef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
#include <QDebug>
+#endif
#define FCBIN_PATH "/usr/bin/"
#define FCCACHE_COMMAND "fc-cache"
#define FCLIST_COMMAND "fc-list"
#define FCLIST_OPTION "-v"
-//static QStringList configKeys;
-
FontConfigManager::FontConfigManager(QObject *parent) :
QObject(parent), mLang("en"), mLocalFontsConf(0)
{
connect(this, SIGNAL(localFontsConfPathChanged()), SIGNAL(localFontsConfExistsChanged()));
-// connect(this, SIGNAL(localFontsConfPathChanged()), SIGNAL(fontsConfUpdated()));
+ // connect(this, SIGNAL(localFontsConfPathChanged()), SIGNAL(fontsConfUpdated()));
mLocalFontsConf = new FontsConf(this);
mSystemLocalConf = new FontsConf(this);
emit startUpdateFontsConfig();
resetFontsConf();
-#if 0
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
QStringList f;
foreach (InstalledFontInfo *info, monospaceFonts)
f << info->localefamily();
if (monospaceFonts.count())
foreach (InstalledFontInfo *info, monospaceFonts) {
addPreferFamily(MONOSPACE_DEF, info->enfamily());
- addPreferFamily(MONOSPACE_DEF, info->localefamily());
}
else if (monospaceSansSerifFonts.count())
foreach (InstalledFontInfo *info, monospaceSansSerifFonts) {
addPreferFamily(MONOSPACE_DEF, info->enfamily());
- addPreferFamily(MONOSPACE_DEF, info->localefamily());
}
else if (monospaceSerifFonts.count())
foreach (InstalledFontInfo *info, monospaceSerifFonts) {
addPreferFamily(MONOSPACE_DEF, info->enfamily());
- addPreferFamily(MONOSPACE_DEF, info->localefamily());
}
if (sansSerifFonts.count())
foreach (InstalledFontInfo *info, sansSerifFonts) {
addPreferFamily(SANSSERIF_DEF, info->enfamily());
- addPreferFamily(SANSSERIF_DEF, info->localefamily());
+ addPreferFamily(SYSTEM_DEF, info->enfamily());
}
else if (monospaceSansSerifFonts.count())
foreach (InstalledFontInfo *info, monospaceSansSerifFonts) {
addPreferFamily(SANSSERIF_DEF, info->enfamily());
- addPreferFamily(SANSSERIF_DEF, info->localefamily());
+ addPreferFamily(SYSTEM_DEF, info->enfamily());
}
else if (unknownFonts.count())
foreach (InstalledFontInfo *info, unknownFonts) {
addPreferFamily(SANSSERIF_DEF, info->enfamily());
- addPreferFamily(SANSSERIF_DEF, info->localefamily());
+ addPreferFamily(SYSTEM_DEF, info->enfamily());
}
else if (monospaceFonts.count())
foreach (InstalledFontInfo *info, monospaceFonts) {
addPreferFamily(SANSSERIF_DEF, info->enfamily());
- addPreferFamily(SANSSERIF_DEF, info->localefamily());
+ addPreferFamily(SYSTEM_DEF, info->enfamily());
}
if (serifFonts.count())
foreach (InstalledFontInfo *info, serifFonts) {
addPreferFamily(SERIF_DEF, info->enfamily());
- addPreferFamily(SERIF_DEF, info->localefamily());
}
else if (monospaceSerifFonts.count())
foreach (InstalledFontInfo *info, monospaceSerifFonts) {
addPreferFamily(SANSSERIF_DEF, info->enfamily());
- addPreferFamily(SANSSERIF_DEF, info->localefamily());
}
else if (unknownFonts.count())
foreach (InstalledFontInfo *info, unknownFonts) {
addPreferFamily(SERIF_DEF, info->enfamily());
- addPreferFamily(SERIF_DEF, info->localefamily());
}
else if (monospaceFonts.count())
foreach (InstalledFontInfo *info, monospaceFonts) {
addPreferFamily(SERIF_DEF, info->enfamily());
- addPreferFamily(SERIF_DEF, info->localefamily());
}
foreach (const QString &f, FontsConf::genericFamilies())
return false;
}
+#define DEFAULT_POINTSIZE 24
+
bool FontConfigManager::maybeMonospaceFont(InstalledFontInfo *info) const
{
- QFont font(info->enfamily());
+ int fontId = -1;
+ QFont font = font4info(info, DEFAULT_POINTSIZE);
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "0 - FontConfigManager::maybeMonospaceFont(" << info->enfamily() << info->enstyle() << point << ")" << font.family() << font.exactMatch();
+#endif
+ if (!font.exactMatch() || font.family() != info->enfamily()) {
+ fontId = QFontDatabase::addApplicationFont(info->file());
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "\tfontId:" << fontId << info->file();
+#endif
+ if (fontId >= 0) {
+ font = font4info(info, DEFAULT_POINTSIZE);
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "1 - FontConfigManager::maybeMonospaceFont(" << info->enfamily() << info->enstyle() << point << ")" << font.family() << font.exactMatch();
+#endif
+ if (!font.exactMatch() || font.family() != info->enfamily()) {
+ font = QFont(info->enfamily());
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "2 - FontConfigManager::maybeMonospaceFont(" << info->enfamily() << info->enstyle() << point << ")" << font.family() << font.exactMatch();
+#endif
+ }
+ }
+ }
+ bool isFixed = false;
if (font.exactMatch()) {
QFontInfo fi(font);
- if (fi.fixedPitch())
- return true;
- QFontMetrics fm(font);
- int w = fm.width(QLatin1Char('A'));
- if (fm.width(QLatin1Char('i')) == w && fm.width(QLatin1Char('X')) == w)
- return true;
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "\tfixedPitch:" << fi.fixedPitch();
+#endif
+ if (fi.fixedPitch()) {
+ isFixed = true;
+ } else {
+ QFontMetrics fm(font);
+ int w = fm.width(QLatin1Char('A'));
+#ifdef FONTMANAGER_DEBUG_RECOMMENDED_SETTINGS
+ qDebug() << "\twidth:" << w << fm.width(QLatin1Char('i')) << fm.width(QLatin1Char('X'));
+#endif
+ if (fm.width(QLatin1Char('i')) == w && fm.width(QLatin1Char('X')) == w) {
+ isFixed = true;
+ }
+ }
}
+ if (fontId >= 0)
+ QFontDatabase::removeApplicationFont(fontId);
+ if (isFixed)
+ return true;
foreach (const QString &f, info->family()) {
if (f.contains("courier", Qt::CaseInsensitive) ||
f.contains("mono", Qt::CaseInsensitive))
return false;
}
+QFont FontConfigManager::font4info(InstalledFontInfo *info, int pointSize) const
+{
+ QFontDatabase fdb;
+ int point = pointSize;
+ if (!fdb.isScalable(info->enfamily(), info->enstyle())) {
+ QList<int> points = fdb.pointSizes(info->enfamily(), info->enstyle());
+ if (points.count() > 0)
+ point = points.first();
+ }
+ QFont font = fdb.font(info->enfamily(), info->enstyle(), point);
+ return font;
+}
+
void FontConfigManager::runFcCache()
{
QProcess *proc = new QProcess(this);
QByteArray buf = proc->readAllStandardOutput();
QByteArray errbuf = proc->readAllStandardError();
if (!errbuf.isEmpty())
- qWarning() << errbuf;
+ qWarning("%s", errbuf.constData());
Q_ASSERT(errbuf.isEmpty());
static QByteArray emptyLine("\n");
}
} else {
mLocalFontsConf->save(mLocalFontsConfPath);
- if (!check) {
+ if (!check)
emit localFontsConfExistsChanged();
- }
}
}
mLocalFontsConf->save(filepath);
}
-void FontConfigManager::restoreFontsConf(const QUrl &fileUrl)
+void FontConfigManager::restoreFontsConf(const QString &filepath)
{
- QString filepath = fileUrl.toLocalFile();
if (filepath.isEmpty() || !QFile::exists(filepath))
return;
FontsConf *restoredConf = new FontsConf(this);
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
#include <QList>
#include <QStringList>
#include <QMap>
+#include <QFont>
#include "fontsconfigproperties.h"
bool maybeSansSerifFont(InstalledFontInfo *info) const;
bool maybeSerifFont(InstalledFontInfo *info) const;
bool maybeMonospaceFont(InstalledFontInfo *info) const;
+ QFont font4info(InstalledFontInfo *info, int pointSize) const;
signals:
void fcCacheFinished();
void readFontsConf();
void saveFontsConf();
void backupFontsConf(const QString &filepath);
- void restoreFontsConf(const QUrl &fileUrl);
+ void restoreFontsConf(const QString &filepath);
void resetFontsConf();
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
+/****************************************************************************
+**
+** Copyright (C) 2012 Takumi Asaki
+** All rights reserved.
+** Contact: Takumi Asaki (takumi.asaki@gmail.com)
+**
+** This file is part of the fontmanager application.
+**
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+****************************************************************************/
+
import QtQuick 1.1
import com.nokia.meego 1.0
import 'UIConstants.js' as UI
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
property bool showHelp: false
property string helpMessage: qsTr(
"<p>Select font family and edit priorities.</p>" +
- "<p><img src=\"image://theme/icon-m-toolbar-add\">: Add fonts to the selected <i>Priority</i> in config file.</p>" +
- "<p><img src=\"image://theme/icon-m-toolbar-delete\">: Remove fonts from the selected <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p>" +
+ "<p><img src=\"image://theme/icon-m-toolbar-add\">: Add fonts to the target <i>Priority</i> in config file.</p>" +
"<hr/>" +
- "<p><b>Priorities</b>:<p>" +
+ "<p><img src=\"image://theme/icon-m-toolbar-up\">: Move up selected font.</p>" +
+ "<p><img src=\"image://theme/icon-m-toolbar-delete\">: Remove selected font from the its <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p>" +
+ "<p><img src=\"image://theme/icon-m-toolbar-down\">: Move down selected font.</p>" +
+ "<hr/>" +
+ "<h2>Priorities</h2><p>" +
" <b>Higher</b>: These fonts have a higher priority. ('prepend' fonts in fontconfig)<br/>" +
- " <b>Normal</b>: These fonts are usally used as default. ('prefer' fonts in fontconfig)<br/>" +
+ " <b>Normal</b>: These fonts are usally used as default. System settings may be given priority than these. ('prefer' fonts in fontconfig)<br/>" +
" <b>Lowser</b>: These fonts have a lower priority. ('accept' fonts in fontconfig)<br/>" +
+ "<ul><li>Please check <a href=\"http://www.freedesktop.org/software/fontconfig/fontconfig-user.html\">fontconfig</a> for more details.</li></ul>" +
"<hr/>" +
"<p><b>Import System Settings</b>: Import settings from system(/etc/fonts/local.conf).</p>" +
"<hr/>" +
+ "<h2>Menu(<img src=\"image://theme/icon-m-toolbar-view-menu\">)</h2>" +
"<p><b>Remove current font config</b>(Menu): Remove current user's font config file.</p>" +
- "<p><b>View current font config</b>(Menu): View current user's font config file.</p>" +
- "<hr/>" +
- "Please check <a href=\"http://www.freedesktop.org/software/fontconfig/fontconfig-user.html\">fontconfig</a> for more details."
+ "<p><b>View current font config</b>(Menu): View current user's font config file.</p>"
)
property Item selectionDialog: null
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
+/****************************************************************************
+**
+** Copyright (C) 2012 Takumi Asaki
+** All rights reserved.
+** Contact: Takumi Asaki (takumi.asaki@gmail.com)
+**
+** This file is part of the fontmanager application.
+**
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+****************************************************************************/
+
import QtQuick 1.1
import com.nokia.meego 1.0
import com.nokia.extras 1.0
anchors.fill: parent
anchors.leftMargin: -UI.MARGIN_XLARGE
anchors.rightMargin: -UI.MARGIN_XLARGE
+ anchors.topMargin: 1
+ anchors.bottomMargin: 1
color: UI.COLOR_SELECT
visible: listItem.isHeader
}
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
property variant fontconf
property bool modified: (sansSerifCheck.checked !== fontconf.prefer("sans-serif")) ||
(serifCheck.checked !== fontconf.prefer("serif")) ||
- (monospaceCheck.checked !== fontconf.prefer("monospace"))
+ (monospaceCheck.checked !== fontconf.prefer("monospace")) ||
+ (systemCheck.checked !== fontconf.prefer("Nokia Pure Text"))
// ||
// (embeddedBitmapCombo.selectedIndex !== fontconf.embeddedBitmap) ||
// (hintingCombo.selectedIndex !== fontconf.hinting)
sansSerifCheck.checked = fontconf.prefer("sans-serif")
serifCheck.checked = fontconf.prefer("serif")
monospaceCheck.checked = fontconf.prefer("monospace")
+ systemCheck.checked = fontconf.prefer("Nokia Pure Text")
// embeddedBitmapCombo.selectedIndex = fontconf.embeddedBitmap
// hintingCombo.selectedIndex = fontconf.hinting
}
fontconf.addPreferFamily("monospace")
else
fontconf.removePreferFamily("monospace")
+ if (systemCheck.checked)
+ fontconf.addPreferFamily("Nokia Pure Text")
+ else
+ fontconf.removePreferFamily("Nokia Pure Text")
// fontconf.embeddedBitmap = embeddedBitmapCombo.selectedIndex
// fontconf.hinting = hintingCombo.selectedIndex
}
width: parent.width
text: qsTr("Use as Prefer Font for Monospace")
}
+ CheckBox {
+ id: systemCheck
+ width: parent.width
+ text: qsTr("Use as Prefer Font for System")
+ }
// ConfigValueComboBox {
// id: embeddedBitmapCombo
// width: parent.width
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
+/****************************************************************************
+**
+** Copyright (C) 2012 Takumi Asaki
+** All rights reserved.
+** Contact: Takumi Asaki (takumi.asaki@gmail.com)
+**
+** This file is part of the fontmanager application.
+**
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+****************************************************************************/
+
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import com.nokia.meego 1.0
Rectangle {
id: textRect
anchors.fill: parent
- anchors.margins: UI.DEFAULT_MARGIN
+ anchors.margins: UI.DEFAULT_MARGIN / 2
color: "white"
Text {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
- anchors.bottomMargin: UI.DEFAULT_MARGIN
+ anchors.topMargin: UI.DEFAULT_MARGIN / 2
text: helpDialog.titleText
font.pixelSize: UI.FONT_XLARGE
font.bold: true
Rectangle {
id: border
anchors.top: helpTitle.bottom
- anchors.bottom: okButton.top
+ anchors.bottom: closeButton.top
anchors.left: parent.left
anchors.right: parent.right
- anchors.rightMargin: 1
- anchors.bottomMargin: UI.DEFAULT_MARGIN
+ anchors.leftMargin: UI.DEFAULT_MARGIN / 2
+ anchors.rightMargin: UI.DEFAULT_MARGIN / 2
+ anchors.bottomMargin: UI.DEFAULT_MARGIN / 2
+ radius: 3
clip: true
border.width: 1
}
Button {
- id: okButton
+ id: closeButton
text: qsTr("Close")
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
- anchors.margins: UI.DEFAULT_MARGIN
+ anchors.bottomMargin: UI.DEFAULT_MARGIN / 2
onClicked: {
helpDialog.visible = false
helpDialog.clicked()
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
property bool showHelp: false
property string helpMessage: qsTr(
"<h1>How to use</h1>" +
+ "<hr/>" +
+ "<h2>Toolbar</h2>" +
"<p><img src=\"image://theme/icon-m-toolbar-add\">: Install font. Please copy font file(s) to this device in advance. Currently *.ttf and *.ttc are supported.</p>" +
- "<p><img src=\"image://theme/icon-m-toolbar-settings\">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace.</p>" +
+ "<p><img src=\"image://theme/icon-m-toolbar-settings\">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace/System.</p>" +
"<hr/>" +
- "<p><b>Create Recommended Settings</b>(Menu): Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p>"
+ "<h2>Menu(<img src=\"image://theme/icon-m-toolbar-view-menu\">)</h2>" +
+ "<p><b>Create Recommended Settings</b>: Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p>" +
+ "<p><b>Backup Config</b>: Save current fonts config into ~/MyDocs/Documents</p>" +
+ "<p><b>Restore Config</b>: Restore fonts config from backuped file</p>"
)
Connections {
anchors.right: parent.right
anchors.margins: UI.DEFAULT_MARGIN / 2
clip: true
- enabled: !disableTools
- opacity: enabled ? 1.0 : 0.5
ListView {
- id: listView
+ id: installedFontListView
anchors.fill: parent
+ enabled: !disableTools
+ opacity: enabled ? 1.0 : 0.5
model: installedFontList
}
+ Flickable {
+ id: helpView
+ visible: false
+ anchors.fill: parent
+ contentHeight: helpText.paintedHeight
+ Text {
+ id: helpText
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ width: parent.width
+ text: helpMessage
+ font.pixelSize: UI.FONT_DEFAULT
+ color: "black"
+ horizontalAlignment: Text.AlignLeft
+ }
+ }
+
ScrollDecorator {
- flickableItem: listView
+ id: scrollDecorator
+ flickableItem: installedFontListView
}
- }
- Column {
- id: warningText
- width: contents.width - UI.DEFAULT_MARGIN * 2
- anchors.centerIn: contents
- visible: false
- Text {
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
- width: parent.width
- text: helpMessage
- font.pixelSize: UI.FONT_DEFAULT
- color: "black"
- horizontalAlignment: Text.AlignLeft
- }
}
BusyIndicator {
onClicked: {
if (mainMenu.status !== DialogStatus.Closed)
mainMenu.close()
+// if (controller.installedFonts.length > 0) {
+// console.log("Installed Fonts:" + controller.installedFonts)
+// }
if (controller.localFontsConfExists)
openCreateConfirmDialog()
else
states: [
State {
name: "nofonts"
- when: (listView.count == 0) && !controller.working && !showHelp
+ when: (installedFontListView.count == 0) && !controller.working && !showHelp
PropertyChanges {
target: createRecommendedSettingsItem
enabled: false
}
+// PropertyChanges {
+// target: installedFontListView
+// visible: false
+// }
PropertyChanges {
- target: warningText
+ target: helpView
visible: true
}
PropertyChanges {
+ target: scrollDecorator
+ flickableItem: helpView
+ }
+ PropertyChanges {
target: pageHeader
text: qsTr("No Fonts Installed")
}
+/****************************************************************************
+**
+** Copyright (C) 2012 Takumi Asaki
+** All rights reserved.
+** Contact: Takumi Asaki (takumi.asaki@gmail.com)
+**
+** This file is part of the fontmanager application.
+**
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+****************************************************************************/
+
import QtQuick 1.1
import com.nokia.meego 1.0
import com.nokia.extras 1.0
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
function openRestoreConfirmDialog()
{
queryDialog.titleText = qsTr("Restore it?")
- queryDialog.message = qsTr("Existing Fonts Config will be replaced by '%1'. Are you sure?").arg(controller.url2path(restoreFilePath))
+ queryDialog.message = qsTr("Existing Fonts Config will be replaced by '%1'. Are you sure?").arg(controller.path4display(controller.url2path(restoreFilePath)))
queryDialog.acceptButtonText = qsTr("OK")
queryDialog.rejectButtonText = qsTr("Cancel")
queryDialog.accepted.connect(restoreFontsConf)
+/****************************************************************************
+**
+** Copyright (C) 2012 Takumi Asaki
+** All rights reserved.
+** Contact: Takumi Asaki (takumi.asaki@gmail.com)
+**
+** This file is part of the fontmanager application.
+**
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+****************************************************************************/
+
import QtQuick 1.1
import com.nokia.meego 1.0
import 'UIConstants.js' as UI
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
/****************************************************************************
**
-** Copyright (C) 2011 Takumi Asaki
+** Copyright (C) 2012 Takumi Asaki
** All rights reserved.
** Contact: Takumi Asaki (takumi.asaki@gmail.com)
**
return
}
queryDialog.titleText = qsTr("Backup finished")
- queryDialog.message = qsTr("Fonts Config is backuped as '%1' successfully.").arg(filePath)
+ queryDialog.message = qsTr("Fonts Config is backuped as '%1' successfully.").arg(controller.path4display(filePath))
openFinishedDialog()
}
return
}
queryDialog.titleText = qsTr("Restore finished")
- queryDialog.message = qsTr("Fonts Config is restored from '%1' successfully.").arg(filePath)
+ queryDialog.message = qsTr("Fonts Config is restored from '%1' successfully.").arg(controller.path4display(filePath))
openFinishedDialog()
}
+fontmanager (0.5) unstable; urgency=low
+
+ * fix bugs
+ * update helps
+
+ -- Takumi Asaki <takumi.asaki@gmail.com> Thu, 19 Apr 2012 16:15:00 +0900
+
fontmanager (0.4.95) unstable; urgency=low
- 0.5RC
+ 0.5 RC(for internal test only)
* UI improvments
* UI Optimizations
fontmanager (0.4.9) unstable; urgency=low
- 0.5 beta
+ 0.5 beta(for test only)
* Add reorder configuration.
* Add backup/restore configuration.
* Add edit System font configuration.
<context>
<name>ApplicationController</name>
<message>
- <location filename="../applicationcontroller.cpp" line="+378"/>
+ <location filename="../applicationcontroller.cpp" line="+407"/>
<source>Could not remove Font '%1'</source>
<translation>フォント '%1' を削除できません</translation>
</message>
<context>
<name>BottomButtons</name>
<message>
- <location filename="../qml/fontmanager/BottomButtons.qml" line="+63"/>
+ <location filename="../qml/fontmanager/BottomButtons.qml" line="+101"/>
<source>Import System Settings</source>
<translation>システム設定のインポート</translation>
</message>
<context>
<name>EditFontsConfPage</name>
<message>
- <location filename="../qml/fontmanager/EditFontsConfPage.qml" line="+53"/>
- <source><p>Select font family and edit priorities.</p><p><img src="image://theme/icon-m-toolbar-add">: Add fonts to the selected <i>Priority</i> in config file.</p><p><img src="image://theme/icon-m-toolbar-delete">: Remove fonts from the selected <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p><hr/><p><b>Priorities</b>:<p>&nbsp;&nbsp;<b>Higher</b>: These fonts have a higher priority. ('prepend' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Normal</b>: These fonts are usally used as default. ('prefer' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Lowser</b>: These fonts have a lower priority. ('accept' fonts in fontconfig)<br/><hr/><p><b>Import System Settings</b>: Import settings from system(/etc/fonts/local.conf).</p><hr/><p><b>Remove current font config</b>(Menu): Remove current user's font config file.</p><p><b>View current font config</b>(Menu): View current user's font config file.</p><hr/>Please check <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> for more details.</source>
- <translation><p>フォントファミリーを選択し、プロパティを編集します。</p><p><img src="image://theme/icon-m-toolbar-add">: フォントを設定ファイルの選択した <i>優先順位</i> に追加します。</p><p><img src="image://theme/icon-m-toolbar-delete">: フォントを設定ファイルの選択した <i>優先順位</i> から削除します。<i>注: フォントはアンインストールされません。</i></p><hr/><p><b>優先順位</b>:<p>&nbsp;&nbsp;<b>高</b>: これらのフォントは優先して使用されます。(fontconfig で 'prepend' されるフォントとして扱います)<br/>&nbsp;&nbsp;<b>標準</b>: これらのフォントがデフォルトで使用されます。(fontconfig で 'prefer' されるフォントとして扱います)<br/>&nbsp;&nbsp;<b>低</b>: これらのフォントは代替フォントして使用されます。(fontconfig で 'accept' されるフォントとして扱います)<br/><hr/><p><b>システム設定のインポート</b>: システム(/etc/fonts/local.conf)の設定をインポートします。</p><hr/><p><b>現在のフォント設定を削除</b>(メニュー): 現在のユーザーのフォント設定ファイルを削除します。</p><p><b>現在のフォント設定を表示</b>(メニュー): 現在のユーザーのフォント設定ファイルを表示します。</p><hr/>詳細は <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> も参照してください。</translation>
- </message>
- <message>
- <location line="+23"/>
+ <location filename="../qml/fontmanager/EditFontsConfPage.qml" line="+79"/>
<source>Sans Serif</source>
<translation type="unfinished"></translation>
</message>
<translation>現在のフォント設定を削除</translation>
</message>
<message>
- <location line="-91"/>
+ <location line="-120"/>
+ <source><p>Select font family and edit priorities.</p><p><img src="image://theme/icon-m-toolbar-add">: Add fonts to the target <i>Priority</i> in config file.</p><hr/><p><img src="image://theme/icon-m-toolbar-up">: Move up selected font.</p><p><img src="image://theme/icon-m-toolbar-delete">: Remove selected font from the its <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p><p><img src="image://theme/icon-m-toolbar-down">: Move down selected font.</p><hr/><h2>Priorities</h2><p>&nbsp;&nbsp;<b>Higher</b>: These fonts have a higher priority. ('prepend' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Normal</b>: These fonts are usally used as default. System settings may be given priority than these. ('prefer' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Lowser</b>: These fonts have a lower priority. ('accept' fonts in fontconfig)<br/><ul><li>Please check <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> for more details.</li></ul><hr/><p><b>Import System Settings</b>: Import settings from system(/etc/fonts/local.conf).</p><hr/><h2>Menu(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>Remove current font config</b>(Menu): Remove current user's font config file.</p><p><b>View current font config</b>(Menu): View current user's font config file.</p></source>
+ <translation><p>フォントファミリーを選択し、プロパティを編集します。</p><p><img src="image://theme/icon-m-toolbar-add">: フォントを設定ファイルの対象となる <i>優先順位</i> に追加します。</p><hr/><p><img src="image://theme/icon-m-toolbar-up">: 選択したフォントの順番を上げます。</p><p><img src="image://theme/icon-m-toolbar-delete">: 選択したフォントを設定ファイルの対象となる <i>優先順位</i> から削除します。<i>注: フォントはアンインストールされません。</i></p><p><img src="image://theme/icon-m-toolbar-down">: 選択したフォントの順番を下げます。</p><hr/><h2>優先順位</h2><p>&nbsp;&nbsp;<b>高</b>: これらのフォントは優先して使用されます。(fontconfig で 'prepend' されるフォントとして扱います)<br/>&nbsp;&nbsp;<b>標準</b>: これらのフォントがデフォルトで使用されます。システム設定のフォントが優先して使用されることがあります。(fontconfig で 'prefer' されるフォントとして扱います)<br/>&nbsp;&nbsp;<b>低</b>: これらのフォントは代替フォントして使用されます。(fontconfig で 'accept' されるフォントとして扱います)<br/><ul><li>詳細は <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> も参照してください。</li></ul><hr/><p><b>システム設定のインポート</b>: システム(/etc/fonts/local.conf)の設定をインポートします。</p><hr/><h2>メニュー(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>現在のフォント設定を削除</b>: 現在のユーザーのフォント設定ファイルを削除します。</p><p><b>現在のフォント設定を表示</b>: 現在のユーザーのフォント設定ファイルを表示します。</p></translation>
+ </message>
+ <message>
+ <location line="+29"/>
<source>System</source>
<translation>システム</translation>
</message>
<context>
<name>FontsConfProperties</name>
<message>
- <location filename="../qml/fontmanager/FontsConfProperties.qml" line="+98"/>
+ <location filename="../qml/fontmanager/FontsConfProperties.qml" line="+104"/>
<source>Use as Prefer Font for Sans-Serif</source>
<translation>Sans-Serif(ゴシック体)で使用</translation>
</message>
<source>Use as Prefer Font for Monospace</source>
<translation>等幅フォントで使用</translation>
</message>
+ <message>
+ <location line="+5"/>
+ <source>Use as Prefer Font for System</source>
+ <translation>システムフォントで使用</translation>
+ </message>
</context>
<context>
<name>FontsConfViewPage</name>
<context>
<name>HelpDialog</name>
<message>
- <location filename="../qml/fontmanager/HelpDialog.qml" line="+8"/>
+ <location filename="../qml/fontmanager/HelpDialog.qml" line="+46"/>
<source>Help</source>
<translation>ヘルプ</translation>
</message>
<message>
- <location line="+63"/>
+ <location line="+65"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
<context>
<name>MainPage</name>
<message>
- <location filename="../qml/fontmanager/MainPage.qml" line="+81"/>
+ <location filename="../qml/fontmanager/MainPage.qml" line="+86"/>
<source>Installed Fonts</source>
<translation>インストール済みフォント</translation>
</message>
<message>
- <location line="+164"/>
+ <location line="+170"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
<message>
- <location line="+30"/>
+ <location line="+38"/>
<source>No Fonts Installed</source>
<translation>フォントは未インストールです</translation>
</message>
<message>
- <location line="-63"/>
+ <location line="-71"/>
<source>About</source>
<translation>Font managerについて</translation>
</message>
<message>
- <location line="-159"/>
- <source><h1>How to use</h1><p><img src="image://theme/icon-m-toolbar-add">: Install font. Please copy font file(s) to this device in advance. Currently *.ttf and *.ttc are supported.</p><p><img src="image://theme/icon-m-toolbar-settings">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace.</p><hr/><p><b>Create Recommended Settings</b>(Menu): Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p></source>
- <translation><h1>使い方</h1><p><img src="image://theme/icon-m-toolbar-add">: フォントのインストール。事前にデバイスにフォントファイルをコピーしておいてください。現状では *.ttf と *.ttc のみサポートしています。</p><p><img src="image://theme/icon-m-toolbar-settings">: フォント設定(詳細設定). Serif/Sans Serif/等幅フォントへ任意のフォントを割り当てられます。</p><hr/><p><b>推奨設定の作成</b>(メニュー): 推奨設定を生成します。ユーザーがインストールしたフォントは<i>標準</i>の優先順位に割り当てます。システムのフォントは<i>高い</i>優先順位に割り当てられますが、ユーザーがインストールしたCJKフォントと競合するフォントの優先順位は<i>低く</i>なります。</p></translation>
- </message>
- <message>
- <location line="+163"/>
+ <location line="+4"/>
<source>Help</source>
<translation>ヘルプ</translation>
</message>
<message>
- <location line="-31"/>
+ <location line="-34"/>
<source>Create Recommended Settings</source>
<translation>推奨設定の作成</translation>
</message>
<message>
- <location line="+12"/>
+ <location line="-140"/>
+ <source><h1>How to use</h1><hr/><h2>Toolbar</h2><p><img src="image://theme/icon-m-toolbar-add">: Install font. Please copy font file(s) to this device in advance. Currently *.ttf and *.ttc are supported.</p><p><img src="image://theme/icon-m-toolbar-settings">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace/System.</p><hr/><h2>Menu(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>Create Recommended Settings</b>: Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p><p><b>Backup Config</b>: Save current fonts config into ~/MyDocs/Documents</p><p><b>Restore Config</b>: Restore fonts config from backuped file</p></source>
+ <translation><h1>使い方</h1><hr/><h2>ツールバー</h2><p><img src="image://theme/icon-m-toolbar-add">: フォントのインストール。事前にデバイスにフォントファイルをコピーしておいてください。現状では *.ttf と *.ttc のみサポートしています。</p><p><img src="image://theme/icon-m-toolbar-settings">: フォント設定(詳細設定). Serif/Sans Serif/等幅/システムフォントへ任意のフォントを割り当てられます。</p><hr/><h2>メニュー(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>推奨設定の作成</b>: 推奨設定を生成します。ユーザーがインストールしたフォントは<i>標準</i>の優先順位に割り当てます。システムのフォントは<i>高い</i>優先順位に割り当てられますが、ユーザーがインストールしたCJKフォントと競合するフォントの優先順位は<i>低く</i>なります。</p><p><b>設定のバックアップ</b>: 現在のフォント設定を ~/MyDocs/Documents に保存します。</p><p><b>設定の復旧</b>: バックアップしたファイルからフォント設定を復旧します。</p></translation>
+ </message>
+ <message>
+ <location line="+155"/>
<source>Backup Config</source>
<translation>設定のバックアップ</translation>
</message>
<context>
<name>SelectInstallFamilyDialog</name>
<message>
- <location filename="../qml/fontmanager/SelectInstallFamilyDialog.qml" line="+9"/>
+ <location filename="../qml/fontmanager/SelectInstallFamilyDialog.qml" line="+47"/>
<source>Add</source>
<translation>追加</translation>
</message>
<context>
<name>ApplicationController</name>
<message>
- <location filename="../applicationcontroller.cpp" line="+341"/>
+ <location filename="../applicationcontroller.cpp" line="+407"/>
<source>Could not remove Font '%1'</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
+ <name>BottomButtons</name>
+ <message>
+ <location filename="../qml/fontmanager/BottomButtons.qml" line="+101"/>
+ <source>Import System Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ConfigValueComboBox</name>
<message>
<location filename="../qml/fontmanager/ConfigValueComboBox.qml" line="+89"/>
<context>
<name>EditFontsConfPage</name>
<message>
- <location filename="../qml/fontmanager/EditFontsConfPage.qml" line="+51"/>
- <source><p>Select font family and edit priorities.</p><p><img src="image://theme/icon-m-toolbar-add">: Add fonts to the selected <i>Priority</i> in config file.</p><p><img src="image://theme/icon-m-toolbar-delete">: Remove fonts from the selected <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p><hr/><p><b>Priorities</b>:<p>&nbsp;&nbsp;<b>Higher</b>: These fonts have a higher priority. ('prepend' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Normal</b>: These fonts are usally used as default. ('prefer' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Lowser</b>: These fonts have a lower priority. ('accept' fonts in fontconfig)<br/><hr/><p><b>Import System Settings</b>: Import settings from system(/etc/fonts/local.conf).</p><hr/><p><b>Remove current font config</b>(Menu): Remove current user's font config file.</p><p><b>View current font config</b>(Menu): View current user's font config file.</p><hr/>Please check <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> for more details.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+28"/>
+ <location filename="../qml/fontmanager/EditFontsConfPage.qml" line="+79"/>
<source>Sans Serif</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+1"/>
<source>Serif</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+7"/>
+ <location line="+1"/>
<source>Monospace</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
- <source>Add</source>
+ <location line="+111"/>
+ <source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>Add Family for %1</source>
+ <location line="-19"/>
+ <source>Remove current fonts config</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+74"/>
- <source>Help</source>
+ <location line="-120"/>
+ <source><p>Select font family and edit priorities.</p><p><img src="image://theme/icon-m-toolbar-add">: Add fonts to the target <i>Priority</i> in config file.</p><hr/><p><img src="image://theme/icon-m-toolbar-up">: Move up selected font.</p><p><img src="image://theme/icon-m-toolbar-delete">: Remove selected font from the its <i>Priority</i> in config file. <i>Note: The fonts are NOT uninstalled</i>.</p><p><img src="image://theme/icon-m-toolbar-down">: Move down selected font.</p><hr/><h2>Priorities</h2><p>&nbsp;&nbsp;<b>Higher</b>: These fonts have a higher priority. ('prepend' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Normal</b>: These fonts are usally used as default. System settings may be given priority than these. ('prefer' fonts in fontconfig)<br/>&nbsp;&nbsp;<b>Lowser</b>: These fonts have a lower priority. ('accept' fonts in fontconfig)<br/><ul><li>Please check <a href="http://www.freedesktop.org/software/fontconfig/fontconfig-user.html">fontconfig</a> for more details.</li></ul><hr/><p><b>Import System Settings</b>: Import settings from system(/etc/fonts/local.conf).</p><hr/><h2>Menu(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>Remove current font config</b>(Menu): Remove current user's font config file.</p><p><b>View current font config</b>(Menu): View current user's font config file.</p></source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-16"/>
- <source>Remove current fonts config</source>
+ <location line="+29"/>
+ <source>System</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+8"/>
+ <source>Edit Fonts Config: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+91"/>
<source>View current fonts config</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+27"/>
<source>Remove it?</source>
<translation type="unfinished"></translation>
</message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+37"/>
+ <source>Select Family to edit</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>FontInstallPage</name>
<message>
- <location filename="../qml/fontmanager/FontInstallPage.qml" line="+75"/>
+ <location filename="../qml/fontmanager/FontInstallPage.qml" line="+71"/>
<source>Install Font</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+38"/>
+ <location line="+52"/>
<source><b>Font Family</b>: %1</source>
<translation type="unfinished"></translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+20"/>
+ <location line="+46"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+15"/>
<source>Create it?</source>
<translation type="unfinished"></translation>
</message>
</message>
<message>
<location line="+1"/>
- <location line="+12"/>
+ <location line="+17"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-11"/>
- <location line="+12"/>
+ <location line="-16"/>
+ <location line="+17"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</message>
</context>
<context>
- <name>FontSelectPage</name>
+ <name>FontSelectionPage</name>
<message>
- <location filename="../qml/fontmanager/FontSelectPage.qml" line="+64"/>
+ <location filename="../qml/fontmanager/FontSelectionPage.qml" line="+48"/>
<source>Select Font to install</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>FontsConfEditor</name>
<message>
- <location filename="../qml/fontmanager/FontsConfEditor.qml" line="+66"/>
- <source>Edit Fonts Config: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+16"/>
+ <location filename="../qml/fontmanager/FontsConfEditor.qml" line="+70"/>
<source>Priority: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+15"/>
<location line="+14"/>
+ <location line="+13"/>
<source>System Font</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-14"/>
- <location line="+14"/>
+ <location line="-13"/>
+ <location line="+13"/>
<source>User Font</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="+68"/>
- <source>Import System Settings</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FontsConfEditorController</name>
<message>
- <location filename="../fontsconfeditorcontroller.cpp" line="+57"/>
+ <location filename="../fontsconfeditorcontroller.cpp" line="+79"/>
<source>Higher</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>FontsConfProperties</name>
<message>
- <location filename="../qml/fontmanager/FontsConfProperties.qml" line="+98"/>
+ <location filename="../qml/fontmanager/FontsConfProperties.qml" line="+104"/>
<source>Use as Prefer Font for Sans-Serif</source>
<translation type="unfinished"></translation>
</message>
<source>Use as Prefer Font for Monospace</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+5"/>
+ <source>Use as Prefer Font for System</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>FontsConfViewPage</name>
<message>
- <location filename="../qml/fontmanager/FontsConfViewPage.qml" line="+60"/>
+ <location filename="../qml/fontmanager/FontsConfViewPage.qml" line="+56"/>
<source>Current Fonts Config</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>HelpDialog</name>
<message>
- <location filename="../qml/fontmanager/HelpDialog.qml" line="+8"/>
+ <location filename="../qml/fontmanager/HelpDialog.qml" line="+46"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+63"/>
- <source>OK</source>
+ <location line="+65"/>
+ <source>Close</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstalledFontInfoPage</name>
<message>
- <location filename="../qml/fontmanager/InstalledFontInfoPage.qml" line="+67"/>
+ <location filename="../qml/fontmanager/InstalledFontInfoPage.qml" line="+63"/>
<source>Installed Font Info</source>
<translation type="unfinished"></translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
+ <location line="+12"/>
<source>Delete Font?</source>
<translation type="unfinished"></translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+0"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
<source>Do you really want to remove this font now?</source>
<translation type="unfinished"></translation>
</message>
<context>
<name>MainPage</name>
<message>
- <location filename="../qml/fontmanager/MainPage.qml" line="+74"/>
+ <location filename="../qml/fontmanager/MainPage.qml" line="+86"/>
<source>Installed Fonts</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+187"/>
- <source>No Fonts Installed</source>
+ <location line="+170"/>
+ <source>Close</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-48"/>
- <source>About</source>
+ <location line="+38"/>
+ <source>No Fonts Installed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-158"/>
- <source><h1>How to use</h1><p><img src="image://theme/icon-m-toolbar-add">: Install font. Please copy font file(s) to this device in advance. Currently *.ttf and *.ttc are supported.</p><p><img src="image://theme/icon-m-toolbar-settings">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace.</p><hr/><p><b>Create Recommended Settings</b>(Menu): Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p></source>
+ <location line="-71"/>
+ <source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+162"/>
+ <location line="+4"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-15"/>
+ <location line="-34"/>
<source>Create Recommended Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+23"/>
+ <location line="-140"/>
+ <source><h1>How to use</h1><hr/><h2>Toolbar</h2><p><img src="image://theme/icon-m-toolbar-add">: Install font. Please copy font file(s) to this device in advance. Currently *.ttf and *.ttc are supported.</p><p><img src="image://theme/icon-m-toolbar-settings">: Configure fonts(expert). You can assign/unassign any fonts to Serif/Sans Serif/Monospace/System.</p><hr/><h2>Menu(<img src="image://theme/icon-m-toolbar-view-menu">)</h2><p><b>Create Recommended Settings</b>: Create recommended settings. <i>Normal</i> priority is given to user installed font(s). System fonts have <i>Higher</i> priority. System CJK fonts conflicts your installed fonts have <i>Lower</i> priority.</p><p><b>Backup Config</b>: Save current fonts config into ~/MyDocs/Documents</p><p><b>Restore Config</b>: Restore fonts config from backuped file</p></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+155"/>
+ <source>Backup Config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Restore Config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+24"/>
<source>Replace it?</source>
<translation type="unfinished"></translation>
</message>
</message>
<message>
<location line="+1"/>
- <location line="+17"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-16"/>
+ <location line="+1"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+14"/>
+ <location line="+13"/>
<source>Font Manager for N9</source>
<translation type="unfinished"></translation>
</message>
</message>
</context>
<context>
- <name>main</name>
+ <name>RestoreFontsConfPage</name>
<message>
- <location filename="../qml/fontmanager/main.qml" line="+89"/>
- <location line="+8"/>
- <location line="+10"/>
+ <location filename="../qml/fontmanager/RestoreFontsConfPage.qml" line="+47"/>
+ <source>Restore Fonts Config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Restore it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Existing Fonts Config will be replaced by '%1'. Are you sure?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-19"/>
+ <location line="+1"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SelectInstallFamilyDialog</name>
+ <message>
+ <location filename="../qml/fontmanager/SelectInstallFamilyDialog.qml" line="+47"/>
+ <source>Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Add Family for %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Unknwon</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../qml/fontmanager/main.qml" line="+110"/>
<source>Alert</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+2"/>
<location line="+7"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+14"/>
<source>Install finished</source>
<translation type="unfinished"></translation>
</message>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+11"/>
<source>Uninstall finished</source>
<translation type="unfinished"></translation>
</message>
<source>Font '%1' is uninstalled successfully.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+11"/>
+ <source>Backup finished</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Fonts Config is backuped as '%1' successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Restore finished</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Fonts Config is restored from '%1' successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>