Starting off simple with fonts that follow the Playbook guidelines.
Change-Id: If772f9a20c5e7566543be6bba47b49cdf3bf1524
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
SOURCES += qqnxnavigatorbps.cpp \
qqnxeventdispatcher_blackberry.cpp \
qqnxbpseventfilter.cpp \
- qqnxvirtualkeyboardbps.cpp
+ qqnxvirtualkeyboardbps.cpp \
+ qqnxtheme.cpp \
+ qqnxsystemsettings.cpp
HEADERS += qqnxnavigatorbps.h \
qqnxeventdispatcher_blackberry.h \
qqnxbpseventfilter.h \
- qqnxvirtualkeyboardbps.h
+ qqnxvirtualkeyboardbps.h \
+ qqnxtheme.h \
+ qqnxsystemsettings.h
LIBS += -lbps
}
#if defined(Q_OS_BLACKBERRY)
#include "qqnxbpseventfilter.h"
#include "qqnxnavigatorbps.h"
+#include "qqnxtheme.h"
#include "qqnxvirtualkeyboardbps.h"
#elif defined(QQNX_PPS)
#include "qqnxnavigatorpps.h"
return m_services;
}
+#if defined(Q_OS_BLACKBERRY)
+QStringList QQnxIntegration::themeNames() const
+{
+ return QStringList(QQnxTheme::name());
+}
+
+QPlatformTheme *QQnxIntegration::createPlatformTheme(const QString &name) const
+{
+#if defined(QQNXINTEGRATION_DEBUG)
+ qDebug() << Q_FUNC_INFO << "name =" << name;
+#endif
+ if (name == QQnxTheme::name())
+ return new QQnxTheme(m_fontDatabase);
+ return QPlatformIntegration::createPlatformTheme(name);
+}
+#endif
+
QWindow *QQnxIntegration::window(screen_window_t qnxWindow)
{
#if defined(QQNXINTEGRATION_DEBUG)
QPlatformServices *services() const;
+#if defined(Q_OS_BLACKBERRY)
+ QStringList themeNames() const;
+ QPlatformTheme *createPlatformTheme(const QString &name) const;
+#endif
+
static QWindow *window(screen_window_t qnxWindow);
private:
--- /dev/null
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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.1, 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qqnxsystemsettings.h"
+
+#include <QFont>
+#include <qpa/qplatformfontdatabase.h>
+
+#include <QDebug>
+
+QT_BEGIN_NAMESPACE
+
+QHash<QPlatformTheme::Font, QFont *> qt_qnx_createRoleFonts(QPlatformFontDatabase *fontDatabase)
+{
+ qDebug() << Q_FUNC_INFO;
+ // See http://docs.blackberry.com/en/developers/deliverables/27299/Text_tablet_1526156_11.jsp
+ // which recommends using normal font size of 21 pixels and 36 pixels for titles (not covered
+ // by the theme system).
+ QFont baseFont = fontDatabase->defaultFont();
+ baseFont.setPixelSize(21);
+
+ QHash<QPlatformTheme::Font, QFont *> fonts;
+ fonts.insert(QPlatformTheme::SystemFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::PushButtonFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::ListViewFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::ListBoxFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::TitleBarFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::MenuFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::ComboMenuItemFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::HeaderViewFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::TipLabelFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::LabelFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::ToolButtonFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::MenuItemFont, new QFont(baseFont));
+ fonts.insert(QPlatformTheme::ComboLineEditFont, new QFont(baseFont));
+
+ QFont smallFont(baseFont);
+ smallFont.setPixelSize(15);
+ fonts.insert(QPlatformTheme::SmallFont, new QFont(smallFont));
+ fonts.insert(QPlatformTheme::MiniFont, new QFont(smallFont));
+
+ return fonts;
+}
+
+QT_END_NAMESPACE
--- /dev/null
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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.1, 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QQNXSYSTEMSETTINGS_H
+#define QQNXSYSTEMSETTINGS_H
+
+#include <QtCore/qhash.h>
+#include <qpa/qplatformtheme.h>
+
+class QPlatformFontDatabase;
+
+QT_BEGIN_NAMESPACE
+
+QHash<QPlatformTheme::Font, QFont *> qt_qnx_createRoleFonts(QPlatformFontDatabase *fontDatabase);
+
+QT_END_NAMESPACE
+
+#endif // QQNXSYSTEMSETTINGS_H
--- /dev/null
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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.1, 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qqnxtheme.h"
+
+#include "qqnxsystemsettings.h"
+
+QT_BEGIN_NAMESPACE
+
+QQnxTheme::QQnxTheme(QPlatformFontDatabase *fontDatabase)
+ : m_fontDatabase(fontDatabase)
+{
+}
+
+QQnxTheme::~QQnxTheme()
+{
+ qDeleteAll(m_fonts);
+}
+
+const QFont *QQnxTheme::font(Font type) const
+{
+ if (m_fonts.isEmpty() && m_fontDatabase)
+ m_fonts = qt_qnx_createRoleFonts(m_fontDatabase);
+ return m_fonts.value(type, 0);
+}
+
+QT_END_NAMESPACE
--- /dev/null
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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.1, 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QQNXTHEME_H
+#define QQNXTHEME_H
+
+#include <qpa/qplatformtheme.h>
+
+#include <QtGui/qfont.h>
+
+#include <QtCore/qhash.h>
+#include <QtCore/qstring.h>
+
+QT_BEGIN_NAMESPACE
+
+class QPlatformFontDatabase;
+
+class QQnxTheme : public QPlatformTheme
+{
+public:
+ QQnxTheme(QPlatformFontDatabase *fontDatabase);
+ ~QQnxTheme();
+
+ static QString name() { return QStringLiteral("blackberry"); }
+
+ const QFont *font(Font type = SystemFont) const;
+
+private:
+ QPlatformFontDatabase *m_fontDatabase;
+ mutable QHash<QPlatformTheme::Font, QFont*> m_fonts;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQNXTHEME_H