summaryrefslogtreecommitdiffstats
path: root/util/s60theme/main.cpp
diff options
context:
space:
mode:
authorAlessandro Portale <aportale@trolltech.com>2009-06-07 17:40:38 (GMT)
committerAlessandro Portale <aportale@trolltech.com>2009-06-07 17:40:38 (GMT)
commit9d49d50c55311afdbcb5fc70a39137d3dff0ea2f (patch)
treec0435cbe2a61531f0454cb471d434cdb05984a77 /util/s60theme/main.cpp
parentdc177883bf98a68e61c9a9cda7e1ba9464079275 (diff)
downloadQt-9d49d50c55311afdbcb5fc70a39137d3dff0ea2f.zip
Qt-9d49d50c55311afdbcb5fc70a39137d3dff0ea2f.tar.gz
Qt-9d49d50c55311afdbcb5fc70a39137d3dff0ea2f.tar.bz2
's60theme' is a commandline tool which converts Carbide.ui themes into
an intermediate binary format that can be read by the simulated QS60Style. So, for example Designer (standalone or in Carbide) will be able to display a realistic S60 Ui. The intermediate binary format hashes of QPictures and QColors, streamed to a QByteArray and compressed. The QS60Style could not load the Carbide.ui theme directly because SVG handling is unfortunately not part of QtGui, and would require a dependency on the QtSvg module. Also, 's60theme' uses QWebkit to parse the SVG graphics (inspired by Ariya's 'WebKit-based SVG rasterizer' labs post). QtSvg had some issues with the SVGs that come with Carbide.ui.
Diffstat (limited to 'util/s60theme/main.cpp')
-rw-r--r--util/s60theme/main.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/util/s60theme/main.cpp b/util/s60theme/main.cpp
new file mode 100644
index 0000000..f092a9a
--- /dev/null
+++ b/util/s60theme/main.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "s60themeconvert.h"
+
+int help()
+{
+ qDebug() << "Usage: s60theme [modeldir|theme.tdf] output.blob";
+ qDebug() << "";
+ qDebug() << "Options:";
+ qDebug() << " modeldir: Theme 'model' directory in Carbide.ui tree";
+ qDebug() << " theme.tdf: Theme .tdf file";
+ qDebug() << " output.blob: Theme blob output filename";
+ qDebug() << "";
+ qDebug() << "s60theme takes an S60 theme from Carbide.ui and converts";
+ qDebug() << "it into a compact, binary format, that can be directly loaded by";
+ qDebug() << "the QtS60Style.";
+ qDebug() << "";
+ qDebug() << "Visit http://www.forum.nokia.com for details about Carbide.ui";
+ return 1;
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc != 3)
+ return help();
+
+ QApplication app(argc, argv);
+
+ const QString input = QString::fromLatin1(argv[1]);
+ const QFileInfo inputInfo(input);
+ const QString output = QString::fromLatin1(argv[2]);
+ if (inputInfo.isDir())
+ return S60ThemeConvert::convertDefaultThemeToBlob(input, output);
+ else if (inputInfo.suffix().compare(QString::fromLatin1("tdf"), Qt::CaseInsensitive) == 0)
+ return S60ThemeConvert::convertTdfToBlob(input, output);
+
+ return help();
+}