From e84ab1fee7f44a28ee82793f83b0b27d04d28c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Wed, 6 Oct 2010 14:19:44 +0200 Subject: QGraphicsItem device coordinate cache unefficient in portrait mode Problem was that we always invalidated the cache whenever the item was rotated. This is however not required for simple rotations such as 90, 180 and 270 degrees. This commit also removes the somewhat arbitrary logic which takes the desktop size into account. We now use the viewport size instead. Auto test included. Task-number: QT-3779 Reviewed-by: yoann --- src/gui/graphicsview/qgraphicsscene.cpp | 76 ++++++++++++++++++++------ tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 76 ++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 18 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index e58b93c..a0015dc 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -4362,6 +4362,50 @@ static void _q_paintIntoCache(QPixmap *pix, QGraphicsItem *item, const QRegion & } } +// Copied from qpaintengine_vg.cpp +// Returns true for 90, 180, and 270 degree rotations. +static inline bool transformIsSimple(const QTransform& transform) +{ + QTransform::TransformationType type = transform.type(); + if (type == QTransform::TxNone || type == QTransform::TxTranslate) { + return true; + } else if (type == QTransform::TxScale) { + // Check for 0 and 180 degree rotations. + // (0 might happen after 4 rotations of 90 degrees). + qreal m11 = transform.m11(); + qreal m12 = transform.m12(); + qreal m21 = transform.m21(); + qreal m22 = transform.m22(); + if (m12 == 0.0f && m21 == 0.0f) { + if (m11 == 1.0f && m22 == 1.0f) + return true; // 0 degrees + else if (m11 == -1.0f && m22 == -1.0f) + return true; // 180 degrees. + if(m11 == 1.0f && m22 == -1.0f) + return true; // 0 degrees inverted y. + else if(m11 == -1.0f && m22 == 1.0f) + return true; // 180 degrees inverted y. + } + } else if (type == QTransform::TxRotate) { + // Check for 90, and 270 degree rotations. + qreal m11 = transform.m11(); + qreal m12 = transform.m12(); + qreal m21 = transform.m21(); + qreal m22 = transform.m22(); + if (m11 == 0.0f && m22 == 0.0f) { + if (m12 == 1.0f && m21 == -1.0f) + return true; // 90 degrees. + else if (m12 == -1.0f && m21 == 1.0f) + return true; // 270 degrees. + else if (m12 == -1.0f && m21 == -1.0f) + return true; // 90 degrees inverted y. + else if (m12 == 1.0f && m21 == 1.0f) + return true; // 270 degrees inverted y. + } + } + return false; +} + /*! \internal @@ -4530,32 +4574,28 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte if (invertable) diff *= painter->worldTransform(); deviceData->lastTransform = painter->worldTransform(); - if (!invertable - || diff.type() > QTransform::TxTranslate - || painter->worldTransform().type() > QTransform::TxScale) { + bool allowPartialCacheExposure = false; + bool simpleTransform = invertable && diff.type() <= QTransform::TxTranslate + && transformIsSimple(painter->worldTransform()); + if (!simpleTransform) { pixModified = true; itemCache->allExposed = true; itemCache->exposed.clear(); + deviceData->cacheIndent = QPoint(); pix = QPixmap(); + } else { + allowPartialCacheExposure = deviceData->cacheIndent != QPoint(); } - // ### This is a pretty bad way to determine when to start partial - // exposure for DeviceCoordinateCache but it's the least intrusive - // approach for now. -#if 0 - // Only if the device rect isn't fully contained. - bool allowPartialCacheExposure = !viewRect.contains(deviceRect); -#else - // Only if deviceRect is 20% taller or wider than the desktop. - bool allowPartialCacheExposure = false; - if (widget) { - QRect desktopRect = QApplication::desktop()->availableGeometry(widget); - allowPartialCacheExposure = (desktopRect.width() * 1.2 < deviceRect.width() - || desktopRect.height() * 1.2 < deviceRect.height()); + // Allow partial cache exposure if the device rect isn't fully contained and + // deviceRect is 20% taller or wider than the viewRect. + if (!allowPartialCacheExposure && !viewRect.contains(deviceRect)) { + allowPartialCacheExposure = (viewRect.width() * 1.2 < deviceRect.width()) + || (viewRect.height() * 1.2 < deviceRect.height()); } -#endif + QRegion scrollExposure; - if (deviceData->cacheIndent != QPoint() || allowPartialCacheExposure) { + if (allowPartialCacheExposure) { // Part of pixmap is drawn. Either device contains viewrect (big // item covers whole screen) or parts of device are outside the // viewport. In either case the device rect must be the intersect diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 25ec040..2901dd5 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -445,6 +445,7 @@ private slots: void textItem_shortcuts(); void scroll(); void stopClickFocusPropagation(); + void deviceCoordinateCache_simpleRotations(); // task specific tests below me void task141694_textItemEnsureVisible(); @@ -10560,6 +10561,81 @@ void tst_QGraphicsItem::stopClickFocusPropagation() QVERIFY(itemWithFocus->hasFocus()); } +void tst_QGraphicsItem::deviceCoordinateCache_simpleRotations() +{ + // Make sure we don't invalidate the cache when applying simple + // (90, 180, 270, 360) rotation transforms to the item. + QGraphicsRectItem *item = new QGraphicsRectItem(0, 0, 300, 200); + item->setBrush(Qt::red); + item->setCacheMode(QGraphicsItem::DeviceCoordinateCache); + + QGraphicsScene scene; + scene.setSceneRect(0, 0, 300, 200); + scene.addItem(item); + + MyGraphicsView view(&scene); + view.show(); + QTest::qWaitForWindowShown(&view); + QTRY_VERIFY(view.repaints > 0); + + QGraphicsItemCache *itemCache = QGraphicsItemPrivate::get(item)->extraItemCache(); + Q_ASSERT(itemCache); + QPixmapCache::Key currentKey = itemCache->deviceData.value(view.viewport()).key; + + // Trigger an update and verify that the cache is unchanged. + QPixmapCache::Key oldKey = currentKey; + view.reset(); + view.viewport()->update(); + QTRY_VERIFY(view.repaints > 0); + currentKey = itemCache->deviceData.value(view.viewport()).key; + QCOMPARE(currentKey, oldKey); + + // Check 90, 180, 270 and 360 degree rotations. + for (int angle = 90; angle <= 360; angle += 90) { + // Rotate item and verify that the cache was invalidated. + oldKey = currentKey; + view.reset(); + QTransform transform; + transform.translate(150, 100); + transform.rotate(angle); + transform.translate(-150, -100); + item->setTransform(transform); + QTRY_VERIFY(view.repaints > 0); + currentKey = itemCache->deviceData.value(view.viewport()).key; + QVERIFY(currentKey != oldKey); + + // IMPORTANT PART: + // Trigger an update and verify that the cache is unchanged. + oldKey = currentKey; + view.reset(); + view.viewport()->update(); + QTRY_VERIFY(view.repaints > 0); + currentKey = itemCache->deviceData.value(view.viewport()).key; + QCOMPARE(currentKey, oldKey); + } + + // 45 degree rotation. + oldKey = currentKey; + view.reset(); + QTransform transform; + transform.translate(150, 100); + transform.rotate(45); + transform.translate(-150, -100); + item->setTransform(transform); + QTRY_VERIFY(view.repaints > 0); + currentKey = itemCache->deviceData.value(view.viewport()).key; + QVERIFY(currentKey != oldKey); + + // Trigger an update and verify that the cache was invalidated. + // We should always invalidate the cache for non-trivial transforms. + oldKey = currentKey; + view.reset(); + view.viewport()->update(); + QTRY_VERIFY(view.repaints > 0); + currentKey = itemCache->deviceData.value(view.viewport()).key; + QVERIFY(currentKey != oldKey); +} + void tst_QGraphicsItem::QTBUG_5418_textItemSetDefaultColor() { struct Item : public QGraphicsTextItem -- cgit v0.12 From 0ece9b7f45e2cda9dfeb8dbab9b51ad39433c07e Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:30 +0200 Subject: Refactored PreviewWidget in qtconfig Removed the legacy code and behavior. Now this part of qtconfig doesn't need the qt3support module to be built. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/main.cpp | 1 - tools/qtconfig/previewwidget.cpp | 15 +- tools/qtconfig/previewwidget.h | 12 +- tools/qtconfig/previewwidget.ui | 268 +++++++++++++++++++++++++++ tools/qtconfig/previewwidgetbase.cpp | 88 --------- tools/qtconfig/previewwidgetbase.h | 68 ------- tools/qtconfig/previewwidgetbase.ui | 340 ----------------------------------- tools/qtconfig/qtconfig.pro | 6 +- 8 files changed, 285 insertions(+), 513 deletions(-) create mode 100644 tools/qtconfig/previewwidget.ui delete mode 100644 tools/qtconfig/previewwidgetbase.cpp delete mode 100644 tools/qtconfig/previewwidgetbase.h delete mode 100644 tools/qtconfig/previewwidgetbase.ui diff --git a/tools/qtconfig/main.cpp b/tools/qtconfig/main.cpp index 928cf01..47b0994 100644 --- a/tools/qtconfig/main.cpp +++ b/tools/qtconfig/main.cpp @@ -39,7 +39,6 @@ ** ****************************************************************************/ -#include "ui_previewwidgetbase.h" #include "mainwindow.h" #include #include diff --git a/tools/qtconfig/previewwidget.cpp b/tools/qtconfig/previewwidget.cpp index 757b448..9fa9591 100644 --- a/tools/qtconfig/previewwidget.cpp +++ b/tools/qtconfig/previewwidget.cpp @@ -44,15 +44,16 @@ QT_BEGIN_NAMESPACE -PreviewWidget::PreviewWidget( QWidget *parent, const char *name ) - : PreviewWidgetBase( parent, name ) +PreviewWidget::PreviewWidget(QWidget *parent) + : QWidget(parent) { + setupUi(this); + // install event filter on child widgets - QObjectList l = queryList("QWidget"); - for (int i = 0; i < l.size(); ++i) { - QObject * obj = l.at(i); - obj->installEventFilter(this); - ((QWidget*)obj)->setFocusPolicy(Qt::NoFocus); + QList l = findChildren(); + foreach(QWidget* w, l) { + w->installEventFilter(this); + w->setFocusPolicy(Qt::NoFocus); } } diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index 37e9cba..ee5ae02 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -42,21 +42,21 @@ #ifndef PREVIEWWIDGET_H #define PREVIEWWIDGET_H -#include "previewwidgetbase.h" +#include "ui_previewwidget.h" QT_BEGIN_NAMESPACE -class PreviewWidget : public PreviewWidgetBase +class PreviewWidget : public QWidget, public Ui::PreviewWidget { Q_OBJECT public: - PreviewWidget( QWidget *parent = 0, const char *name = 0 ); + PreviewWidget(QWidget* parent = 0); - void closeEvent(QCloseEvent *); - bool eventFilter(QObject *, QEvent *); + void closeEvent(QCloseEvent*); + bool eventFilter(QObject*, QEvent*); }; QT_END_NAMESPACE -#endif +#endif // PREVIEWWIDGET_H diff --git a/tools/qtconfig/previewwidget.ui b/tools/qtconfig/previewwidget.ui new file mode 100644 index 0000000..12de30d --- /dev/null +++ b/tools/qtconfig/previewwidget.ui @@ -0,0 +1,268 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + PreviewWidget + + + + 0 + 0 + 414 + 318 + + + + + 0 + 0 + + + + Preview Window + + + + 6 + + + 11 + + + + + 6 + + + 0 + + + + + 6 + + + 0 + + + + + GroupBox + + + + 6 + + + 11 + + + + + RadioButton1 + + + true + + + + + + + RadioButton2 + + + + + + + RadioButton3 + + + + + + + + + + GroupBox2 + + + + 6 + + + 11 + + + + + CheckBox1 + + + true + + + + + + + CheckBox2 + + + + + + + + + + 50 + + + + + + + + + 6 + + + 0 + + + + + LineEdit + + + + + + + + ComboBox + + + + + + + + 6 + + + 0 + + + + + + + + PushButton + + + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + + 32767 + 50 + + + + true + + + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + + diff --git a/tools/qtconfig/previewwidgetbase.cpp b/tools/qtconfig/previewwidgetbase.cpp deleted file mode 100644 index 9234b6f..0000000 --- a/tools/qtconfig/previewwidgetbase.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "previewwidgetbase.h" - -#include - -QT_BEGIN_NAMESPACE - -/* - * Constructs a PreviewWidgetBase as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -PreviewWidgetBase::PreviewWidgetBase(QWidget* parent, const char* name, Qt::WindowFlags fl) - : QWidget(parent, name, fl) -{ - setupUi(this); - - - // signals and slots connections - init(); -} - -/* - * Destroys the object and frees any allocated resources - */ -PreviewWidgetBase::~PreviewWidgetBase() -{ - destroy(); - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void PreviewWidgetBase::languageChange() -{ - retranslateUi(this); -} - -void PreviewWidgetBase::init() -{ -} - -void PreviewWidgetBase::destroy() -{ -} - -QT_END_NAMESPACE diff --git a/tools/qtconfig/previewwidgetbase.h b/tools/qtconfig/previewwidgetbase.h deleted file mode 100644 index 829415e..0000000 --- a/tools/qtconfig/previewwidgetbase.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PREVIEWWIDGETBASE_H -#define PREVIEWWIDGETBASE_H - -#include "ui_previewwidgetbase.h" -#include - -QT_BEGIN_NAMESPACE - -class PreviewWidgetBase : public QWidget, public Ui::PreviewWidgetBase -{ - Q_OBJECT - -public: - PreviewWidgetBase(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = 0); - ~PreviewWidgetBase(); - -protected slots: - virtual void languageChange(); - - virtual void init(); - virtual void destroy(); - -}; - -QT_END_NAMESPACE - -#endif // PREVIEWWIDGETBASE_H diff --git a/tools/qtconfig/previewwidgetbase.ui b/tools/qtconfig/previewwidgetbase.ui deleted file mode 100644 index 701bf84..0000000 --- a/tools/qtconfig/previewwidgetbase.ui +++ /dev/null @@ -1,340 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - - PreviewWidgetBase - - - PreviewWidgetBase - - - - 0 - 0 - 378 - 236 - - - - - 1 - 1 - 0 - 0 - - - - Preview Window - - - - unnamed - - - 11 - - - 6 - - - - - unnamed - - - 0 - - - 6 - - - - - unnamed - - - 0 - - - 6 - - - - - ButtonGroup1 - - - ButtonGroup - - - - unnamed - - - 11 - - - 6 - - - - - RadioButton1 - - - RadioButton1 - - - true - - - - - - - RadioButton2 - - - RadioButton2 - - - - - - - RadioButton3 - - - RadioButton3 - - - - - - - - - - ButtonGroup2 - - - ButtonGroup2 - - - - unnamed - - - 11 - - - 6 - - - - - CheckBox1 - - - CheckBox1 - - - true - - - - - - - CheckBox2 - - - CheckBox2 - - - - - - - - - - ProgressBar1 - - - 50 - - - - - - - - - unnamed - - - 0 - - - 6 - - - - - LineEdit1 - - - LineEdit - - - - - - - ComboBox1 - - - - ComboBox - - - - - - - - unnamed - - - 0 - - - 6 - - - - - SpinBox1 - - - - - - - PushButton1 - - - PushButton - - - - - - - - - ScrollBar1 - - - Qt::Horizontal - - - - - - - Slider1 - - - Qt::Horizontal - - - - - - - textView - - - - 32767 - 50 - - - - true - - - <p> -<a href="http://qt.nokia.com">http://qt.nokia.com</a> -</p> -<p> -<a href="http://www.kde.org">http://www.kde.org</a> -</p> - - - - - - - - - - - - 20 - 20 - - - - Expanding - - - Vertical - - - - - - qPixmapFromMimeSource - diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index d1fd320..b0f2563 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -14,11 +14,11 @@ contains(QT_CONFIG, phonon) { DEFINES += HAVE_PHONON } SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp \ - mainwindowbase.cpp paletteeditoradvancedbase.cpp previewwidgetbase.cpp + mainwindowbase.cpp paletteeditoradvancedbase.cpp HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h \ - mainwindowbase.h paletteeditoradvancedbase.h previewwidgetbase.h + mainwindowbase.h paletteeditoradvancedbase.h -FORMS = mainwindowbase.ui paletteeditoradvancedbase.ui previewwidgetbase.ui +FORMS = mainwindowbase.ui paletteeditoradvancedbase.ui previewwidget.ui RESOURCES = qtconfig.qrc PROJECTNAME = Qt Configuration -- cgit v0.12 From 24ea581ffff713a591157b6ca3d4749824020a0a Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:31 +0200 Subject: Removed more legacy code from qtconfig and fixed codestyle issues Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/previewframe.cpp | 15 +++++++-------- tools/qtconfig/previewframe.h | 10 +++++----- tools/qtconfig/previewwidget.cpp | 4 ++-- tools/qtconfig/previewwidget.h | 6 +++--- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/tools/qtconfig/previewframe.cpp b/tools/qtconfig/previewframe.cpp index 3b46e8d..95d64cf 100644 --- a/tools/qtconfig/previewframe.cpp +++ b/tools/qtconfig/previewframe.cpp @@ -47,8 +47,8 @@ QT_BEGIN_NAMESPACE -PreviewFrame::PreviewFrame( QWidget *parent, const char *name ) - : QFrame( parent, name ) +PreviewFrame::PreviewFrame(QWidget *parent) + : QFrame(parent) { setMinimumSize(200, 200); setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); @@ -82,23 +82,22 @@ void PreviewFrame::setPreviewVisible(bool visible) workspace->viewport()->update(); } -Workspace::Workspace(PreviewFrame* parent, const char* name) +Workspace::Workspace(PreviewFrame* parent) : QMdiArea(parent) { previewFrame = parent; PreviewWidget *previewWidget = previewFrame->widget(); - setObjectName(QLatin1String(name)); QMdiSubWindow *frame = addSubWindow(previewWidget, Qt::Window); - frame->move(10,10); + frame->move(10, 10); frame->show(); } void Workspace::paintEvent( QPaintEvent* ) { - QPainter p (viewport()); + QPainter p(viewport()); p.fillRect(rect(), palette().color(backgroundRole()).dark()); - p.setPen( QPen( Qt::white ) ); - p.drawText ( 0, height() / 2, width(), height(), Qt::AlignHCenter, previewFrame->previewText()); + p.setPen(QPen(Qt::white)); + p.drawText(0, height() / 2, width(), height(), Qt::AlignHCenter, previewFrame->previewText()); } QT_END_NAMESPACE diff --git a/tools/qtconfig/previewframe.h b/tools/qtconfig/previewframe.h index de364e4..b21e529 100644 --- a/tools/qtconfig/previewframe.h +++ b/tools/qtconfig/previewframe.h @@ -54,11 +54,11 @@ class Workspace : public QMdiArea Q_OBJECT public: - Workspace( PreviewFrame* parent = 0, const char* name = 0 ); + Workspace(PreviewFrame *parent = 0); ~Workspace() {} protected: - void paintEvent( QPaintEvent* ); + void paintEvent(QPaintEvent *); private: PreviewFrame *previewFrame; }; @@ -68,14 +68,14 @@ class PreviewFrame : public QFrame Q_OBJECT public: - PreviewFrame( QWidget *parent = 0, const char *name = 0 ); + PreviewFrame(QWidget *parent = 0); void setPreviewPalette(QPalette); void setPreviewVisible(bool val); QString previewText() const; PreviewWidget *widget() const { return previewWidget; } private: - Workspace *workspace; - PreviewWidget *previewWidget; + Workspace *workspace; + PreviewWidget *previewWidget; QString m_previewWindowText; }; diff --git a/tools/qtconfig/previewwidget.cpp b/tools/qtconfig/previewwidget.cpp index 9fa9591..abbf669 100644 --- a/tools/qtconfig/previewwidget.cpp +++ b/tools/qtconfig/previewwidget.cpp @@ -50,8 +50,8 @@ PreviewWidget::PreviewWidget(QWidget *parent) setupUi(this); // install event filter on child widgets - QList l = findChildren(); - foreach(QWidget* w, l) { + QList l = findChildren(); + foreach(QWidget *w, l) { w->installEventFilter(this); w->setFocusPolicy(Qt::NoFocus); } diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index ee5ae02..1452932 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -51,10 +51,10 @@ class PreviewWidget : public QWidget, public Ui::PreviewWidget Q_OBJECT public: - PreviewWidget(QWidget* parent = 0); + PreviewWidget(QWidget *parent = 0); - void closeEvent(QCloseEvent*); - bool eventFilter(QObject*, QEvent*); + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *, QEvent *); }; QT_END_NAMESPACE -- cgit v0.12 From 10c33f225c65517a481610c3373ecd16f0f6dcdf Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:32 +0200 Subject: Refactored PaletteEditorAdvanced in qtconfig The widget was redrawn and now makes use of QDialogButtonBox. The ColorButton's are created more correctly for now. Also, all of the Qt4 ColorRoles are now supported. All the legacy code was dropped so it must not depend of qt3support. Some refactoring job also was done and much of unused code was removed. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 5 +- tools/qtconfig/paletteeditoradvanced.cpp | 541 ++++++++--------------- tools/qtconfig/paletteeditoradvanced.h | 60 ++- tools/qtconfig/paletteeditoradvanced.ui | 416 ++++++++++++++++++ tools/qtconfig/paletteeditoradvancedbase.cpp | 144 ------- tools/qtconfig/paletteeditoradvancedbase.h | 78 ---- tools/qtconfig/paletteeditoradvancedbase.ui | 617 --------------------------- tools/qtconfig/qtconfig.pro | 6 +- 8 files changed, 623 insertions(+), 1244 deletions(-) create mode 100644 tools/qtconfig/paletteeditoradvanced.ui delete mode 100644 tools/qtconfig/paletteeditoradvancedbase.cpp delete mode 100644 tools/qtconfig/paletteeditoradvancedbase.h delete mode 100644 tools/qtconfig/paletteeditoradvancedbase.ui diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 9675f99..3895418 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -753,9 +753,8 @@ void MainWindow::updateColorButtons() void MainWindow::tunePalette() { bool ok; - QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, - backgroundMode(), this); - if (! ok) + QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, backgroundRole(), this); + if (!ok) return; editPalette = pal; diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index 2728557..fa108e7 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -42,26 +42,41 @@ #include "paletteeditoradvanced.h" #include "colorbutton.h" -#include -#include -#include -#include -#include -#include - QT_BEGIN_NAMESPACE -PaletteEditorAdvanced::PaletteEditorAdvanced( QWidget * parent, - const char * name, bool modal, Qt::WindowFlags f ) - : PaletteEditorAdvancedBase( parent, name, modal, f ), selectedPalette(0) +PaletteEditorAdvanced::PaletteEditorAdvanced(QWidget *parent) + : QDialog(parent), selectedPalette(0) { - // work around buggy UI file - comboEffect->setEnabled(false); + setupUi(this); + + // create a ColorButton's + buttonCentral = new ColorButton(groupCentral); + buttonCentral->setToolTip(tr("Choose a color")); + buttonCentral->setWhatsThis(tr("Choose a color for the selected central color role.")); + layoutCentral->addWidget(buttonCentral); + labelCentral->setBuddy(buttonCentral); + + buttonEffect = new ColorButton(groupEffect); + buttonEffect->setToolTip(tr("Choose a color")); + buttonEffect->setWhatsThis(tr("Choose a color for the selected effect color role.")); buttonEffect->setEnabled(false); + layoutEffect->addWidget(buttonEffect); + labelEffect->setBuddy(buttonEffect); + + // signals and slots connections + connect(paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); + connect(comboCentral, SIGNAL(activated(int)), SLOT(onCentral(int))); + connect(buttonCentral, SIGNAL(clicked()), SLOT(onChooseCentralColor())); + connect(buttonEffect, SIGNAL(clicked()), SLOT(onChooseEffectColor())); + connect(comboEffect, SIGNAL(activated(int)), SLOT(onEffect(int))); + connect(checkBuildEffect, SIGNAL(toggled(bool)), SLOT(onToggleBuildEffects(bool))); + connect(checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); + connect(checkBuildInactive, SIGNAL(toggled(bool)), SLOT(onToggleBuildInactive(bool))); + connect(checkBuildDisabled, SIGNAL(toggled(bool)), SLOT(onToggleBuildDisabled(bool))); + onToggleBuildEffects(true); editPalette = QApplication::palette(); - setPreviewPalette( editPalette ); } PaletteEditorAdvanced::~PaletteEditorAdvanced() @@ -76,12 +91,12 @@ void PaletteEditorAdvanced::onToggleBuildInactive( bool v ) } if (v) { - buildInactive(); + build(QPalette::Inactive); updateColorButtons(); } } -void PaletteEditorAdvanced::onToggleBuildDisabled( bool v ) +void PaletteEditorAdvanced::onToggleBuildDisabled(bool v) { if (selectedPalette == 2) { groupCentral->setDisabled(v); @@ -89,7 +104,7 @@ void PaletteEditorAdvanced::onToggleBuildDisabled( bool v ) } if (v) { - buildDisabled(); + build(QPalette::Disabled); updateColorButtons(); } } @@ -115,385 +130,192 @@ void PaletteEditorAdvanced::paletteSelected(int p) void PaletteEditorAdvanced::onChooseCentralColor() { - switch(selectedPalette) { - case 0: - default: - mapToActiveCentralRole( buttonCentral->color() ); - break; - case 1: - mapToInactiveCentralRole( buttonCentral->color() ); - break; - case 2: - mapToDisabledCentralRole( buttonCentral->color() ); - break; + QPalette::ColorGroup group = groupFromIndex(selectedPalette); + editPalette.setColor(group, centralFromIndex(comboCentral->currentIndex()), + buttonCentral->color()); + + buildEffect(group); + if (group == QPalette::Active) { + if(checkBuildInactive->isChecked()) + build(QPalette::Inactive); + if(checkBuildDisabled->isChecked()) + build(QPalette::Disabled); } + updateColorButtons(); } void PaletteEditorAdvanced::onChooseEffectColor() { - switch(selectedPalette) { - case 0: - default: - mapToActiveEffectRole( buttonEffect->color() ); - break; - case 1: - mapToInactiveEffectRole( buttonEffect->color() ); - break; - case 2: - mapToDisabledEffectRole( buttonEffect->color() ); - break; + QPalette::ColorGroup group = groupFromIndex(selectedPalette); + editPalette.setColor(group, effectFromIndex(comboEffect->currentIndex()), + buttonEffect->color()); + + if (group == QPalette::Active) { + if(checkBuildInactive->isChecked()) + build(QPalette::Inactive); + if(checkBuildDisabled->isChecked()) + build(QPalette::Disabled); } + updateColorButtons(); } -void PaletteEditorAdvanced::onToggleBuildEffects( bool on ) +void PaletteEditorAdvanced::onToggleBuildEffects(bool on) { - if (!on) return; - buildActiveEffect(); - buildInactiveEffect(); - buildDisabledEffect(); + if (on) { + for (int i = 0; i < QPalette::NColorGroups; i++) + buildEffect(QPalette::ColorGroup(i)); + } } -QColorGroup::ColorRole PaletteEditorAdvanced::centralFromItem( int item ) +QPalette::ColorGroup PaletteEditorAdvanced::groupFromIndex(int item) { switch( item ) { - case 0: - return QColorGroup::Window; - case 1: - return QColorGroup::WindowText; - case 2: - return QColorGroup::Button; - case 3: - return QColorGroup::Base; - case 4: - return QColorGroup::Text; - case 5: - return QColorGroup::BrightText; - case 6: - return QColorGroup::ButtonText; - case 7: - return QColorGroup::Highlight; - case 8: - return QColorGroup::HighlightedText; - default: - return QColorGroup::NColorRoles; + case 0: + default: + return QPalette::Active; + case 1: + return QPalette::Inactive; + case 2: + return QPalette::Disabled; } } -QColorGroup::ColorRole PaletteEditorAdvanced::effectFromItem( int item ) + +QPalette::ColorRole PaletteEditorAdvanced::centralFromIndex(int item) { switch( item ) { case 0: - return QColorGroup::Light; + return QPalette::Window; case 1: - return QColorGroup::Midlight; + return QPalette::WindowText; case 2: - return QColorGroup::Mid; + return QPalette::Base; case 3: - return QColorGroup::Dark; + return QPalette::AlternateBase; case 4: - return QColorGroup::Shadow; + return QPalette::ToolTipBase; + case 5: + return QPalette::ToolTipText; + case 6: + return QPalette::Text; + case 7: + return QPalette::Button; + case 8: + return QPalette::ButtonText; + case 9: + return QPalette::BrightText; + case 10: + return QPalette::Highlight; + case 11: + return QPalette::HighlightedText; + case 12: + return QPalette::Link; + case 13: + return QPalette::LinkVisited; default: - return QColorGroup::NColorRoles; + return QPalette::NoRole; } } -void PaletteEditorAdvanced::onCentral( int item ) +QPalette::ColorRole PaletteEditorAdvanced::effectFromIndex(int item) { - QColor c; - - switch(selectedPalette) { + switch( item ) { case 0: - default: - c = editPalette.active().color( centralFromItem(item) ); - break; + return QPalette::Light; case 1: - c = editPalette.inactive().color( centralFromItem(item) ); - break; + return QPalette::Midlight; case 2: - c = editPalette.disabled().color( centralFromItem(item) ); - break; - } - - buttonCentral->setColor(c); -} - -void PaletteEditorAdvanced::onEffect( int item ) -{ - QColor c; - switch(selectedPalette) { - case 0: + return QPalette::Mid; + case 3: + return QPalette::Dark; + case 4: + return QPalette::Shadow; default: - c = editPalette.active().color( effectFromItem(item) ); - break; - case 1: - editPalette.inactive().color( effectFromItem(item) ); - break; - case 2: - editPalette.disabled().color( effectFromItem(item) ); - break; + return QPalette::NoRole; } - buttonEffect->setColor(c); -} - -void PaletteEditorAdvanced::mapToActiveCentralRole( const QColor& c ) -{ - QColorGroup cg = editPalette.active(); - cg.setColor( centralFromItem(comboCentral->currentItem()), c ); - editPalette.setActive( cg ); - - buildActiveEffect(); - if(checkBuildInactive->isChecked()) - buildInactive(); - if(checkBuildDisabled->isChecked()) - buildDisabled(); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToActiveEffectRole( const QColor& c ) -{ - QColorGroup cg = editPalette.active(); - cg.setColor( effectFromItem(comboEffect->currentItem()), c ); - editPalette.setActive( cg ); - - if(checkBuildInactive->isChecked()) - buildInactive(); - if(checkBuildDisabled->isChecked()) - buildDisabled(); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToActivePixmapRole( const QPixmap& pm ) -{ - QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); - QColorGroup cg = editPalette.active(); - if ( !pm.isNull() ) - cg.setBrush( role, QBrush( cg.color( role ), pm ) ); - else - cg.setBrush( role, QBrush( cg.color( role ) ) ); - editPalette.setActive( cg ); - - - buildActiveEffect(); - if(checkBuildInactive->isChecked()) - buildInactive(); - if(checkBuildDisabled->isChecked()) - buildDisabled(); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToInactiveCentralRole( const QColor& c ) -{ - QColorGroup cg = editPalette.inactive(); - cg.setColor( centralFromItem(comboCentral->currentItem()), c ); - editPalette.setInactive( cg ); - - buildInactiveEffect(); - - setPreviewPalette( editPalette ); } -void PaletteEditorAdvanced::mapToInactiveEffectRole( const QColor& c ) +void PaletteEditorAdvanced::onCentral(int item) { - QColorGroup cg = editPalette.inactive(); - cg.setColor( effectFromItem(comboEffect->currentItem()), c ); - editPalette.setInactive( cg ); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToInactivePixmapRole( const QPixmap& pm ) -{ - QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); - QColorGroup cg = editPalette.inactive(); - if ( !pm.isNull() ) - cg.setBrush( role, QBrush( cg.color( role ), pm ) ); - else - cg.setBrush( role, QBrush( cg.color( role ) ) ); - editPalette.setInactive( cg ); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToDisabledCentralRole( const QColor& c ) -{ - QColorGroup cg = editPalette.disabled(); - cg.setColor( centralFromItem(comboCentral->currentItem()), c ); - editPalette.setDisabled( cg ); - - buildDisabledEffect(); - - setPreviewPalette( editPalette ); -} - -void PaletteEditorAdvanced::mapToDisabledEffectRole( const QColor& c ) -{ - QColorGroup cg = editPalette.disabled(); - cg.setColor( effectFromItem(comboEffect->currentItem()), c ); - editPalette.setDisabled( cg ); - - setPreviewPalette( editPalette ); + QColor c = editPalette.color(groupFromIndex(selectedPalette), centralFromIndex(item)); + buttonCentral->setColor(c); } -void PaletteEditorAdvanced::mapToDisabledPixmapRole( const QPixmap& pm ) +void PaletteEditorAdvanced::onEffect(int item) { - QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); - QColorGroup cg = editPalette.disabled(); - if ( !pm.isNull() ) - cg.setBrush( role, QBrush( cg.color( role ), pm ) ); - else - cg.setBrush( role, QBrush( cg.color( role ) ) ); - - editPalette.setDisabled( cg ); - - setPreviewPalette( editPalette ); + QColor c = editPalette.color(groupFromIndex(selectedPalette), effectFromIndex(item)); + buttonEffect->setColor(c); } -void PaletteEditorAdvanced::buildActiveEffect() +QPalette PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup colorGroup, + const QPalette &basePalette) { - QColorGroup cg = editPalette.active(); - QColor btn = cg.color( QColorGroup::Button ); + QPalette result(basePalette); - QPalette temp( btn, btn ); + if (colorGroup == QPalette::Active) { + QPalette calculatedPalette(basePalette.color(colorGroup, QPalette::Button), + basePalette.color(colorGroup, QPalette::Window)); - for (int i = 0; i<5; i++) - cg.setColor( effectFromItem(i), temp.active().color( effectFromItem(i) ) ); - - editPalette.setActive( cg ); - setPreviewPalette( editPalette ); - - updateColorButtons(); -} - -void PaletteEditorAdvanced::buildInactive() -{ - editPalette.setInactive( editPalette.active() ); - if ( checkBuildEffect->isChecked() ) - buildInactiveEffect(); + for (int i = 0; i < 5; i++) { + QPalette::ColorRole effectRole = effectFromIndex(i); + result.setColor(colorGroup, effectRole, + calculatedPalette.color(colorGroup, effectRole)); + } + } else { - setPreviewPalette( editPalette ); - updateColorButtons(); + QColor btn = basePalette.color(colorGroup, QPalette::Button); + + result.setColor(colorGroup, QPalette::Light, btn.lighter()); + result.setColor(colorGroup, QPalette::Midlight, btn.lighter(115)); + result.setColor(colorGroup, QPalette::Mid, btn.darker(150)); + result.setColor(colorGroup, QPalette::Dark, btn.darker()); + result.setColor(colorGroup, QPalette::Shadow, Qt::black); } + return result; } -void PaletteEditorAdvanced::buildInactiveEffect() +void PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup colorGroup) { - QColorGroup cg = editPalette.inactive(); - - QColor light, midlight, mid, dark, shadow; - QColor btn = cg.color( QColorGroup::Button ); - - light = btn.light(150); - midlight = btn.light(115); - mid = btn.dark(150); - dark = btn.dark(); - shadow = Qt::black; - - cg.setColor( QColorGroup::Light, light ); - cg.setColor( QColorGroup::Midlight, midlight ); - cg.setColor( QColorGroup::Mid, mid ); - cg.setColor( QColorGroup::Dark, dark ); - cg.setColor( QColorGroup::Shadow, shadow ); - - editPalette.setInactive( cg ); - setPreviewPalette( editPalette ); + editPalette = buildEffect(colorGroup, editPalette); updateColorButtons(); } -void PaletteEditorAdvanced::buildDisabled() +void PaletteEditorAdvanced::build(QPalette::ColorGroup colorGroup) { - QColorGroup cg = editPalette.active(); - cg.setColor( QColorGroup::ButtonText, Qt::darkGray ); - cg.setColor( QColorGroup::WindowText, Qt::darkGray ); - cg.setColor( QColorGroup::Text, Qt::darkGray ); - cg.setColor( QColorGroup::HighlightedText, Qt::darkGray ); - editPalette.setDisabled( cg ); - - if ( checkBuildEffect->isChecked() ) - buildDisabledEffect(); - else { - setPreviewPalette( editPalette ); - updateColorButtons(); - } -} - -void PaletteEditorAdvanced::buildDisabledEffect() -{ - QColorGroup cg = editPalette.disabled(); - - QColor light, midlight, mid, dark, shadow; - QColor btn = cg.color( QColorGroup::Button ); - - light = btn.light(150); - midlight = btn.light(115); - mid = btn.dark(150); - dark = btn.dark(); - shadow = Qt::black; + if (colorGroup != QPalette::Active) { + for (int i = 0; i < QPalette::NColorRoles; i++) + editPalette.setColor(colorGroup, QPalette::ColorRole(i), + editPalette.color(QPalette::Active, QPalette::ColorRole(i))); - cg.setColor( QColorGroup::Light, light ); - cg.setColor( QColorGroup::Midlight, midlight ); - cg.setColor( QColorGroup::Mid, mid ); - cg.setColor( QColorGroup::Dark, dark ); - cg.setColor( QColorGroup::Shadow, shadow ); + if (colorGroup == QPalette::Disabled) { + editPalette.setColor(colorGroup, QPalette::ButtonText, Qt::darkGray); + editPalette.setColor(colorGroup, QPalette::WindowText, Qt::darkGray); + editPalette.setColor(colorGroup, QPalette::Text, Qt::darkGray); + editPalette.setColor(colorGroup, QPalette::HighlightedText, Qt::darkGray); + } - editPalette.setDisabled( cg ); - setPreviewPalette( editPalette ); - updateColorButtons(); -} - -void PaletteEditorAdvanced::setPreviewPalette( const QPalette& pal ) -{ - QColorGroup cg; - - switch (selectedPalette) { - case 0: - default: - cg = pal.active(); - break; - case 1: - cg = pal.inactive(); - break; - case 2: - cg = pal.disabled(); - break; + if (checkBuildEffect->isChecked()) + buildEffect(colorGroup); + else + updateColorButtons(); } - previewPalette.setActive( cg ); - previewPalette.setInactive( cg ); - previewPalette.setDisabled( cg ); } void PaletteEditorAdvanced::updateColorButtons() { - QColor central, effect; - switch (selectedPalette) { - case 0: - default: - central = editPalette.active().color( centralFromItem( comboCentral->currentItem() ) ); - effect = editPalette.active().color( effectFromItem( comboEffect->currentItem() ) ); - break; - case 1: - central = editPalette.inactive().color( centralFromItem( comboCentral->currentItem() ) ); - effect = editPalette.inactive().color( effectFromItem( comboEffect->currentItem() ) ); - break; - case 2: - central = editPalette.disabled().color( centralFromItem( comboCentral->currentItem() ) ); - effect = editPalette.disabled().color( effectFromItem( comboEffect->currentItem() ) ); - break; - } - - buttonCentral->setColor(central); - buttonEffect->setColor(effect); + QPalette::ColorGroup colorGroup = groupFromIndex(selectedPalette); + buttonCentral->setColor(editPalette.color(colorGroup, + centralFromIndex(comboCentral->currentIndex()))); + buttonEffect->setColor(editPalette.color(colorGroup, + effectFromIndex(comboEffect->currentIndex()))); } -void PaletteEditorAdvanced::setPal( const QPalette& pal ) +void PaletteEditorAdvanced::setPal(const QPalette &pal) { editPalette = pal; - setPreviewPalette( pal ); updateColorButtons(); } @@ -502,51 +324,51 @@ QPalette PaletteEditorAdvanced::pal() const return editPalette; } -void PaletteEditorAdvanced::setupBackgroundMode( Qt::BackgroundMode mode ) +void PaletteEditorAdvanced::setupBackgroundRole(QPalette::ColorRole role) { int initRole = 0; - switch( mode ) { - case Qt::PaletteBackground: + switch(role) { + case QPalette::Window: initRole = 0; break; - case Qt::PaletteForeground: + case QPalette::WindowText: initRole = 1; break; - case Qt::PaletteButton: + case QPalette::Base: initRole = 2; break; - case Qt::PaletteBase: + case QPalette::AlternateBase: initRole = 3; break; - case Qt::PaletteText: + case QPalette::ToolTipBase: initRole = 4; break; - case Qt::PaletteBrightText: + case QPalette::ToolTipText: initRole = 5; break; - case Qt::PaletteButtonText: + case QPalette::Text: initRole = 6; break; - case Qt::PaletteHighlight: + case QPalette::Button: initRole = 7; break; - case Qt::PaletteHighlightedText: + case QPalette::ButtonText: initRole = 8; break; - case Qt::PaletteLight: + case QPalette::BrightText: initRole = 9; break; - case Qt::PaletteMidlight: + case QPalette::Highlight: initRole = 10; break; - case Qt::PaletteDark: + case QPalette::HighlightedText: initRole = 11; break; - case Qt::PaletteMid: + case QPalette::Link: initRole = 12; break; - case Qt::PaletteShadow: + case QPalette::LinkVisited: initRole = 13; break; default: @@ -554,36 +376,27 @@ void PaletteEditorAdvanced::setupBackgroundMode( Qt::BackgroundMode mode ) break; } - if ( initRole <= -1 ) return; - - if (initRole > 8 ) { - comboEffect->setCurrentItem( initRole - 9 ); - } - else { - comboCentral->setCurrentItem( initRole ); - } + if (initRole != -1) + comboCentral->setCurrentIndex(initRole); } -QPalette PaletteEditorAdvanced::getPalette( bool *ok, const QPalette &init, - Qt::BackgroundMode mode, QWidget* parent, - const char* name ) +QPalette PaletteEditorAdvanced::getPalette(bool *ok, const QPalette &init, + QPalette::ColorRole backgroundRole, QWidget *parent) { - PaletteEditorAdvanced* dlg = new PaletteEditorAdvanced( parent, name, true ); - dlg->setupBackgroundMode( mode ); + PaletteEditorAdvanced *dlg = new PaletteEditorAdvanced(parent); + dlg->setupBackgroundRole(backgroundRole); if ( init != QPalette() ) dlg->setPal( init ); int resultCode = dlg->exec(); QPalette result = init; - if ( resultCode == QDialog::Accepted ) { - if ( ok ) - *ok = true; + if (resultCode == QDialog::Accepted) result = dlg->pal(); - } else { - if ( ok ) - *ok = false; - } + + if (ok) + *ok = resultCode; + delete dlg; return result; } diff --git a/tools/qtconfig/paletteeditoradvanced.h b/tools/qtconfig/paletteeditoradvanced.h index a1eb8e7..f70648b 100644 --- a/tools/qtconfig/paletteeditoradvanced.h +++ b/tools/qtconfig/paletteeditoradvanced.h @@ -42,69 +42,59 @@ #ifndef PALETTEEDITORADVANCED_H #define PALETTEEDITORADVANCED_H -#include "paletteeditoradvancedbase.h" +#include "ui_paletteeditoradvanced.h" QT_BEGIN_NAMESPACE -class PaletteEditorAdvanced : public PaletteEditorAdvancedBase +class ColorButton; + +class PaletteEditorAdvanced : public QDialog, public Ui::PaletteEditorAdvanced { Q_OBJECT public: - PaletteEditorAdvanced( QWidget * parent=0, const char * name=0, - bool modal=false, Qt::WindowFlags f=0 ); + PaletteEditorAdvanced(QWidget *parent = 0); ~PaletteEditorAdvanced(); - static QPalette getPalette( bool *ok, const QPalette &pal, Qt::BackgroundMode mode = Qt::PaletteBackground, - QWidget* parent = 0, const char* name = 0 ); + static QPalette getPalette( bool *ok, const QPalette &pal, + QPalette::ColorRole backgroundRole = QPalette::Window, + QWidget *parent = 0 ); + + static QPalette buildEffect(QPalette::ColorGroup colorGroup, const QPalette &basePalette); protected slots: void paletteSelected(int); - void onCentral( int ); - void onEffect( int ); + void onCentral(int); + void onEffect(int); void onChooseCentralColor(); void onChooseEffectColor(); - void onToggleBuildEffects( bool ); - void onToggleBuildInactive( bool ); - void onToggleBuildDisabled( bool ); + void onToggleBuildEffects(bool); + void onToggleBuildInactive(bool); + void onToggleBuildDisabled(bool); protected: - void mapToActiveCentralRole( const QColor& ); - void mapToActiveEffectRole( const QColor& ); - void mapToActivePixmapRole( const QPixmap& ); - void mapToInactiveCentralRole( const QColor& ); - void mapToInactiveEffectRole( const QColor& ); - void mapToInactivePixmapRole( const QPixmap& ); - void mapToDisabledCentralRole( const QColor& ); - void mapToDisabledEffectRole( const QColor& ); - void mapToDisabledPixmapRole( const QPixmap& ); - - - void buildPalette(); - void buildActiveEffect(); - void buildInactive(); - void buildInactiveEffect(); - void buildDisabled(); - void buildDisabledEffect(); + void buildEffect(QPalette::ColorGroup); + void build(QPalette::ColorGroup); private: - void setPreviewPalette( const QPalette& ); void updateColorButtons(); - void setupBackgroundMode( Qt::BackgroundMode ); + void setupBackgroundRole(QPalette::ColorRole); QPalette pal() const; - void setPal( const QPalette& ); + void setPal(const QPalette &); - QColorGroup::ColorRole centralFromItem( int ); - QColorGroup::ColorRole effectFromItem( int ); + static QPalette::ColorGroup groupFromIndex(int); + static QPalette::ColorRole centralFromIndex(int); + static QPalette::ColorRole effectFromIndex(int); QPalette editPalette; - QPalette previewPalette; int selectedPalette; + ColorButton *buttonCentral; + ColorButton *buttonEffect; }; QT_END_NAMESPACE -#endif +#endif // PALETTEEDITORADVANCED_H diff --git a/tools/qtconfig/paletteeditoradvanced.ui b/tools/qtconfig/paletteeditoradvanced.ui new file mode 100644 index 0000000..b1d6b95 --- /dev/null +++ b/tools/qtconfig/paletteeditoradvanced.ui @@ -0,0 +1,416 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + PaletteEditorAdvanced + + + + 0 + 0 + 239 + 344 + + + + Tune Palette + + + + + + + + Select &Palette: + + + paletteCombo + + + + + + + + Active Palette + + + + + Inactive Palette + + + + + Disabled Palette + + + + + + + + + + + 0 + 0 + + + + Auto + + + + + + Build inactive palette from active + + + true + + + + + + + Build disabled palette from active + + + true + + + + + + + + + + Central color &roles + + + + + + Choose central color role + + + <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p> + + + + Window + + + + + WindowText + + + + + Base + + + + + AlternateBase + + + + + ToolTipBase + + + + + ToolTipText + + + + + Text + + + + + Button + + + + + ButtonText + + + + + BrightText + + + + + Highlight + + + + + HighlightedText + + + + + Link + + + + + LinkVisited + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + &Select Color: + + + + + + + + + + + + 3-D shadow &effects + + + + + + + + Generate shadings + + + Check to let 3D-effect colors be calculated from button-color. + + + Build &from button color + + + true + + + + + + + false + + + Choose 3D-effect color role + + + <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul> + + + + Light + + + + + Midlight + + + + + Mid + + + + + Dark + + + + + Shadow + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Select Co&lor: + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + PaletteEditorAdvanced + accept() + + + 238 + 384 + + + 157 + 274 + + + + + buttonBox + rejected() + PaletteEditorAdvanced + reject() + + + 306 + 390 + + + 286 + 274 + + + + + checkBuildEffect + toggled(bool) + comboEffect + setDisabled(bool) + + + 82 + 262 + + + 190 + 262 + + + + + diff --git a/tools/qtconfig/paletteeditoradvancedbase.cpp b/tools/qtconfig/paletteeditoradvancedbase.cpp deleted file mode 100644 index 708c834..0000000 --- a/tools/qtconfig/paletteeditoradvancedbase.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "paletteeditoradvancedbase.h" -#include "colorbutton.h" - -#include - -QT_BEGIN_NAMESPACE - -/* - * Constructs a PaletteEditorAdvancedBase as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * true to construct a modal dialog. - */ -PaletteEditorAdvancedBase::PaletteEditorAdvancedBase(QWidget* parent, const char* name, bool modal, Qt::WindowFlags fl) - : QDialog(parent, name, modal, fl) -{ - setupUi(this); - - - // signals and slots connections - connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept())); - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject())); - connect(paletteCombo, SIGNAL(activated(int)), this, SLOT(paletteSelected(int))); - connect(comboCentral, SIGNAL(activated(int)), this, SLOT(onCentral(int))); - connect(buttonCentral, SIGNAL(clicked()), this, SLOT(onChooseCentralColor())); - connect(buttonEffect, SIGNAL(clicked()), this, SLOT(onChooseEffectColor())); - connect(comboEffect, SIGNAL(activated(int)), this, SLOT(onEffect(int))); - connect(checkBuildEffect, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildEffects(bool))); - connect(checkBuildEffect, SIGNAL(toggled(bool)), comboEffect, SLOT(setDisabled(bool))); - connect(checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); - connect(checkBuildInactive, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildInactive(bool))); - connect(checkBuildDisabled, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildDisabled(bool))); - init(); -} - -/* - * Destroys the object and frees any allocated resources - */ -PaletteEditorAdvancedBase::~PaletteEditorAdvancedBase() -{ - destroy(); - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void PaletteEditorAdvancedBase::languageChange() -{ - retranslateUi(this); -} - -void PaletteEditorAdvancedBase::init() -{ -} - -void PaletteEditorAdvancedBase::destroy() -{ -} - -void PaletteEditorAdvancedBase::onCentral(int) -{ - qWarning("PaletteEditorAdvancedBase::onCentral(int): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onChooseCentralColor() -{ - qWarning("PaletteEditorAdvancedBase::onChooseCentralColor(): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onChooseEffectColor() -{ - qWarning("PaletteEditorAdvancedBase::onChooseEffectColor(): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onEffect(int) -{ - qWarning("PaletteEditorAdvancedBase::onEffect(int): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onToggleBuildDisabled(bool) -{ - qWarning("PaletteEditorAdvancedBase::onToggleBuildDisabled(bool): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onToggleBuildEffects(bool) -{ - qWarning("PaletteEditorAdvancedBase::onToggleBuildEffects(bool): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::onToggleBuildInactive(bool) -{ - qWarning("PaletteEditorAdvancedBase::onToggleBuildInactive(bool): Not implemented yet"); -} - -void PaletteEditorAdvancedBase::paletteSelected(int) -{ - qWarning("PaletteEditorAdvancedBase::paletteSelected(int): Not implemented yet"); -} - -QT_END_NAMESPACE diff --git a/tools/qtconfig/paletteeditoradvancedbase.h b/tools/qtconfig/paletteeditoradvancedbase.h deleted file mode 100644 index ee14a26..0000000 --- a/tools/qtconfig/paletteeditoradvancedbase.h +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PALETTEEDITORADVANCEDBASE_H -#define PALETTEEDITORADVANCEDBASE_H - -#include "ui_paletteeditoradvancedbase.h" -#include - -QT_BEGIN_NAMESPACE - -class ColorButton; - -class PaletteEditorAdvancedBase : public QDialog, public Ui::PaletteEditorAdvancedBase -{ - Q_OBJECT - -public: - PaletteEditorAdvancedBase(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WindowFlags fl = 0); - ~PaletteEditorAdvancedBase(); - -protected slots: - virtual void languageChange(); - - virtual void init(); - virtual void destroy(); - virtual void onCentral(int); - virtual void onChooseCentralColor(); - virtual void onChooseEffectColor(); - virtual void onEffect(int); - virtual void onToggleBuildDisabled(bool); - virtual void onToggleBuildEffects(bool); - virtual void onToggleBuildInactive(bool); - virtual void paletteSelected(int); - -}; - -QT_END_NAMESPACE - -#endif // PALETTEEDITORADVANCEDBASE_H diff --git a/tools/qtconfig/paletteeditoradvancedbase.ui b/tools/qtconfig/paletteeditoradvancedbase.ui deleted file mode 100644 index 12c5a7d..0000000 --- a/tools/qtconfig/paletteeditoradvancedbase.ui +++ /dev/null @@ -1,617 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - - PaletteEditorAdvancedBase - - - PaletteEditorAdvancedBase - - - true - - - - 0 - 0 - 295 - 346 - - - - Tune Palette - - - true - - - <b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p> - - - - unnamed - - - 11 - - - 6 - - - - - unnamed - - - 0 - - - 6 - - - - - TextLabel1 - - - Select &Palette: - - - paletteCombo - - - - - - - paletteCombo - - - - Active Palette - - - - - Inactive Palette - - - - - Disabled Palette - - - - - - - - - - ButtonGroup1 - - - - 5 - 4 - 0 - 0 - - - - Auto - - - - unnamed - - - 11 - - - 6 - - - - - checkBuildInactive - - - Build inactive palette from active - - - true - - - - - - - checkBuildDisabled - - - Build disabled palette from active - - - true - - - - - - - - - - groupCentral - - - Central color &roles - - - - unnamed - - - 11 - - - 6 - - - - - comboCentral - - - Choose central color role - - - <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p> - - - - Window - - - - - WindowText - - - - - Button - - - - - Base - - - - - Text - - - - - BrightText - - - - - ButtonText - - - - - Highlight - - - - - HighlightedText - - - - - - - - unnamed - - - 0 - - - 6 - - - - - - 20 - 20 - - - - Expanding - - - Horizontal - - - - - - - labelCentral - - - - 1 - 1 - 0 - 0 - - - - - 0 - 0 - - - - &Select Color: - - - buttonCentral - - - - - - - buttonCentral - - - - 0 - 0 - 0 - 0 - - - - Qt::TabFocus - - - Choose a color - - - Choose a color for the selected central color role. - - - - - - - - - - - - groupEffect - - - 3-D shadow &effects - - - - unnamed - - - 11 - - - 6 - - - - - unnamed - - - 0 - - - 6 - - - - - checkBuildEffect - - - Build &from button color - - - true - - - Generate shadings - - - Check to let 3D-effect colors be calculated from button-color. - - - - - - - comboEffect - - - Choose 3D-effect color role - - - <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul> - - - - Light - - - - - Midlight - - - - - Mid - - - - - Dark - - - - - Shadow - - - - - - - - - - unnamed - - - 0 - - - 6 - - - - - - 20 - 20 - - - - Expanding - - - Horizontal - - - - - - - labelEffect - - - - 1 - 1 - 0 - 0 - - - - - 0 - 0 - - - - Select Co&lor: - - - buttonEffect - - - - - - - buttonEffect - - - - 0 - 0 - 0 - 0 - - - - Qt::TabFocus - - - Choose a color - - - Choose a color for the selected effect color role. - - - - - - - - - - - - unnamed - - - 0 - - - 6 - - - - - - 20 - 20 - - - - Expanding - - - Horizontal - - - - - - - buttonOk - - - OK - - - true - - - true - - - Close dialog and apply all changes. - - - - - - - buttonCancel - - - Cancel - - - true - - - Close dialog and discard all changes. - - - - - - - - - - - ColorButton - -
colorbutton.h
- - 40 - 25 - - 0 - - 5 - 5 - - image0 - - color - pixmap - -
-
- - buttonOk - buttonCancel - paletteCombo - checkBuildInactive - checkBuildDisabled - comboCentral - buttonCentral - checkBuildEffect - comboEffect - buttonEffect - - - - 789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758 - - -
diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index b0f2563..f4ddebe 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -14,11 +14,11 @@ contains(QT_CONFIG, phonon) { DEFINES += HAVE_PHONON } SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp \ - mainwindowbase.cpp paletteeditoradvancedbase.cpp + mainwindowbase.cpp HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h \ - mainwindowbase.h paletteeditoradvancedbase.h + mainwindowbase.h -FORMS = mainwindowbase.ui paletteeditoradvancedbase.ui previewwidget.ui +FORMS = mainwindowbase.ui paletteeditoradvanced.ui previewwidget.ui RESOURCES = qtconfig.qrc PROJECTNAME = Qt Configuration -- cgit v0.12 From 5999b2ac29c1a144d5edda8e6916bd05bbc4727e Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:33 +0200 Subject: Refactored the MainWindow in qtconfig qtconfig can now be fully build without qt3support module. Removed some legacy and unused code, changed one of labels on widget to reflect the real meaning of configuration parameter. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 451 ++++------ tools/qtconfig/mainwindow.h | 13 +- tools/qtconfig/mainwindow.ui | 1377 +++++++++++++++++++++++++++++ tools/qtconfig/mainwindowbase.cpp | 250 ------ tools/qtconfig/mainwindowbase.h | 95 -- tools/qtconfig/mainwindowbase.ui | 1384 ------------------------------ tools/qtconfig/paletteeditoradvanced.cpp | 1 - tools/qtconfig/qtconfig.pro | 8 +- 8 files changed, 1559 insertions(+), 2020 deletions(-) create mode 100644 tools/qtconfig/mainwindow.ui delete mode 100644 tools/qtconfig/mainwindowbase.cpp delete mode 100644 tools/qtconfig/mainwindowbase.h delete mode 100644 tools/qtconfig/mainwindowbase.ui diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 3895418..81d7813 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -59,7 +59,6 @@ #include #include #include -#include #include #include #include @@ -154,36 +153,20 @@ static const char *phonon_text = "

It is reccommended to leave all settings on \"Auto\" to let " "Phonon determine your settings automatically."; -static QColorGroup::ColorRole centralFromItem( int item ) -{ - switch( item ) { - case 0: return QColorGroup::Window; - case 1: return QColorGroup::WindowText; - case 2: return QColorGroup::Button; - case 3: return QColorGroup::Base; - case 4: return QColorGroup::Text; - case 5: return QColorGroup::BrightText; - case 6: return QColorGroup::ButtonText; - case 7: return QColorGroup::Highlight; - case 8: return QColorGroup::HighlightedText; - default: return QColorGroup::NColorRoles; - } -} - -static QColorGroup::ColorRole effectFromItem( int item ) +QPalette::ColorGroup MainWindow::groupFromIndex(int item) { switch( item ) { - case 0: return QColorGroup::Light; - case 1: return QColorGroup::Midlight; - case 2: return QColorGroup::Mid; - case 3: return QColorGroup::Dark; - case 4: return QColorGroup::Shadow; - default: return QColorGroup::NColorRoles; + case 0: + default: + return QPalette::Active; + case 1: + return QPalette::Inactive; + case 2: + return QPalette::Disabled; } } - static void setStyleHelper(QWidget *w, QStyle *s) { const QObjectList children = w->children(); @@ -197,9 +180,52 @@ static void setStyleHelper(QWidget *w, QStyle *s) MainWindow::MainWindow() - : MainWindowBase(0, "main window"), - editPalette(palette()), previewPalette(palette()), previewstyle(0) -{ + : QMainWindow(), editPalette(palette()), previewPalette(palette()), previewstyle(0) +{ + setupUi(this); + statusBar(); + + // signals and slots connections + connect(fontpathlineedit, SIGNAL(returnPressed()), SLOT(addFontpath())); + connect(PushButton15, SIGNAL(clicked()), SLOT(addFontpath())); + connect(PushButton1, SIGNAL(clicked()), SLOT(addSubstitute())); + connect(PushButton14, SIGNAL(clicked()), SLOT(browseFontpath())); + connect(stylecombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(psizecombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(PushButton12, SIGNAL(clicked()), SLOT(downFontpath())); + connect(PushButton3, SIGNAL(clicked()), SLOT(downSubstitute())); + connect(familycombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); + connect(fileExitAction, SIGNAL(activated()), SLOT(fileExit())); + connect(fileSaveAction, SIGNAL(activated()), SLOT(fileSave())); + connect(helpAboutAction, SIGNAL(activated()), SLOT(helpAbout())); + connect(helpAboutQtAction, SIGNAL(activated()), SLOT(helpAboutQt())); + connect(TabWidget3, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); + connect(paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); + connect(PushButton13, SIGNAL(clicked()), SLOT(removeFontpath())); + connect(PushButton4, SIGNAL(clicked()), SLOT(removeSubstitute())); + connect(toolboxeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(dcispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(cfispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(wslspin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(menueffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(comboeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(audiosinkCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(videomodeCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(tooltipeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(strutwidth, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(strutheight, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(effectcheckbox, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(resolvelinks, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(fontembeddingcheckbox, SIGNAL(clicked()), SLOT(somethingModified())); + connect(rtlExtensions, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(inputStyle, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(inputMethod, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(gstylecombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); + connect(familysubcombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); + connect(btnAdvanced, SIGNAL(clicked()), SLOT(tunePalette())); + connect(PushButton11, SIGNAL(clicked()), SLOT(upFontpath())); + connect(PushButton2, SIGNAL(clicked()), SLOT(upSubstitute())); + modified = true; desktopThemeName = tr("Desktop Settings (Default)"); QStringList gstyles = QStyleFactory::keys(); @@ -207,31 +233,31 @@ MainWindow::MainWindow() gstylecombo->addItem(desktopThemeName); gstylecombo->setItemData(gstylecombo->findText(desktopThemeName), tr("Choose style and palette based on your desktop settings."), Qt::ToolTipRole); - gstylecombo->insertStringList(gstyles); + gstylecombo->addItems(gstyles); QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QString currentstyle = settings.value(QLatin1String("style")).toString(); if (currentstyle.isEmpty()) { - gstylecombo->setCurrentItem(gstylecombo->findText(desktopThemeName)); - currentstyle = QLatin1String(QApplication::style()->name()); + gstylecombo->setCurrentIndex(gstylecombo->findText(desktopThemeName)); + currentstyle = QApplication::style()->objectName(); } else { int index = gstylecombo->findText(currentstyle, Qt::MatchFixedString); if (index != -1) { - gstylecombo->setCurrentItem(index); + gstylecombo->setCurrentIndex(index); } else { // we give up - gstylecombo->insertItem(QLatin1String("Unknown")); - gstylecombo->setCurrentItem(gstylecombo->count() - 1); + gstylecombo->addItem(QLatin1String("Unknown")); + gstylecombo->setCurrentIndex(gstylecombo->count() - 1); } } buttonMainColor->setColor(palette().color(QPalette::Active, - QColorGroup::Button)); - buttonMainColor2->setColor(palette().color(QPalette::Active, - QColorGroup::Window)); + QPalette::Button)); + buttonWindowColor->setColor(palette().color(QPalette::Active, + QPalette::Window)); connect(buttonMainColor, SIGNAL(colorChanged(QColor)), this, SLOT(buildPalette())); - connect(buttonMainColor2, SIGNAL(colorChanged(QColor)), + connect(buttonWindowColor, SIGNAL(colorChanged(QColor)), this, SLOT(buildPalette())); if (X11->desktopEnvironment == DE_KDE) @@ -241,7 +267,7 @@ MainWindow::MainWindow() QFontDatabase db; QStringList families = db.families(); - familycombo->insertStringList(families); + familycombo->addItems(families); QStringList fs = families; QStringList fs2 = QFont::substitutions(); @@ -252,13 +278,12 @@ MainWindow::MainWindow() fsit++; } fs.sort(); - familysubcombo->insertStringList(fs); + familysubcombo->addItems(fs); - choosesubcombo->insertStringList(families); - Q3ValueList sizes = db.standardSizes(); - Q3ValueList::Iterator it = sizes.begin(); - while (it != sizes.end()) - psizecombo->insertItem(QString::number(*it++)); + choosesubcombo->addItems(families); + QList sizes = db.standardSizes(); + foreach(int i, sizes) + psizecombo->addItem(QString::number(i)); dcispin->setValue(QApplication::doubleClickInterval()); cfispin->setValue(QApplication::cursorFlashTime()); @@ -270,20 +295,20 @@ MainWindow::MainWindow() effectbase->setEnabled(effectcheckbox->isChecked()); if (QApplication::isEffectEnabled(Qt::UI_FadeMenu)) - menueffect->setCurrentItem(2); + menueffect->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateMenu)) - menueffect->setCurrentItem(1); + menueffect->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo)) - comboeffect->setCurrentItem(1); + comboeffect->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)) - tooltipeffect->setCurrentItem(2); + tooltipeffect->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) - tooltipeffect->setCurrentItem(1); + tooltipeffect->setCurrentIndex(1); if ( QApplication::isEffectEnabled( Qt::UI_AnimateToolBox ) ) - toolboxeffect->setCurrentItem( 1 ); + toolboxeffect->setCurrentIndex( 1 ); QSize globalStrut = QApplication::globalStrut(); strutwidth->setValue(globalStrut.width()); @@ -306,10 +331,10 @@ MainWindow::MainWindow() if (i == -1) // no clue about the current font i = 0; - familycombo->setCurrentItem(i); + familycombo->setCurrentIndex(i); QStringList styles = db.styles(familycombo->currentText()); - stylecombo->insertStringList(styles); + stylecombo->addItems(styles); QString stylestring = db.styleString(QApplication::font()); sit = styles.begin(); @@ -328,29 +353,31 @@ MainWindow::MainWindow() i = possible; if (i == -1) // no clue about the current font i = 0; - stylecombo->setCurrentItem(i); + stylecombo->setCurrentIndex(i); i = 0; for (int psize = QApplication::font().pointSize(); i < psizecombo->count(); ++i) { - const int sz = psizecombo->text(i).toInt(); + const int sz = psizecombo->itemText(i).toInt(); if (sz == psize) { - psizecombo->setCurrentItem(i); + psizecombo->setCurrentIndex(i); break; } else if(sz > psize) { psizecombo->insertItem(i, QString::number(psize)); - psizecombo->setCurrentItem(i); + psizecombo->setCurrentIndex(i); break; } } QStringList subs = QFont::substitutes(familysubcombo->currentText()); sublistbox->clear(); - sublistbox->insertStringList(subs); + sublistbox->insertItems(0, subs); rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false).toBool()); #ifdef Q_WS_X11 - inputStyle->setCurrentText(settings.value(QLatin1String("XIMInputStyle"), trUtf8("On The Spot")).toString()); + QString settingsInputStyle = settings.value(QLatin1String("XIMInputStyle")).toString(); + if (!settingsInputStyle.isEmpty()) + inputStyle->setCurrentIndex(inputStyle->findText(settingsInputStyle)); #else inputStyle->hide(); inputStyleLabel->hide(); @@ -381,7 +408,7 @@ MainWindow::MainWindow() fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true).toBool()); fontpaths = settings.value(QLatin1String("fontPath")).toStringList(); - fontpathlistbox->insertStringList(fontpaths); + fontpathlistbox->insertItems(0, fontpaths); audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); audiosinkCombo->setItemData(audiosinkCombo->findText(tr("Auto (default)")), @@ -397,9 +424,9 @@ MainWindow::MainWindow() gchar *versionString = gst_version_string(); gstversionLabel->setText(QLatin1String(versionString)); g_free(versionString); - GList* factoryList = gst_registry_get_feature_list(gst_registry_get_default (), GST_TYPE_ELEMENT_FACTORY); + GList *factoryList = gst_registry_get_feature_list(gst_registry_get_default (), GST_TYPE_ELEMENT_FACTORY); QString name, klass, description; - for (GList* iter = g_list_first(factoryList) ; iter != NULL ; iter = g_list_next(iter)) { + for (GList *iter = g_list_first(factoryList) ; iter != NULL ; iter = g_list_next(iter)) { GstPluginFeature *feature = GST_PLUGIN_FEATURE(iter->data); klass = QLatin1String(gst_element_factory_get_klass(GST_ELEMENT_FACTORY(feature))); if (klass == QLatin1String("Sink/Audio")) { @@ -439,8 +466,8 @@ MainWindow::MainWindow() QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString(); - audiosinkCombo->setCurrentItem(audiosinkCombo->findData(audioSink)); - videomodeCombo->setCurrentItem(videomodeCombo->findData(videoMode)); + audiosinkCombo->setCurrentIndex(audiosinkCombo->findData(audioSink)); + videomodeCombo->setCurrentIndex(videomodeCombo->findData(videoMode)); settings.endGroup(); // Qt @@ -480,15 +507,15 @@ void MainWindow::fileSave() bool overrideDesktopSettings = (gstylecombo->currentText() != desktopThemeName); if (overrideDesktopSettings) { int i; - for (i = 0; i < QColorGroup::NColorRoles; i++) + for (i = 0; i < QPalette::NColorRoles; i++) actcg << editPalette.color(QPalette::Active, - (QColorGroup::ColorRole) i).name(); - for (i = 0; i < QColorGroup::NColorRoles; i++) + (QPalette::ColorRole) i).name(); + for (i = 0; i < QPalette::NColorRoles; i++) inactcg << editPalette.color(QPalette::Inactive, - (QColorGroup::ColorRole) i).name(); - for (i = 0; i < QColorGroup::NColorRoles; i++) + (QPalette::ColorRole) i).name(); + for (i = 0; i < QPalette::NColorRoles; i++) discg << editPalette.color(QPalette::Disabled, - (QColorGroup::ColorRole) i).name(); + (QPalette::ColorRole) i).name(); } settings.setValue(QLatin1String("font"), font.toString()); @@ -535,21 +562,21 @@ void MainWindow::fileSave() if (effectcheckbox->isChecked()) { effects << QLatin1String("general"); - switch (menueffect->currentItem()) { + switch (menueffect->currentIndex()) { case 1: effects << QLatin1String("animatemenu"); break; case 2: effects << QLatin1String("fademenu"); break; } - switch (comboeffect->currentItem()) { + switch (comboeffect->currentIndex()) { case 1: effects << QLatin1String("animatecombo"); break; } - switch (tooltipeffect->currentItem()) { + switch (tooltipeffect->currentIndex()) { case 1: effects << QLatin1String("animatetooltip"); break; case 2: effects << QLatin1String("fadetooltip"); break; } - switch ( toolboxeffect->currentItem() ) { + switch ( toolboxeffect->currentIndex() ) { case 1: effects << QLatin1String("animatetoolbox"); break; } } else @@ -595,149 +622,28 @@ void MainWindow::setModified(bool m) void MainWindow::buildPalette() { - int i; - QColorGroup cg; - QColor btn = buttonMainColor->color(); - QColor back = buttonMainColor2->color(); - QPalette automake( btn, back ); - - for (i = 0; i<9; i++) - cg.setColor( centralFromItem(i), automake.active().color( centralFromItem(i) ) ); - - editPalette.setActive( cg ); - buildActiveEffect(); - - cg = editPalette.inactive(); - - QPalette temp( editPalette.active().color( QColorGroup::Button ), - editPalette.active().color( QColorGroup::Window ) ); + QPalette temp(buttonMainColor->color(), buttonWindowColor->color()); + for (int i = 0; icurrentIndex()); - switch (paletteCombo->currentItem()) { - case 0: - default: - cg = pal.active(); - break; - case 1: - cg = pal.inactive(); - break; - case 2: - cg = pal.disabled(); - break; + for (int i = 0; isetPreviewPalette(previewPalette); } @@ -745,16 +651,17 @@ void MainWindow::setPreviewPalette( const QPalette& pal ) void MainWindow::updateColorButtons() { - buttonMainColor->setColor( editPalette.active().color( QColorGroup::Button )); - buttonMainColor2->setColor( editPalette.active().color( QColorGroup::Window )); + buttonMainColor->setColor( editPalette.color( QPalette::Active, QPalette::Button )); + buttonWindowColor->setColor( editPalette.color( QPalette::Active, QPalette::Window )); } void MainWindow::tunePalette() { bool ok; - QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, backgroundRole(), this); - if (!ok) + QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, + backgroundRole(), this); + if (! ok) return; editPalette = pal; @@ -799,8 +706,8 @@ void MainWindow::familySelected(const QString &family) QFontDatabase db; QStringList styles = db.styles(family); stylecombo->clear(); - stylecombo->insertStringList(styles); - familysubcombo->insertItem(family); + stylecombo->addItems(styles); + familysubcombo->addItem(family); buildFont(); } @@ -820,24 +727,23 @@ void MainWindow::substituteSelected(const QString &family) { QStringList subs = QFont::substitutes(family); sublistbox->clear(); - sublistbox->insertStringList(subs); + sublistbox->insertItems(0, subs); } void MainWindow::removeSubstitute() { - if (sublistbox->currentItem() < 0 || - uint(sublistbox->currentItem()) > sublistbox->count()) + if (!sublistbox->currentItem()) return; - int item = sublistbox->currentItem(); + int row = sublistbox->currentRow(); QStringList subs = QFont::substitutes(familysubcombo->currentText()); - subs.removeAt(sublistbox->currentItem()); + subs.removeAt(sublistbox->currentRow()); sublistbox->clear(); - sublistbox->insertStringList(subs); - if (uint(item) > sublistbox->count()) - item = int(sublistbox->count()) - 1; - sublistbox->setCurrentItem(item); + sublistbox->insertItems(0, subs); + if (row > sublistbox->count()) + row = sublistbox->count() - 1; + sublistbox->setCurrentRow(row); QFont::removeSubstitution(familysubcombo->currentText()); QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); @@ -846,40 +752,38 @@ void MainWindow::removeSubstitute() void MainWindow::addSubstitute() { - if (sublistbox->currentItem() < 0 || - uint(sublistbox->currentItem()) > sublistbox->count()) { + if (!sublistbox->currentItem()) { QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); QStringList subs = QFont::substitutes(familysubcombo->currentText()); sublistbox->clear(); - sublistbox->insertStringList(subs); + sublistbox->insertItems(0, subs); setModified(true); return; } - int item = sublistbox->currentItem(); + int row = sublistbox->currentRow(); QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); QStringList subs = QFont::substitutes(familysubcombo->currentText()); sublistbox->clear(); - sublistbox->insertStringList(subs); - sublistbox->setCurrentItem(item); + sublistbox->insertItems(0, subs); + sublistbox->setCurrentRow(row); setModified(true); } void MainWindow::downSubstitute() { - if (sublistbox->currentItem() < 0 || - uint(sublistbox->currentItem()) >= sublistbox->count()) + if (!sublistbox->currentItem() || sublistbox->currentRow() >= sublistbox->count()) return; - int item = sublistbox->currentItem(); + int row = sublistbox->currentRow(); QStringList subs = QFont::substitutes(familysubcombo->currentText()); - QString fam = subs.at(item); - subs.removeAt(item); - subs.insert(item+1, fam); + QString fam = subs.at(row); + subs.removeAt(row); + subs.insert(row + 1, fam); sublistbox->clear(); - sublistbox->insertStringList(subs); - sublistbox->setCurrentItem(item + 1); + sublistbox->insertItems(0, subs); + sublistbox->setCurrentRow(row + 1); QFont::removeSubstitution(familysubcombo->currentText()); QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); @@ -888,17 +792,17 @@ void MainWindow::downSubstitute() void MainWindow::upSubstitute() { - if (sublistbox->currentItem() < 1) + if (!sublistbox->currentItem() || sublistbox->currentRow() < 1) return; - int item = sublistbox->currentItem(); + int row = sublistbox->currentRow(); QStringList subs = QFont::substitutes(familysubcombo->currentText()); - QString fam = subs.at(item); - subs.removeAt(item); - subs.insert(item-1, fam); + QString fam = subs.at(row); + subs.removeAt(row); + subs.insert(row-1, fam); sublistbox->clear(); - sublistbox->insertStringList(subs); - sublistbox->setCurrentItem(item - 1); + sublistbox->insertItems(0, subs); + sublistbox->setCurrentRow(row - 1); QFont::removeSubstitution(familysubcombo->currentText()); QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); @@ -907,17 +811,16 @@ void MainWindow::upSubstitute() void MainWindow::removeFontpath() { - if (fontpathlistbox->currentItem() < 0 || - uint(fontpathlistbox->currentItem()) > fontpathlistbox->count()) + if (!fontpathlistbox->currentItem()) return; - int item = fontpathlistbox->currentItem(); - fontpaths.removeAt(fontpathlistbox->currentItem()); + int row = fontpathlistbox->currentRow(); + fontpaths.removeAt(row); fontpathlistbox->clear(); - fontpathlistbox->insertStringList(fontpaths); - if (uint(item) > fontpathlistbox->count()) - item = int(fontpathlistbox->count()) - 1; - fontpathlistbox->setCurrentItem(item); + fontpathlistbox->insertItems(0, fontpaths); + if (row > fontpathlistbox->count()) + row = fontpathlistbox->count() - 1; + fontpathlistbox->setCurrentRow(row); setModified(true); } @@ -927,63 +830,59 @@ void MainWindow::addFontpath() if (fontpathlineedit->text().isEmpty()) return; - if (fontpathlistbox->currentItem() < 0 || - uint(fontpathlistbox->currentItem()) > fontpathlistbox->count()) { + if (!fontpathlistbox->currentItem()) { fontpaths.append(fontpathlineedit->text()); fontpathlistbox->clear(); - fontpathlistbox->insertStringList(fontpaths); + fontpathlistbox->insertItems(0, fontpaths); setModified(true); return; } - int item = fontpathlistbox->currentItem(); - fontpaths.insert(fontpathlistbox->currentItem()+1, - fontpathlineedit->text()); + int row = fontpathlistbox->currentRow(); + fontpaths.insert(row + 1, fontpathlineedit->text()); fontpathlistbox->clear(); - fontpathlistbox->insertStringList(fontpaths); - fontpathlistbox->setCurrentItem(item); + fontpathlistbox->insertItems(0, fontpaths); + fontpathlistbox->setCurrentRow(row); setModified(true); } void MainWindow::downFontpath() { - if (fontpathlistbox->currentItem() < 0 || - uint(fontpathlistbox->currentItem()) >= fontpathlistbox->count() - 1) + if (!fontpathlistbox->currentItem() || fontpathlistbox->currentRow() >= fontpathlistbox->count() - 1) return; - int item = fontpathlistbox->currentItem(); - QString fam = fontpaths.at(item); - fontpaths.removeAt(item); - fontpaths.insert(item+1, fam); + int row = fontpathlistbox->currentRow(); + QString fam = fontpaths.at(row); + fontpaths.removeAt(row); + fontpaths.insert(row + 1, fam); fontpathlistbox->clear(); - fontpathlistbox->insertStringList(fontpaths); - fontpathlistbox->setCurrentItem(item + 1); + fontpathlistbox->insertItems(0, fontpaths); + fontpathlistbox->setCurrentRow(row + 1); setModified(true); } void MainWindow::upFontpath() { - if (fontpathlistbox->currentItem() < 1) + if (!fontpathlistbox->currentItem() || fontpathlistbox->currentRow() < 1) return; - int item = fontpathlistbox->currentItem(); - QString fam = fontpaths.at(item); - fontpaths.removeAt(item); - fontpaths.insert(item-1, fam); + int row = fontpathlistbox->currentRow(); + QString fam = fontpaths.at(row); + fontpaths.removeAt(row); + fontpaths.insert(row - 1, fam); fontpathlistbox->clear(); - fontpathlistbox->insertStringList(fontpaths); - fontpathlistbox->setCurrentItem(item - 1); + fontpathlistbox->insertItems(0, fontpaths); + fontpathlistbox->setCurrentRow(row - 1); setModified(true); } void MainWindow::browseFontpath() { - QString dirname = QFileDialog::getExistingDirectory(QString(), this, 0, - tr("Select a Directory")); + QString dirname = QFileDialog::getExistingDirectory(this, tr("Select a Directory")); if (dirname.isNull()) return; @@ -1002,7 +901,7 @@ void MainWindow::helpAbout() QMessageBox box(this); box.setText(tr("

%1

" "
Version %2" - "

Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).") + "

Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).") .arg(tr("Qt Configuration")).arg(QLatin1String(QT_VERSION_STR))); box.setWindowTitle(tr("Qt Configuration")); box.setIcon(QMessageBox::NoIcon); diff --git a/tools/qtconfig/mainwindow.h b/tools/qtconfig/mainwindow.h index 9bc8068..76e3691 100644 --- a/tools/qtconfig/mainwindow.h +++ b/tools/qtconfig/mainwindow.h @@ -42,11 +42,11 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include "mainwindowbase.h" +#include "ui_mainwindow.h" QT_BEGIN_NAMESPACE -class MainWindow : public MainWindowBase +class MainWindow : public QMainWindow, public Ui::MainWindow { Q_OBJECT @@ -83,17 +83,12 @@ public slots: private: - void buildActive(); - void buildActiveEffect(); - void buildInactive(); - void buildInactiveEffect(); - void buildDisabled(); - void buildDisabledEffect(); - void updateColorButtons(); void updateFontSample(); void updateStyleLayout(); + static QPalette::ColorGroup groupFromIndex(int); + void setPreviewPalette(const QPalette &); void setModified(bool); diff --git a/tools/qtconfig/mainwindow.ui b/tools/qtconfig/mainwindow.ui new file mode 100644 index 0000000..117a777 --- /dev/null +++ b/tools/qtconfig/mainwindow.ui @@ -0,0 +1,1377 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + MainWindow + + + + 0 + 0 + 815 + 716 + + + + Qt Configuration + + + + + 8 + + + + + + 200 + 0 + + + + true + + + + + + + 0 + + + + Appearance + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + GUI Style + + + + 4 + + + 8 + + + + + + 0 + 0 + + + + Select GUI &Style: + + + gstylecombo + + + + + + + + + + + + + + 0 + 0 + + + + Preview + + + + + + Select &Palette: + + + paletteCombo + + + + + + + + Active Palette + + + + + Inactive Palette + + + + + Disabled Palette + + + + + + + + + 0 + 0 + + + + + 410 + 260 + + + + + + + + + + + + 0 + 0 + + + + + 400 + 0 + + + + Build Palette + + + + + + + 0 + + + + + &Button Background: + + + buttonMainColor + + + + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + 1 + + + 0 + + + Window Back&ground: + + + Qt::AlignVCenter + + + 0 + + + buttonWindowColor + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 70 + 20 + + + + + + + + &Tune Palette... + + + + + + + + + + Please use the KDE Control Center to set the palette. + + + + + + + + + + + Fonts + + + + + + Default Font + + + + 8 + + + 4 + + + + + true + + + false + + + + + + + true + + + false + + + + + + + true + + + true + + + false + + + + + + + &Style: + + + stylecombo + + + + + + + &Point Size: + + + psizecombo + + + + + + + F&amily: + + + familycombo + + + + + + + Sample Text + + + Qt::AlignHCenter + + + + + + + + + + Font Substitution + + + + 4 + + + 8 + + + + + 4 + + + 0 + + + + + S&elect or Enter a Family: + + + familysubcombo + + + + + + + true + + + true + + + false + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + Qt::Horizontal + + + + + + + Current Substitutions: + + + + + + + + + + 4 + + + 0 + + + + + Up + + + + + + + Down + + + + + + + Remove + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + Qt::Horizontal + + + + + + + 4 + + + 0 + + + + + Select s&ubstitute Family: + + + choosesubcombo + + + + + + + true + + + false + + + + + + + Add + + + + + + + + + + + + + Interface + + + + + + Feel Settings + + + + 8 + + + 4 + + + + + ms + + + 10 + + + 10000 + + + + + + + &Double Click Interval: + + + dcispin + + + + + + + No blinking + + + ms + + + 9 + + + 10000 + + + + + + + &Cursor Flash Time: + + + cfispin + + + + + + + lines + + + 1 + + + 20 + + + + + + + Wheel &Scroll Lines: + + + wslspin + + + + + + + Resolve symlinks in URLs + + + + + + + + + + GUI Effects + + + + 4 + + + 8 + + + + + &Enable + + + Alt+E + + + + + + + + 4 + + + + + &Menu Effect: + + + menueffect + + + + + + + C&omboBox Effect: + + + comboeffect + + + + + + + &ToolTip Effect: + + + tooltipeffect + + + + + + + Tool&Box Effect: + + + toolboxeffect + + + + + + + 0 + + + true + + + + Disable + + + + + Animate + + + + + Fade + + + + + + + + + Disable + + + + + Animate + + + + + + + + + Disable + + + + + Animate + + + + + Fade + + + + + + + + + Disable + + + + + Animate + + + + + + + + + + + + + + Global Strut + + + + 8 + + + 4 + + + + + Minimum &Width: + + + strutwidth + + + + + + + Minimum Hei&ght: + + + strutheight + + + + + + + pixels + + + 1000 + + + + + + + pixels + + + 1000 + + + + + + + + + + Enhanced support for languages written right-to-left + + + + + + + XIM Input Style: + + + + + + + 0 + + + + On The Spot + + + + + Over The Spot + + + + + Off The Spot + + + + + Root + + + + + + + + Default Input Method: + + + + + + + -1 + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 40 + + + + + + + + + Printer + + + + + + Enable Font embedding + + + true + + + + + + + + 0 + 0 + + + + Font Paths + + + + 4 + + + 8 + + + + + 0 + + + 4 + + + + + Up + + + + + + + Remove + + + + + + + Down + + + + + + + + + + + + 0 + + + 4 + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + Add + + + + + + + Browse... + + + + + + + Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. + + + + + + + + + + + + + + + + Phonon + + + + + + About Phonon + + + + + + Current Version: + + + + + + + Not available + + + + + + + Website: + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> + + + true + + + + + + + + + + About GStreamer + + + + + + Current Version: + + + + + + + Not available + + + + + + + Website: + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> + + + true + + + + + + + + + + GStreamer backend settings + + + + + + Preferred audio sink: + + + audiosinkCombo + + + + + + + + + + Preferred render method: + + + videomodeCombo + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> + + + Qt::RichText + + + false + + + true + + + 2 + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + 0 + 0 + 815 + 19 + + + + + + 203 + 114 + 161 + 110 + + + + &File + + + + + + + + + 234 + 115 + 161 + 106 + + + + &Help + + + + + + + + + + + &Save + + + Save + + + Ctrl+S + + + + + E&xit + + + Exit + + + Ctrl+Q + + + + + &About + + + About + + + + + + + + About &Qt + + + About Qt + + + + + + ColorButton + +
colorbutton.h
+
+ + PreviewFrame + +
previewframe.h
+
+
+ + helpview + familycombo + stylecombo + psizecombo + samplelineedit + familysubcombo + PushButton2 + PushButton3 + PushButton4 + choosesubcombo + PushButton1 + dcispin + cfispin + wslspin + effectcheckbox + menueffect + comboeffect + tooltipeffect + strutwidth + strutheight + sublistbox + + + + + effectcheckbox + toggled(bool) + effectbase + setEnabled(bool) + + + 417 + 257 + + + 578 + 379 + + + + + fontembeddingcheckbox + toggled(bool) + GroupBox10 + setEnabled(bool) + + + 449 + 69 + + + 447 + 94 + + + + +
diff --git a/tools/qtconfig/mainwindowbase.cpp b/tools/qtconfig/mainwindowbase.cpp deleted file mode 100644 index 2460bca..0000000 --- a/tools/qtconfig/mainwindowbase.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "mainwindowbase.h" -#include "colorbutton.h" -#include "previewframe.h" - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -/* - * Constructs a MainWindowBase as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - */ -MainWindowBase::MainWindowBase(QWidget* parent, const char* name, Qt::WindowFlags fl) - : Q3MainWindow(parent, name, fl) -{ - setupUi(this); - - (void)statusBar(); - - // signals and slots connections - connect(fontpathlineedit, SIGNAL(returnPressed()), this, SLOT(addFontpath())); - connect(PushButton15, SIGNAL(clicked()), this, SLOT(addFontpath())); - connect(PushButton1, SIGNAL(clicked()), this, SLOT(addSubstitute())); - connect(PushButton14, SIGNAL(clicked()), this, SLOT(browseFontpath())); - connect(stylecombo, SIGNAL(activated(int)), this, SLOT(buildFont())); - connect(psizecombo, SIGNAL(activated(int)), this, SLOT(buildFont())); - connect(PushButton12, SIGNAL(clicked()), this, SLOT(downFontpath())); - connect(PushButton3, SIGNAL(clicked()), this, SLOT(downSubstitute())); - connect(familycombo, SIGNAL(activated(QString)), this, SLOT(familySelected(QString))); - connect(fileExitAction, SIGNAL(activated()), this, SLOT(fileExit())); - connect(fileSaveAction, SIGNAL(activated()), this, SLOT(fileSave())); - connect(helpAboutAction, SIGNAL(activated()), this, SLOT(helpAbout())); - connect(helpAboutQtAction, SIGNAL(activated()), this, SLOT(helpAboutQt())); - connect(TabWidget3, SIGNAL(currentChanged(QWidget*)), this, SLOT(pageChanged(QWidget*))); - connect(paletteCombo, SIGNAL(activated(int)), this, SLOT(paletteSelected(int))); - connect(PushButton13, SIGNAL(clicked()), this, SLOT(removeFontpath())); - connect(PushButton4, SIGNAL(clicked()), this, SLOT(removeSubstitute())); - connect(effectcheckbox, SIGNAL(toggled(bool)), effectbase, SLOT(setEnabled(bool))); - connect(fontembeddingcheckbox, SIGNAL(toggled(bool)), GroupBox10, SLOT(setEnabled(bool))); - connect(toolboxeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(dcispin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); - connect(cfispin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); - connect(wslspin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); - connect(menueffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(comboeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(audiosinkCombo, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(videomodeCombo, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(tooltipeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(strutwidth, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); - connect(strutheight, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); - connect(effectcheckbox, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); - connect(resolvelinks, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); - connect(fontembeddingcheckbox, SIGNAL(clicked()), this, SLOT(somethingModified())); - connect(rtlExtensions, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); - connect(inputStyle, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(inputMethod, SIGNAL(activated(int)), this, SLOT(somethingModified())); - connect(gstylecombo, SIGNAL(activated(QString)), this, SLOT(styleSelected(QString))); - connect(familysubcombo, SIGNAL(activated(QString)), this, SLOT(substituteSelected(QString))); - connect(btnAdvanced, SIGNAL(clicked()), this, SLOT(tunePalette())); - connect(PushButton11, SIGNAL(clicked()), this, SLOT(upFontpath())); - connect(PushButton2, SIGNAL(clicked()), this, SLOT(upSubstitute())); - init(); -} - -/* - * Destroys the object and frees any allocated resources - */ -MainWindowBase::~MainWindowBase() -{ - destroy(); - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void MainWindowBase::languageChange() -{ - retranslateUi(this); -} - -void MainWindowBase::init() -{ -} - -void MainWindowBase::destroy() -{ -} - -void MainWindowBase::addFontpath() -{ - qWarning("MainWindowBase::addFontpath(): Not implemented yet"); -} - -void MainWindowBase::addSubstitute() -{ - qWarning("MainWindowBase::addSubstitute(): Not implemented yet"); -} - -void MainWindowBase::browseFontpath() -{ - qWarning("MainWindowBase::browseFontpath(): Not implemented yet"); -} - -void MainWindowBase::buildFont() -{ - qWarning("MainWindowBase::buildFont(): Not implemented yet"); -} - -void MainWindowBase::buildPalette() -{ - qWarning("MainWindowBase::buildPalette(): Not implemented yet"); -} - -void MainWindowBase::downFontpath() -{ - qWarning("MainWindowBase::downFontpath(): Not implemented yet"); -} - -void MainWindowBase::downSubstitute() -{ - qWarning("MainWindowBase::downSubstitute(): Not implemented yet"); -} - -void MainWindowBase::familySelected( const QString &) -{ - qWarning("MainWindowBase::familySelected( const QString &): Not implemented yet"); -} - -void MainWindowBase::fileExit() -{ - qWarning("MainWindowBase::fileExit(): Not implemented yet"); -} - -void MainWindowBase::fileSave() -{ - qWarning("MainWindowBase::fileSave(): Not implemented yet"); -} - -void MainWindowBase::helpAbout() -{ - qWarning("MainWindowBase::helpAbout(): Not implemented yet"); -} - -void MainWindowBase::helpAboutQt() -{ - qWarning("MainWindowBase::helpAboutQt(): Not implemented yet"); -} - -void MainWindowBase::new_slot() -{ - qWarning("MainWindowBase::new_slot(): Not implemented yet"); -} - -void MainWindowBase::pageChanged( QWidget *) -{ - qWarning("MainWindowBase::pageChanged( QWidget *): Not implemented yet"); -} - -void MainWindowBase::paletteSelected(int) -{ - qWarning("MainWindowBase::paletteSelected(int): Not implemented yet"); -} - -void MainWindowBase::removeFontpath() -{ - qWarning("MainWindowBase::removeFontpath(): Not implemented yet"); -} - -void MainWindowBase::removeSubstitute() -{ - qWarning("MainWindowBase::removeSubstitute(): Not implemented yet"); -} - -void MainWindowBase::somethingModified() -{ - qWarning("MainWindowBase::somethingModified(): Not implemented yet"); -} - -void MainWindowBase::styleSelected( const QString &) -{ - qWarning("MainWindowBase::styleSelected( const QString &): Not implemented yet"); -} - -void MainWindowBase::substituteSelected( const QString &) -{ - qWarning("MainWindowBase::substituteSelected( const QString &): Not implemented yet"); -} - -void MainWindowBase::tunePalette() -{ - qWarning("MainWindowBase::tunePalette(): Not implemented yet"); -} - -void MainWindowBase::upFontpath() -{ - qWarning("MainWindowBase::upFontpath(): Not implemented yet"); -} - -void MainWindowBase::upSubstitute() -{ - qWarning("MainWindowBase::upSubstitute(): Not implemented yet"); -} - -QT_END_NAMESPACE diff --git a/tools/qtconfig/mainwindowbase.h b/tools/qtconfig/mainwindowbase.h deleted file mode 100644 index 1e1dabf..0000000 --- a/tools/qtconfig/mainwindowbase.h +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef MAINWINDOWBASE_H -#define MAINWINDOWBASE_H - -#include "ui_mainwindowbase.h" -#include - -QT_BEGIN_NAMESPACE - -class ColorButton; -class PreviewFrame; - -class MainWindowBase : public Q3MainWindow, public Ui::MainWindowBase -{ - Q_OBJECT - -public: - MainWindowBase(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = Qt::Window); - ~MainWindowBase(); - -public slots: - virtual void addFontpath(); - virtual void addSubstitute(); - virtual void browseFontpath(); - virtual void buildFont(); - virtual void buildPalette(); - virtual void downFontpath(); - virtual void downSubstitute(); - virtual void familySelected( const QString & ); - virtual void fileExit(); - virtual void fileSave(); - virtual void helpAbout(); - virtual void helpAboutQt(); - virtual void new_slot(); - virtual void pageChanged( QWidget * ); - virtual void paletteSelected( int ); - virtual void removeFontpath(); - virtual void removeSubstitute(); - virtual void somethingModified(); - virtual void styleSelected( const QString & ); - virtual void substituteSelected( const QString & ); - virtual void tunePalette(); - virtual void upFontpath(); - virtual void upSubstitute(); - -protected slots: - virtual void languageChange(); - - virtual void init(); - virtual void destroy(); -}; - -QT_END_NAMESPACE - -#endif // MAINWINDOWBASE_H diff --git a/tools/qtconfig/mainwindowbase.ui b/tools/qtconfig/mainwindowbase.ui deleted file mode 100644 index b09abd0..0000000 --- a/tools/qtconfig/mainwindowbase.ui +++ /dev/null @@ -1,1384 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - MainWindowBase - - - - 0 - 0 - 815 - 716 - - - - Qt Configuration - - - - - 0 - 26 - 815 - 690 - - - - - 8 - - - - - - 200 - 0 - - - - true - - - - - - - 0 - - - - Appearance - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - GUI Style - - - - 4 - - - 8 - - - - - - 0 - 0 - - - - Select GUI &Style: - - - gstylecombo - - - - - - - - - - - - - - 0 - 0 - - - - Preview - - - - - - Select &Palette: - - - paletteCombo - - - - - - - - Active Palette - - - - - Inactive Palette - - - - - Disabled Palette - - - - - - - - - 0 - 0 - - - - - 410 - 260 - - - - - - - - - - - - 0 - 0 - - - - - 400 - 0 - - - - Build Palette - - - - - - - 0 - - - - - &3-D Effects: - - - buttonMainColor - - - - - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - 1 - - - 0 - - - Window Back&ground: - - - Qt::AlignVCenter - - - 0 - - - buttonMainColor2 - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 70 - 20 - - - - - - - - &Tune Palette... - - - - - - - - - - Please use the KDE Control Center to set the palette. - - - - - - - - - - - Fonts - - - - - - Default Font - - - - 8 - - - 4 - - - - - true - - - false - - - - - - - true - - - false - - - - - - - true - - - true - - - false - - - - - - - &Style: - - - stylecombo - - - - - - - &Point Size: - - - psizecombo - - - - - - - F&amily: - - - familycombo - - - - - - - Sample Text - - - Qt::AlignHCenter - - - - - - - - - - Font Substitution - - - - 4 - - - 8 - - - - - 4 - - - 0 - - - - - S&elect or Enter a Family: - - - familysubcombo - - - - - - - true - - - true - - - false - - - - - - - - - QFrame::HLine - - - QFrame::Sunken - - - Qt::Horizontal - - - - - - - Current Substitutions: - - - - - - - - - - 4 - - - 0 - - - - - Up - - - - - - - Down - - - - - - - Remove - - - - - - - - - QFrame::HLine - - - QFrame::Sunken - - - Qt::Horizontal - - - - - - - 4 - - - 0 - - - - - Select s&ubstitute Family: - - - choosesubcombo - - - - - - - true - - - false - - - - - - - Add - - - - - - - - - - - - - Interface - - - - - - Feel Settings - - - - 8 - - - 4 - - - - - ms - - - 10 - - - 10000 - - - - - - - &Double Click Interval: - - - dcispin - - - - - - - No blinking - - - ms - - - 9 - - - 10000 - - - - - - - &Cursor Flash Time: - - - cfispin - - - - - - - lines - - - 1 - - - 20 - - - - - - - Wheel &Scroll Lines: - - - wslspin - - - - - - - Resolve symlinks in URLs - - - - - - - - - - GUI Effects - - - - 4 - - - 8 - - - - - &Enable - - - Alt+E - - - - - - - QFrame::NoFrame - - - QFrame::Plain - - - - 0 - - - 4 - - - - - &Menu Effect: - - - menueffect - - - - - - - C&omboBox Effect: - - - comboeffect - - - - - - - &ToolTip Effect: - - - tooltipeffect - - - - - - - Tool&Box Effect: - - - toolboxeffect - - - - - - - 0 - - - true - - - - Disable - - - - - Animate - - - - - Fade - - - - - - - - - Disable - - - - - Animate - - - - - - - - - Disable - - - - - Animate - - - - - Fade - - - - - - - - - Disable - - - - - Animate - - - - - - - - - - - - - - Global Strut - - - - 8 - - - 4 - - - - - Minimum &Width: - - - strutwidth - - - - - - - Minimum Hei&ght: - - - strutheight - - - - - - - pixels - - - 1000 - - - - - - - pixels - - - 1000 - - - - - - - - - - Enhanced support for languages written right-to-left - - - - - - - XIM Input Style: - - - - - - - 0 - - - - On The Spot - - - - - Over The Spot - - - - - Off The Spot - - - - - Root - - - - - - - - Default Input Method: - - - - - - - -1 - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - - - - - - Printer - - - - - - Enable Font embedding - - - true - - - - - - - - 0 - 0 - - - - Font Paths - - - - 4 - - - 8 - - - - - 0 - - - 4 - - - - - Up - - - - - - - Remove - - - - - - - Down - - - - - - - - - - - - 0 - - - 4 - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 20 - 20 - - - - - - - - Add - - - - - - - Browse... - - - - - - - Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. - - - - - - - - - - - - - - - - Phonon - - - - - - About Phonon - - - - - - Current Version: - - - - - - - Not available - - - - - - - Website: - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> - - - true - - - - - - - - - - About GStreamer - - - - - - Current Version: - - - - - - - Not available - - - - - - - Website: - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> - - - true - - - - - - - - - - GStreamer backend settings - - - - - - Preferred audio sink: - - - audiosinkCombo - - - - - - - - - - Preferred render method: - - - videomodeCombo - - - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> - - - Qt::RichText - - - false - - - true - - - 2 - - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - 0 - 0 - 815 - 26 - - - - - - 0 - 0 - 123 - 92 - - - - &File - - - - - - - - - - - - 0 - 0 - 123 - 90 - - - - &Help - - - - - - - - - - - - - - &Save - - - Save - - - Ctrl+S - - - - - E&xit - - - Exit - - - - - - - - &About - - - About - - - - - - - - About &Qt - - - About Qt - - - - - - Q3Frame - QFrame -
Qt3Support/Q3Frame
- 1 -
- - Q3MainWindow - QWidget -
q3mainwindow.h
- 1 -
- - Q3ListBox - Q3Frame -
q3listbox.h
-
- - ColorButton - -
colorbutton.h
-
- - PreviewFrame - -
previewframe.h
-
-
- - helpview - familycombo - stylecombo - psizecombo - samplelineedit - familysubcombo - PushButton2 - PushButton3 - PushButton4 - choosesubcombo - PushButton1 - dcispin - cfispin - wslspin - effectcheckbox - menueffect - comboeffect - tooltipeffect - strutwidth - strutheight - sublistbox - - - -
diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index fa108e7..e757d00 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -182,7 +182,6 @@ QPalette::ColorGroup PaletteEditorAdvanced::groupFromIndex(int item) } } - QPalette::ColorRole PaletteEditorAdvanced::centralFromIndex(int item) { switch( item ) { diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index f4ddebe..4cfc944 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -13,12 +13,10 @@ contains(QT_CONFIG, phonon) { QT += phonon DEFINES += HAVE_PHONON } -SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp \ - mainwindowbase.cpp -HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h \ - mainwindowbase.h +SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp +HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h -FORMS = mainwindowbase.ui paletteeditoradvanced.ui previewwidget.ui +FORMS = mainwindow.ui paletteeditoradvanced.ui previewwidget.ui RESOURCES = qtconfig.qrc PROJECTNAME = Qt Configuration -- cgit v0.12 From 5c87763ffa0ec38443c14f8870294e340edd4db1 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:34 +0200 Subject: Fixed some code style issues in qtconfig Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 81d7813..12024e7 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -178,7 +178,6 @@ static void setStyleHelper(QWidget *w, QStyle *s) w->setStyle(s); } - MainWindow::MainWindow() : QMainWindow(), editPalette(palette()), previewPalette(palette()), previewstyle(0) { @@ -477,7 +476,6 @@ MainWindow::MainWindow() updateStyleLayout(); } - MainWindow::~MainWindow() { } @@ -603,13 +601,11 @@ void MainWindow::fileSave() statusBar()->showMessage(QLatin1String("Saved changes.")); } - void MainWindow::fileExit() { qApp->closeAllWindows(); } - void MainWindow::setModified(bool m) { if (modified == m) @@ -619,7 +615,6 @@ void MainWindow::setModified(bool m) fileSaveAction->setEnabled(m); } - void MainWindow::buildPalette() { QPalette temp(buttonMainColor->color(), buttonWindowColor->color()); @@ -648,14 +643,12 @@ void MainWindow::setPreviewPalette( const QPalette& pal ) previewFrame->setPreviewPalette(previewPalette); } - void MainWindow::updateColorButtons() { buttonMainColor->setColor( editPalette.color( QPalette::Active, QPalette::Button )); buttonWindowColor->setColor( editPalette.color( QPalette::Active, QPalette::Window )); } - void MainWindow::tunePalette() { bool ok; @@ -669,7 +662,6 @@ void MainWindow::tunePalette() setModified(true); } - void MainWindow::paletteSelected(int) { setPreviewPalette(editPalette); @@ -700,7 +692,6 @@ void MainWindow::styleSelected(const QString &stylename) updateStyleLayout(); } - void MainWindow::familySelected(const QString &family) { QFontDatabase db; @@ -711,7 +702,6 @@ void MainWindow::familySelected(const QString &family) buildFont(); } - void MainWindow::buildFont() { QFontDatabase db; @@ -722,7 +712,6 @@ void MainWindow::buildFont() setModified(true); } - void MainWindow::substituteSelected(const QString &family) { QStringList subs = QFont::substitutes(family); @@ -730,7 +719,6 @@ void MainWindow::substituteSelected(const QString &family) sublistbox->insertItems(0, subs); } - void MainWindow::removeSubstitute() { if (!sublistbox->currentItem()) @@ -749,7 +737,6 @@ void MainWindow::removeSubstitute() setModified(true); } - void MainWindow::addSubstitute() { if (!sublistbox->currentItem()) { @@ -770,7 +757,6 @@ void MainWindow::addSubstitute() setModified(true); } - void MainWindow::downSubstitute() { if (!sublistbox->currentItem() || sublistbox->currentRow() >= sublistbox->count()) @@ -789,7 +775,6 @@ void MainWindow::downSubstitute() setModified(true); } - void MainWindow::upSubstitute() { if (!sublistbox->currentItem() || sublistbox->currentRow() < 1) @@ -808,7 +793,6 @@ void MainWindow::upSubstitute() setModified(true); } - void MainWindow::removeFontpath() { if (!fontpathlistbox->currentItem()) @@ -824,7 +808,6 @@ void MainWindow::removeFontpath() setModified(true); } - void MainWindow::addFontpath() { if (fontpathlineedit->text().isEmpty()) @@ -847,11 +830,12 @@ void MainWindow::addFontpath() setModified(true); } - void MainWindow::downFontpath() { - if (!fontpathlistbox->currentItem() || fontpathlistbox->currentRow() >= fontpathlistbox->count() - 1) + if (!fontpathlistbox->currentItem() + || fontpathlistbox->currentRow() >= (fontpathlistbox->count() - 1)) { return; + } int row = fontpathlistbox->currentRow(); QString fam = fontpaths.at(row); @@ -863,7 +847,6 @@ void MainWindow::downFontpath() setModified(true); } - void MainWindow::upFontpath() { if (!fontpathlistbox->currentItem() || fontpathlistbox->currentRow() < 1) @@ -879,7 +862,6 @@ void MainWindow::upFontpath() setModified(true); } - void MainWindow::browseFontpath() { QString dirname = QFileDialog::getExistingDirectory(this, tr("Select a Directory")); @@ -889,13 +871,11 @@ void MainWindow::browseFontpath() fontpathlineedit->setText(dirname); } - void MainWindow::somethingModified() { setModified(true); } - void MainWindow::helpAbout() { QMessageBox box(this); @@ -908,13 +888,11 @@ void MainWindow::helpAbout() box.exec(); } - void MainWindow::helpAboutQt() { QMessageBox::aboutQt(this, tr("Qt Configuration")); } - void MainWindow::pageChanged(QWidget *page) { if (page == tab) @@ -929,7 +907,6 @@ void MainWindow::pageChanged(QWidget *page) helpview->setText(tr(phonon_text)); } - void MainWindow::closeEvent(QCloseEvent *e) { if (modified) { -- cgit v0.12 From 27fa758a28943698749a0608039efd88574da5e5 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:34 +0200 Subject: Modified previewwidget's ui file in qtconfig The modification is needed to prevent ui compilation time warnings. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/previewwidget.ui | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/qtconfig/previewwidget.ui b/tools/qtconfig/previewwidget.ui index 12de30d..9d86a1f 100644 --- a/tools/qtconfig/previewwidget.ui +++ b/tools/qtconfig/previewwidget.ui @@ -1,6 +1,6 @@ - ********************************************************************* + ********************************************************************* ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. @@ -67,7 +67,7 @@ 11 - + 6 @@ -75,7 +75,7 @@ 0 - + 6 @@ -87,7 +87,7 @@ GroupBox - + 6 @@ -126,7 +126,7 @@ GroupBox2 - + 6 @@ -163,7 +163,7 @@ - + 6 @@ -187,7 +187,7 @@ - + 6 -- cgit v0.12 From 31ea34d217e28f83cf868c76a998d61a846385e6 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:35 +0200 Subject: Finally removed the qtconfig dependency from qt3support Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/qtconfig.pro | 1 - tools/tools.pro | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index 4cfc944..a066d4e 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -5,7 +5,6 @@ build_all:!build_pass { CONFIG += release } LANGUAGE = C++ -QT += qt3support contains(QT_CONFIG, gstreamer):LIBS += $$QT_LIBS_GSTREAMER -lgstinterfaces-0.10 -lgstvideo-0.10 -lgstbase-0.10 contains(QT_CONFIG, gstreamer):QMAKE_CXXFLAGS += $$QT_CFLAGS_GSTREAMER diff --git a/tools/tools.pro b/tools/tools.pro index 8f23fe4..c64fe25 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -20,7 +20,7 @@ TEMPLATE = subdirs SUBDIRS += designer } } - unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig + unix:!mac:!embedded:SUBDIRS += qtconfig win32:!wince*:SUBDIRS += activeqt } contains(QT_CONFIG, declarative):SUBDIRS += qml -- cgit v0.12 From 55f7ab61482cbfdf93ab25e409649ecea9bcdb0e Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:36 +0200 Subject: Resolved some code style issues and fixed the broken copyright year Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 51 ++++++++++++++++---------------- tools/qtconfig/paletteeditoradvanced.cpp | 14 ++++----- tools/qtconfig/paletteeditoradvanced.h | 6 ++-- tools/qtconfig/previewframe.cpp | 4 +-- tools/qtconfig/previewwidget.cpp | 4 +-- 5 files changed, 40 insertions(+), 39 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 12024e7..fd083c1 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -156,7 +156,7 @@ static const char *phonon_text = QPalette::ColorGroup MainWindow::groupFromIndex(int item) { - switch( item ) { + switch (item) { case 0: default: return QPalette::Active; @@ -272,7 +272,7 @@ MainWindow::MainWindow() QStringList fs2 = QFont::substitutions(); QStringList::Iterator fsit = fs2.begin(); while (fsit != fs2.end()) { - if (! fs.contains(*fsit)) + if (!fs.contains(*fsit)) fs += *fsit; fsit++; } @@ -306,8 +306,8 @@ MainWindow::MainWindow() else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) tooltipeffect->setCurrentIndex(1); - if ( QApplication::isEffectEnabled( Qt::UI_AnimateToolBox ) ) - toolboxeffect->setCurrentIndex( 1 ); + if (QApplication::isEffectEnabled(Qt::UI_AnimateToolBox)) + toolboxeffect->setCurrentIndex(1); QSize globalStrut = QApplication::globalStrut(); strutwidth->setValue(globalStrut.width()); @@ -526,7 +526,7 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("style"), overrideDesktopSettings ? gstylecombo->currentText() : QString()); settings.setValue(QLatin1String("doubleClickInterval"), dcispin->value()); - settings.setValue(QLatin1String("cursorFlashTime"), cfispin->value() == 9 ? 0 : cfispin->value() ); + settings.setValue(QLatin1String("cursorFlashTime"), cfispin->value() == 9 ? 0 : cfispin->value()); settings.setValue(QLatin1String("wheelScrollLines"), wslspin->value()); settings.setValue(QLatin1String("resolveSymlinks"), resolvelinks->isChecked()); @@ -539,13 +539,13 @@ void MainWindow::fileSave() #ifdef Q_WS_X11 QString style = inputStyle->currentText(); QString str = QLatin1String("On The Spot"); - if ( style == trUtf8( "Over The Spot" ) ) + if (style == trUtf8("Over The Spot")) str = QLatin1String("Over The Spot"); - else if ( style == trUtf8( "Off The Spot" ) ) + else if (style == trUtf8("Off The Spot")) str = QLatin1String("Off The Spot"); - else if ( style == trUtf8( "Root" ) ) + else if (style == trUtf8("Root")) str = QLatin1String("Root"); - settings.setValue( QLatin1String("XIMInputStyle"), str ); + settings.setValue(QLatin1String("XIMInputStyle"), str); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) settings.setValue(QLatin1String("DefaultInputMethod"), inputMethod->currentText()); @@ -574,7 +574,7 @@ void MainWindow::fileSave() case 2: effects << QLatin1String("fadetooltip"); break; } - switch ( toolboxeffect->currentIndex() ) { + switch (toolboxeffect->currentIndex()) { case 1: effects << QLatin1String("animatetoolbox"); break; } } else @@ -618,8 +618,8 @@ void MainWindow::setModified(bool m) void MainWindow::buildPalette() { QPalette temp(buttonMainColor->color(), buttonWindowColor->color()); - for (int i = 0; icurrentIndex()); - for (int i = 0; isetColor( editPalette.color( QPalette::Active, QPalette::Button )); - buttonWindowColor->setColor( editPalette.color( QPalette::Active, QPalette::Window )); + buttonMainColor->setColor(editPalette.color(QPalette::Active, QPalette::Button)); + buttonWindowColor->setColor(editPalette.color(QPalette::Active, QPalette::Window)); } void MainWindow::tunePalette() @@ -654,7 +654,7 @@ void MainWindow::tunePalette() bool ok; QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, backgroundRole(), this); - if (! ok) + if (!ok) return; editPalette = pal; @@ -881,7 +881,7 @@ void MainWindow::helpAbout() QMessageBox box(this); box.setText(tr("

%1

" "
Version %2" - "

Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).") + "

Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).") .arg(tr("Qt Configuration")).arg(QLatin1String(QT_VERSION_STR))); box.setWindowTitle(tr("Qt Configuration")); box.setIcon(QMessageBox::NoIcon); @@ -910,19 +910,20 @@ void MainWindow::pageChanged(QWidget *page) void MainWindow::closeEvent(QCloseEvent *e) { if (modified) { - switch(QMessageBox::warning(this, tr("Save Changes"), - tr("Save changes to settings?"), - tr("&Yes"), tr("&No"), tr("&Cancel"), 0, 2)) { - case 0: // save + switch (QMessageBox::warning(this, tr("Save Changes"), + tr("Save changes to settings?"), + (QMessageBox::Yes | QMessageBox::No + | QMessageBox::Cancel))) { + case QMessageBox::Yes: // save qApp->processEvents(); fileSave(); // fall through intended - case 1: // don't save + case QMessageBox::No: // don't save e->accept(); break; - case 2: // cancel + case QMessageBox::Cancel: // cancel e->ignore(); break; diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index e757d00..b285c8c 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -83,7 +83,7 @@ PaletteEditorAdvanced::~PaletteEditorAdvanced() { } -void PaletteEditorAdvanced::onToggleBuildInactive( bool v ) +void PaletteEditorAdvanced::onToggleBuildInactive(bool v) { if (selectedPalette == 1) { groupCentral->setDisabled(v); @@ -171,7 +171,7 @@ void PaletteEditorAdvanced::onToggleBuildEffects(bool on) QPalette::ColorGroup PaletteEditorAdvanced::groupFromIndex(int item) { - switch( item ) { + switch (item) { case 0: default: return QPalette::Active; @@ -184,7 +184,7 @@ QPalette::ColorGroup PaletteEditorAdvanced::groupFromIndex(int item) QPalette::ColorRole PaletteEditorAdvanced::centralFromIndex(int item) { - switch( item ) { + switch (item) { case 0: return QPalette::Window; case 1: @@ -220,7 +220,7 @@ QPalette::ColorRole PaletteEditorAdvanced::centralFromIndex(int item) QPalette::ColorRole PaletteEditorAdvanced::effectFromIndex(int item) { - switch( item ) { + switch (item) { case 0: return QPalette::Light; case 1: @@ -327,7 +327,7 @@ void PaletteEditorAdvanced::setupBackgroundRole(QPalette::ColorRole role) { int initRole = 0; - switch(role) { + switch (role) { case QPalette::Window: initRole = 0; break; @@ -385,8 +385,8 @@ QPalette PaletteEditorAdvanced::getPalette(bool *ok, const QPalette &init, PaletteEditorAdvanced *dlg = new PaletteEditorAdvanced(parent); dlg->setupBackgroundRole(backgroundRole); - if ( init != QPalette() ) - dlg->setPal( init ); + if (init != QPalette()) + dlg->setPal(init); int resultCode = dlg->exec(); QPalette result = init; diff --git a/tools/qtconfig/paletteeditoradvanced.h b/tools/qtconfig/paletteeditoradvanced.h index f70648b..9dc4657 100644 --- a/tools/qtconfig/paletteeditoradvanced.h +++ b/tools/qtconfig/paletteeditoradvanced.h @@ -55,9 +55,9 @@ public: PaletteEditorAdvanced(QWidget *parent = 0); ~PaletteEditorAdvanced(); - static QPalette getPalette( bool *ok, const QPalette &pal, - QPalette::ColorRole backgroundRole = QPalette::Window, - QWidget *parent = 0 ); + static QPalette getPalette(bool *ok, const QPalette &pal, + QPalette::ColorRole backgroundRole = QPalette::Window, + QWidget *parent = 0); static QPalette buildEffect(QPalette::ColorGroup colorGroup, const QPalette &basePalette); diff --git a/tools/qtconfig/previewframe.cpp b/tools/qtconfig/previewframe.cpp index 95d64cf..d08b770 100644 --- a/tools/qtconfig/previewframe.cpp +++ b/tools/qtconfig/previewframe.cpp @@ -82,7 +82,7 @@ void PreviewFrame::setPreviewVisible(bool visible) workspace->viewport()->update(); } -Workspace::Workspace(PreviewFrame* parent) +Workspace::Workspace(PreviewFrame *parent) : QMdiArea(parent) { previewFrame = parent; @@ -92,7 +92,7 @@ Workspace::Workspace(PreviewFrame* parent) frame->show(); } -void Workspace::paintEvent( QPaintEvent* ) +void Workspace::paintEvent(QPaintEvent *) { QPainter p(viewport()); p.fillRect(rect(), palette().color(backgroundRole()).dark()); diff --git a/tools/qtconfig/previewwidget.cpp b/tools/qtconfig/previewwidget.cpp index abbf669..4a4a580 100644 --- a/tools/qtconfig/previewwidget.cpp +++ b/tools/qtconfig/previewwidget.cpp @@ -50,7 +50,7 @@ PreviewWidget::PreviewWidget(QWidget *parent) setupUi(this); // install event filter on child widgets - QList l = findChildren(); + QList l = findChildren(); foreach(QWidget *w, l) { w->installEventFilter(this); w->setFocusPolicy(Qt::NoFocus); @@ -66,7 +66,7 @@ void PreviewWidget::closeEvent(QCloseEvent *e) bool PreviewWidget::eventFilter(QObject *, QEvent *e) { - switch ( e->type() ) { + switch (e->type()) { case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: -- cgit v0.12 From 0bcad9bd0d8c98807babe6ae3de2ef54dfbf7c22 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:37 +0200 Subject: Replaced the unnecessary include with declaration Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/previewframe.cpp | 1 + tools/qtconfig/previewframe.h | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qtconfig/previewframe.cpp b/tools/qtconfig/previewframe.cpp index d08b770..f37ac78 100644 --- a/tools/qtconfig/previewframe.cpp +++ b/tools/qtconfig/previewframe.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "previewframe.h" +#include "previewwidget.h" #include #include diff --git a/tools/qtconfig/previewframe.h b/tools/qtconfig/previewframe.h index b21e529..41c5030 100644 --- a/tools/qtconfig/previewframe.h +++ b/tools/qtconfig/previewframe.h @@ -42,8 +42,6 @@ #ifndef PREVIEWFRAME_H #define PREVIEWFRAME_H -#include "previewwidget.h" - #include QT_BEGIN_NAMESPACE @@ -63,6 +61,7 @@ private: PreviewFrame *previewFrame; }; +class PreviewWidget; class PreviewFrame : public QFrame { Q_OBJECT -- cgit v0.12 From 5aeda02c1b34ee0534390872f2ae400baab7baed Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:38 +0200 Subject: Removed the inheritance from ui file in qtconfig's PaletteEditorAdvanced Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/paletteeditoradvanced.cpp | 73 ++++++++++++++++---------------- tools/qtconfig/paletteeditoradvanced.h | 10 ++++- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index b285c8c..196cdea 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -38,41 +38,41 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ - +#include "ui_paletteeditoradvanced.h" #include "paletteeditoradvanced.h" #include "colorbutton.h" QT_BEGIN_NAMESPACE PaletteEditorAdvanced::PaletteEditorAdvanced(QWidget *parent) - : QDialog(parent), selectedPalette(0) + : QDialog(parent), ui(new Ui::PaletteEditorAdvanced), selectedPalette(0) { - setupUi(this); + ui->setupUi(this); // create a ColorButton's - buttonCentral = new ColorButton(groupCentral); + buttonCentral = new ColorButton(ui->groupCentral); buttonCentral->setToolTip(tr("Choose a color")); buttonCentral->setWhatsThis(tr("Choose a color for the selected central color role.")); - layoutCentral->addWidget(buttonCentral); - labelCentral->setBuddy(buttonCentral); + ui->layoutCentral->addWidget(buttonCentral); + ui->labelCentral->setBuddy(buttonCentral); - buttonEffect = new ColorButton(groupEffect); + buttonEffect = new ColorButton(ui->groupEffect); buttonEffect->setToolTip(tr("Choose a color")); buttonEffect->setWhatsThis(tr("Choose a color for the selected effect color role.")); buttonEffect->setEnabled(false); - layoutEffect->addWidget(buttonEffect); - labelEffect->setBuddy(buttonEffect); + ui->layoutEffect->addWidget(buttonEffect); + ui->labelEffect->setBuddy(buttonEffect); // signals and slots connections - connect(paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); - connect(comboCentral, SIGNAL(activated(int)), SLOT(onCentral(int))); + connect(ui->paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); + connect(ui->comboCentral, SIGNAL(activated(int)), SLOT(onCentral(int))); connect(buttonCentral, SIGNAL(clicked()), SLOT(onChooseCentralColor())); connect(buttonEffect, SIGNAL(clicked()), SLOT(onChooseEffectColor())); - connect(comboEffect, SIGNAL(activated(int)), SLOT(onEffect(int))); - connect(checkBuildEffect, SIGNAL(toggled(bool)), SLOT(onToggleBuildEffects(bool))); - connect(checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); - connect(checkBuildInactive, SIGNAL(toggled(bool)), SLOT(onToggleBuildInactive(bool))); - connect(checkBuildDisabled, SIGNAL(toggled(bool)), SLOT(onToggleBuildDisabled(bool))); + connect(ui->comboEffect, SIGNAL(activated(int)), SLOT(onEffect(int))); + connect(ui->checkBuildEffect, SIGNAL(toggled(bool)), SLOT(onToggleBuildEffects(bool))); + connect(ui->checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); + connect(ui->checkBuildInactive, SIGNAL(toggled(bool)), SLOT(onToggleBuildInactive(bool))); + connect(ui->checkBuildDisabled, SIGNAL(toggled(bool)), SLOT(onToggleBuildDisabled(bool))); onToggleBuildEffects(true); @@ -81,13 +81,14 @@ PaletteEditorAdvanced::PaletteEditorAdvanced(QWidget *parent) PaletteEditorAdvanced::~PaletteEditorAdvanced() { + delete ui; } void PaletteEditorAdvanced::onToggleBuildInactive(bool v) { if (selectedPalette == 1) { - groupCentral->setDisabled(v); - groupEffect->setDisabled(v); + ui->groupCentral->setDisabled(v); + ui->groupEffect->setDisabled(v); } if (v) { @@ -99,8 +100,8 @@ void PaletteEditorAdvanced::onToggleBuildInactive(bool v) void PaletteEditorAdvanced::onToggleBuildDisabled(bool v) { if (selectedPalette == 2) { - groupCentral->setDisabled(v); - groupEffect->setDisabled(v); + ui->groupCentral->setDisabled(v); + ui->groupEffect->setDisabled(v); } if (v) { @@ -114,16 +115,16 @@ void PaletteEditorAdvanced::paletteSelected(int p) selectedPalette = p; if(p == 1) { // inactive - groupCentral->setDisabled(checkBuildInactive->isChecked()); - groupEffect->setDisabled(checkBuildInactive->isChecked()); + ui->groupCentral->setDisabled(ui->checkBuildInactive->isChecked()); + ui->groupEffect->setDisabled(ui->checkBuildInactive->isChecked()); } else if (p == 2) { // disabled - groupCentral->setDisabled(checkBuildDisabled->isChecked()); - groupEffect->setDisabled(checkBuildDisabled->isChecked()); + ui->groupCentral->setDisabled(ui->checkBuildDisabled->isChecked()); + ui->groupEffect->setDisabled(ui->checkBuildDisabled->isChecked()); } else { - groupCentral->setEnabled(true); - groupEffect->setEnabled(true); + ui->groupCentral->setEnabled(true); + ui->groupEffect->setEnabled(true); } updateColorButtons(); } @@ -131,14 +132,14 @@ void PaletteEditorAdvanced::paletteSelected(int p) void PaletteEditorAdvanced::onChooseCentralColor() { QPalette::ColorGroup group = groupFromIndex(selectedPalette); - editPalette.setColor(group, centralFromIndex(comboCentral->currentIndex()), + editPalette.setColor(group, centralFromIndex(ui->comboCentral->currentIndex()), buttonCentral->color()); buildEffect(group); if (group == QPalette::Active) { - if(checkBuildInactive->isChecked()) + if(ui->checkBuildInactive->isChecked()) build(QPalette::Inactive); - if(checkBuildDisabled->isChecked()) + if(ui->checkBuildDisabled->isChecked()) build(QPalette::Disabled); } @@ -148,13 +149,13 @@ void PaletteEditorAdvanced::onChooseCentralColor() void PaletteEditorAdvanced::onChooseEffectColor() { QPalette::ColorGroup group = groupFromIndex(selectedPalette); - editPalette.setColor(group, effectFromIndex(comboEffect->currentIndex()), + editPalette.setColor(group, effectFromIndex(ui->comboEffect->currentIndex()), buttonEffect->color()); if (group == QPalette::Active) { - if(checkBuildInactive->isChecked()) + if(ui->checkBuildInactive->isChecked()) build(QPalette::Inactive); - if(checkBuildDisabled->isChecked()) + if(ui->checkBuildDisabled->isChecked()) build(QPalette::Disabled); } @@ -296,7 +297,7 @@ void PaletteEditorAdvanced::build(QPalette::ColorGroup colorGroup) editPalette.setColor(colorGroup, QPalette::HighlightedText, Qt::darkGray); } - if (checkBuildEffect->isChecked()) + if (ui->checkBuildEffect->isChecked()) buildEffect(colorGroup); else updateColorButtons(); @@ -307,9 +308,9 @@ void PaletteEditorAdvanced::updateColorButtons() { QPalette::ColorGroup colorGroup = groupFromIndex(selectedPalette); buttonCentral->setColor(editPalette.color(colorGroup, - centralFromIndex(comboCentral->currentIndex()))); + centralFromIndex(ui->comboCentral->currentIndex()))); buttonEffect->setColor(editPalette.color(colorGroup, - effectFromIndex(comboEffect->currentIndex()))); + effectFromIndex(ui->comboEffect->currentIndex()))); } void PaletteEditorAdvanced::setPal(const QPalette &pal) @@ -376,7 +377,7 @@ void PaletteEditorAdvanced::setupBackgroundRole(QPalette::ColorRole role) } if (initRole != -1) - comboCentral->setCurrentIndex(initRole); + ui->comboCentral->setCurrentIndex(initRole); } QPalette PaletteEditorAdvanced::getPalette(bool *ok, const QPalette &init, diff --git a/tools/qtconfig/paletteeditoradvanced.h b/tools/qtconfig/paletteeditoradvanced.h index 9dc4657..9f7a3f7 100644 --- a/tools/qtconfig/paletteeditoradvanced.h +++ b/tools/qtconfig/paletteeditoradvanced.h @@ -42,13 +42,17 @@ #ifndef PALETTEEDITORADVANCED_H #define PALETTEEDITORADVANCED_H -#include "ui_paletteeditoradvanced.h" +#include + +namespace Ui { + class PaletteEditorAdvanced; +} QT_BEGIN_NAMESPACE class ColorButton; -class PaletteEditorAdvanced : public QDialog, public Ui::PaletteEditorAdvanced +class PaletteEditorAdvanced : public QDialog { Q_OBJECT public: @@ -90,6 +94,8 @@ private: static QPalette::ColorRole effectFromIndex(int); QPalette editPalette; + Ui::PaletteEditorAdvanced *ui; + int selectedPalette; ColorButton *buttonCentral; ColorButton *buttonEffect; -- cgit v0.12 From 9e2ad8173868fad7b31c1d249a5a816b40a65cfe Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:39 +0200 Subject: Fixed some problems in qtconfig's PreviewWidget One problem was introduced by the convertion of widget from Qt3: there is no such field as "text" in QTextEdit. Also, widget now is not direct ancestor of UI file. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/previewwidget.cpp | 16 ++++++++++------ tools/qtconfig/previewwidget.h | 13 ++++++++++--- tools/qtconfig/previewwidget.ui | 32 ++++++++------------------------ 3 files changed, 28 insertions(+), 33 deletions(-) diff --git a/tools/qtconfig/previewwidget.cpp b/tools/qtconfig/previewwidget.cpp index 4a4a580..0573846 100644 --- a/tools/qtconfig/previewwidget.cpp +++ b/tools/qtconfig/previewwidget.cpp @@ -40,14 +40,15 @@ ****************************************************************************/ #include "previewwidget.h" +#include "ui_previewwidget.h" #include QT_BEGIN_NAMESPACE PreviewWidget::PreviewWidget(QWidget *parent) - : QWidget(parent) + : QWidget(parent), ui(new Ui::PreviewWidget) { - setupUi(this); + ui->setupUi(this); // install event filter on child widgets QList l = findChildren(); @@ -57,13 +58,11 @@ PreviewWidget::PreviewWidget(QWidget *parent) } } - -void PreviewWidget::closeEvent(QCloseEvent *e) +PreviewWidget::~PreviewWidget() { - e->ignore(); + delete ui; } - bool PreviewWidget::eventFilter(QObject *, QEvent *e) { switch (e->type()) { @@ -82,4 +81,9 @@ bool PreviewWidget::eventFilter(QObject *, QEvent *e) return false; } +void PreviewWidget::closeEvent(QCloseEvent *e) +{ + e->ignore(); +} + QT_END_NAMESPACE diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index 1452932..ee3513d 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -42,19 +42,26 @@ #ifndef PREVIEWWIDGET_H #define PREVIEWWIDGET_H -#include "ui_previewwidget.h" +#include + +namespace Ui { + class PreviewWidget; +} QT_BEGIN_NAMESPACE -class PreviewWidget : public QWidget, public Ui::PreviewWidget +class PreviewWidget : public QWidget { Q_OBJECT public: PreviewWidget(QWidget *parent = 0); + ~PreviewWidget(); - void closeEvent(QCloseEvent *); bool eventFilter(QObject *, QEvent *); +private: + void closeEvent(QCloseEvent *); + Ui::PreviewWidget* ui; }; QT_END_NAMESPACE diff --git a/tools/qtconfig/previewwidget.ui b/tools/qtconfig/previewwidget.ui index 9d86a1f..2e0789f 100644 --- a/tools/qtconfig/previewwidget.ui +++ b/tools/qtconfig/previewwidget.ui @@ -46,8 +46,8 @@ 0 0 - 414 - 318 + 398 + 282 @@ -59,21 +59,9 @@ Preview Window - - - 6 - - - 11 - + - - 6 - - - 0 - @@ -225,19 +213,15 @@ 32767 - 50 + 55 true - - <p> -<a href="http://qt.nokia.com">http://qt.nokia.com</a> -</p> -<p> -<a href="http://www.kde.org">http://www.kde.org</a> -</p> + + <p><a href="http://qt.nokia.com">http://qt.nokia.com</a></p> +<p><a href="http://www.kde.org">http://www.kde.org</a></p> @@ -256,7 +240,7 @@ 20 - 20 + 0 -- cgit v0.12 From 68334589014e9b392a8ab274b6ef718e52512f82 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:39 +0200 Subject: Fixed a bug and resolved some translation issues in qtconfig Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index fd083c1..e7d7a13 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -231,7 +231,7 @@ MainWindow::MainWindow() gstyles.sort(); gstylecombo->addItem(desktopThemeName); gstylecombo->setItemData(gstylecombo->findText(desktopThemeName), - tr("Choose style and palette based on your desktop settings."), Qt::ToolTipRole); + tr("Choose style and palette based on your desktop settings."), Qt::ToolTipRole); gstylecombo->addItems(gstyles); QSettings settings(QLatin1String("Trolltech")); @@ -246,7 +246,7 @@ MainWindow::MainWindow() if (index != -1) { gstylecombo->setCurrentIndex(index); } else { // we give up - gstylecombo->addItem(QLatin1String("Unknown")); + gstylecombo->addItem(tr("Unknown")); gstylecombo->setCurrentIndex(gstylecombo->count() - 1); } } @@ -436,7 +436,7 @@ MainWindow::MainWindow() continue; //This is used implicitly from the auto setting GstElement *sink = gst_element_factory_make (qPrintable(name), NULL); if (sink) { - description = QLatin1String(gst_element_factory_get_description (GST_ELEMENT_FACTORY(feature))); + description = QLatin1String(gst_element_factory_get_description(GST_ELEMENT_FACTORY(feature))); audiosinkCombo->addItem(name, name); audiosinkCombo->setItemData(audiosinkCombo->findText(name), description, Qt::ToolTipRole); gst_object_unref (sink); @@ -539,11 +539,11 @@ void MainWindow::fileSave() #ifdef Q_WS_X11 QString style = inputStyle->currentText(); QString str = QLatin1String("On The Spot"); - if (style == trUtf8("Over The Spot")) + if (style == tr("Over The Spot")) str = QLatin1String("Over The Spot"); - else if (style == trUtf8("Off The Spot")) + else if (style == tr("Off The Spot")) str = QLatin1String("Off The Spot"); - else if (style == trUtf8("Root")) + else if (style == tr("Root")) str = QLatin1String("Root"); settings.setValue(QLatin1String("XIMInputStyle"), str); #endif @@ -598,7 +598,7 @@ void MainWindow::fileSave() #endif // Q_WS_X11 setModified(false); - statusBar()->showMessage(QLatin1String("Saved changes.")); + statusBar()->showMessage(tr("Saved changes.")); } void MainWindow::fileExit() @@ -622,7 +622,7 @@ void MainWindow::buildPalette() temp = PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup(i), temp); editPalette = temp; - + setPreviewPalette(editPalette); updateColorButtons(); setModified(true); -- cgit v0.12 From ece4b6c39c32ec32e10cb841157c54d5724c76df Mon Sep 17 00:00:00 2001 From: Boris Date: Wed, 6 Oct 2010 15:51:40 +0200 Subject: Removed inheritance from UI file in qtconfig's MainWindow Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 504 ++++++++++++++++++++++-------------------- tools/qtconfig/mainwindow.h | 10 +- 2 files changed, 269 insertions(+), 245 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index e7d7a13..7301bab 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -40,6 +40,8 @@ ****************************************************************************/ #include "mainwindow.h" +#include "ui_mainwindow.h" + #include "colorbutton.h" #include "previewframe.h" #include "paletteeditoradvanced.h" @@ -179,94 +181,92 @@ static void setStyleHelper(QWidget *w, QStyle *s) } MainWindow::MainWindow() - : QMainWindow(), editPalette(palette()), previewPalette(palette()), previewstyle(0) + : QMainWindow(), ui(new Ui::MainWindow), editPalette(palette()), previewPalette(palette()), + previewstyle(0) { - setupUi(this); + ui->setupUi(this); statusBar(); // signals and slots connections - connect(fontpathlineedit, SIGNAL(returnPressed()), SLOT(addFontpath())); - connect(PushButton15, SIGNAL(clicked()), SLOT(addFontpath())); - connect(PushButton1, SIGNAL(clicked()), SLOT(addSubstitute())); - connect(PushButton14, SIGNAL(clicked()), SLOT(browseFontpath())); - connect(stylecombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(psizecombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(PushButton12, SIGNAL(clicked()), SLOT(downFontpath())); - connect(PushButton3, SIGNAL(clicked()), SLOT(downSubstitute())); - connect(familycombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); - connect(fileExitAction, SIGNAL(activated()), SLOT(fileExit())); - connect(fileSaveAction, SIGNAL(activated()), SLOT(fileSave())); - connect(helpAboutAction, SIGNAL(activated()), SLOT(helpAbout())); - connect(helpAboutQtAction, SIGNAL(activated()), SLOT(helpAboutQt())); - connect(TabWidget3, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); - connect(paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); - connect(PushButton13, SIGNAL(clicked()), SLOT(removeFontpath())); - connect(PushButton4, SIGNAL(clicked()), SLOT(removeSubstitute())); - connect(toolboxeffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(dcispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(cfispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(wslspin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(menueffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(comboeffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(audiosinkCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(videomodeCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(tooltipeffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(strutwidth, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(strutheight, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(effectcheckbox, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(resolvelinks, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(fontembeddingcheckbox, SIGNAL(clicked()), SLOT(somethingModified())); - connect(rtlExtensions, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(inputStyle, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(inputMethod, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(gstylecombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); - connect(familysubcombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); - connect(btnAdvanced, SIGNAL(clicked()), SLOT(tunePalette())); - connect(PushButton11, SIGNAL(clicked()), SLOT(upFontpath())); - connect(PushButton2, SIGNAL(clicked()), SLOT(upSubstitute())); + connect(ui->fontpathlineedit, SIGNAL(returnPressed()), SLOT(addFontpath())); + connect(ui->PushButton15, SIGNAL(clicked()), SLOT(addFontpath())); + connect(ui->PushButton1, SIGNAL(clicked()), SLOT(addSubstitute())); + connect(ui->PushButton14, SIGNAL(clicked()), SLOT(browseFontpath())); + connect(ui->stylecombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(ui->psizecombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(ui->PushButton12, SIGNAL(clicked()), SLOT(downFontpath())); + connect(ui->PushButton3, SIGNAL(clicked()), SLOT(downSubstitute())); + connect(ui->familycombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); + connect(ui->fileExitAction, SIGNAL(activated()), SLOT(fileExit())); + connect(ui->fileSaveAction, SIGNAL(activated()), SLOT(fileSave())); + connect(ui->helpAboutAction, SIGNAL(activated()), SLOT(helpAbout())); + connect(ui->helpAboutQtAction, SIGNAL(activated()), SLOT(helpAboutQt())); + connect(ui->TabWidget3, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); + connect(ui->paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); + connect(ui->PushButton13, SIGNAL(clicked()), SLOT(removeFontpath())); + connect(ui->PushButton4, SIGNAL(clicked()), SLOT(removeSubstitute())); + connect(ui->toolboxeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->dcispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->cfispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->wslspin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->menueffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->comboeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->audiosinkCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->videomodeCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->tooltipeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->strutwidth, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->strutheight, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->effectcheckbox, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->resolvelinks, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->fontembeddingcheckbox, SIGNAL(clicked()), SLOT(somethingModified())); + connect(ui->rtlExtensions, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->inputStyle, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->inputMethod, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->gstylecombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); + connect(ui->familysubcombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); + connect(ui->btnAdvanced, SIGNAL(clicked()), SLOT(tunePalette())); + connect(ui->PushButton11, SIGNAL(clicked()), SLOT(upFontpath())); + connect(ui->PushButton2, SIGNAL(clicked()), SLOT(upSubstitute())); modified = true; desktopThemeName = tr("Desktop Settings (Default)"); QStringList gstyles = QStyleFactory::keys(); gstyles.sort(); - gstylecombo->addItem(desktopThemeName); - gstylecombo->setItemData(gstylecombo->findText(desktopThemeName), - tr("Choose style and palette based on your desktop settings."), Qt::ToolTipRole); - gstylecombo->addItems(gstyles); + ui->gstylecombo->addItem(desktopThemeName); + ui->gstylecombo->setItemData(ui->gstylecombo->findText(desktopThemeName), + tr("Choose style and palette based on your desktop settings."), + Qt::ToolTipRole); + ui->gstylecombo->addItems(gstyles); QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QString currentstyle = settings.value(QLatin1String("style")).toString(); if (currentstyle.isEmpty()) { - gstylecombo->setCurrentIndex(gstylecombo->findText(desktopThemeName)); + ui->gstylecombo->setCurrentIndex(ui->gstylecombo->findText(desktopThemeName)); currentstyle = QApplication::style()->objectName(); } else { - int index = gstylecombo->findText(currentstyle, Qt::MatchFixedString); + int index = ui->gstylecombo->findText(currentstyle, Qt::MatchFixedString); if (index != -1) { - gstylecombo->setCurrentIndex(index); + ui->gstylecombo->setCurrentIndex(index); } else { // we give up - gstylecombo->addItem(tr("Unknown")); - gstylecombo->setCurrentIndex(gstylecombo->count() - 1); + ui->gstylecombo->addItem(tr("Unknown")); + ui->gstylecombo->setCurrentIndex(ui->gstylecombo->count() - 1); } } - buttonMainColor->setColor(palette().color(QPalette::Active, - QPalette::Button)); - buttonWindowColor->setColor(palette().color(QPalette::Active, - QPalette::Window)); - connect(buttonMainColor, SIGNAL(colorChanged(QColor)), - this, SLOT(buildPalette())); - connect(buttonWindowColor, SIGNAL(colorChanged(QColor)), - this, SLOT(buildPalette())); + ui->buttonMainColor->setColor(palette().color(QPalette::Active, QPalette::Button)); + ui->buttonWindowColor->setColor(palette().color(QPalette::Active, QPalette::Window)); + connect(ui->buttonMainColor, SIGNAL(colorChanged(QColor)), SLOT(buildPalette())); + connect(ui->buttonWindowColor, SIGNAL(colorChanged(QColor)), SLOT(buildPalette())); if (X11->desktopEnvironment == DE_KDE) - colorConfig->hide(); + ui->colorConfig->hide(); else - labelKDENote->hide(); + ui->labelKDENote->hide(); QFontDatabase db; QStringList families = db.families(); - familycombo->addItems(families); + ui->familycombo->addItems(families); QStringList fs = families; QStringList fs2 = QFont::substitutions(); @@ -277,41 +277,41 @@ MainWindow::MainWindow() fsit++; } fs.sort(); - familysubcombo->addItems(fs); + ui->familysubcombo->addItems(fs); - choosesubcombo->addItems(families); + ui->choosesubcombo->addItems(families); QList sizes = db.standardSizes(); foreach(int i, sizes) - psizecombo->addItem(QString::number(i)); + ui->psizecombo->addItem(QString::number(i)); - dcispin->setValue(QApplication::doubleClickInterval()); - cfispin->setValue(QApplication::cursorFlashTime()); - wslspin->setValue(QApplication::wheelScrollLines()); + ui->dcispin->setValue(QApplication::doubleClickInterval()); + ui->cfispin->setValue(QApplication::cursorFlashTime()); + ui->wslspin->setValue(QApplication::wheelScrollLines()); // ############# // resolvelinks->setChecked(qt_resolve_symlinks); - effectcheckbox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); - effectbase->setEnabled(effectcheckbox->isChecked()); + ui->effectcheckbox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); + ui->effectbase->setEnabled(ui->effectcheckbox->isChecked()); if (QApplication::isEffectEnabled(Qt::UI_FadeMenu)) - menueffect->setCurrentIndex(2); + ui->menueffect->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateMenu)) - menueffect->setCurrentIndex(1); + ui->menueffect->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo)) - comboeffect->setCurrentIndex(1); + ui->comboeffect->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)) - tooltipeffect->setCurrentIndex(2); + ui->tooltipeffect->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) - tooltipeffect->setCurrentIndex(1); + ui->tooltipeffect->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateToolBox)) - toolboxeffect->setCurrentIndex(1); + ui->toolboxeffect->setCurrentIndex(1); QSize globalStrut = QApplication::globalStrut(); - strutwidth->setValue(globalStrut.width()); - strutheight->setValue(globalStrut.height()); + ui->strutwidth->setValue(globalStrut.width()); + ui->strutheight->setValue(globalStrut.height()); // find the default family QStringList::Iterator sit = families.begin(); @@ -330,10 +330,10 @@ MainWindow::MainWindow() if (i == -1) // no clue about the current font i = 0; - familycombo->setCurrentIndex(i); + ui->familycombo->setCurrentIndex(i); - QStringList styles = db.styles(familycombo->currentText()); - stylecombo->addItems(styles); + QStringList styles = db.styles(ui->familycombo->currentText()); + ui->stylecombo->addItems(styles); QString stylestring = db.styleString(QApplication::font()); sit = styles.begin(); @@ -352,34 +352,35 @@ MainWindow::MainWindow() i = possible; if (i == -1) // no clue about the current font i = 0; - stylecombo->setCurrentIndex(i); + ui->stylecombo->setCurrentIndex(i); i = 0; - for (int psize = QApplication::font().pointSize(); i < psizecombo->count(); ++i) { - const int sz = psizecombo->itemText(i).toInt(); + for (int psize = QApplication::font().pointSize(); i < ui->psizecombo->count(); ++i) { + const int sz = ui->psizecombo->itemText(i).toInt(); if (sz == psize) { - psizecombo->setCurrentIndex(i); + ui->psizecombo->setCurrentIndex(i); break; } else if(sz > psize) { - psizecombo->insertItem(i, QString::number(psize)); - psizecombo->setCurrentIndex(i); + ui->psizecombo->insertItem(i, QString::number(psize)); + ui->psizecombo->setCurrentIndex(i); break; } } - QStringList subs = QFont::substitutes(familysubcombo->currentText()); - sublistbox->clear(); - sublistbox->insertItems(0, subs); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); - rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false).toBool()); + ui->rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false) + .toBool()); #ifdef Q_WS_X11 QString settingsInputStyle = settings.value(QLatin1String("XIMInputStyle")).toString(); if (!settingsInputStyle.isEmpty()) - inputStyle->setCurrentIndex(inputStyle->findText(settingsInputStyle)); + ui->inputStyle->setCurrentIndex(ui->inputStyle->findText(settingsInputStyle)); #else - inputStyle->hide(); - inputStyleLabel->hide(); + ui->inputStyle->hide(); + ui->inputStyleLabel->hide(); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) @@ -398,32 +399,35 @@ MainWindow::MainWindow() } if (inputMethodIndex == -1 && !inputMethods.isEmpty()) inputMethodIndex = 0; - inputMethod->addItems(inputMethods); - inputMethod->setCurrentIndex(inputMethodIndex); + ui->inputMethod->addItems(inputMethods); + ui->inputMethod->setCurrentIndex(inputMethodIndex); #else - inputMethod->hide(); - inputMethodLabel->hide(); + ui->inputMethod->hide(); + ui->inputMethodLabel->hide(); #endif - fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true).toBool()); + ui->fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true) + .toBool()); fontpaths = settings.value(QLatin1String("fontPath")).toStringList(); - fontpathlistbox->insertItems(0, fontpaths); - - audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); - audiosinkCombo->setItemData(audiosinkCombo->findText(tr("Auto (default)")), - tr("Choose audio output automatically."), Qt::ToolTipRole); - audiosinkCombo->addItem(tr("aRts"), QLatin1String("artssink")); - audiosinkCombo->setItemData(audiosinkCombo->findText(tr("aRts")), - tr("Experimental aRts support for GStreamer."), Qt::ToolTipRole); + ui->fontpathlistbox->insertItems(0, fontpaths); + + ui->audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); + ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(tr("Auto (default)")), + tr("Choose audio output automatically."), Qt::ToolTipRole); + ui->audiosinkCombo->addItem(tr("aRts"), QLatin1String("artssink")); + ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(tr("aRts")), + tr("Experimental aRts support for GStreamer."), + Qt::ToolTipRole); #ifdef HAVE_PHONON phononVersionLabel->setText(QLatin1String(Phonon::phononVersion())); #endif #ifndef QT_NO_GSTREAMER if (gst_init_check(0, 0, 0)) { gchar *versionString = gst_version_string(); - gstversionLabel->setText(QLatin1String(versionString)); + ui->gstversionLabel->setText(QLatin1String(versionString)); g_free(versionString); - GList *factoryList = gst_registry_get_feature_list(gst_registry_get_default (), GST_TYPE_ELEMENT_FACTORY); + GList *factoryList = gst_registry_get_feature_list(gst_registry_get_default(), + GST_TYPE_ELEMENT_FACTORY); QString name, klass, description; for (GList *iter = g_list_first(factoryList) ; iter != NULL ; iter = g_list_next(iter)) { GstPluginFeature *feature = GST_PLUGIN_FEATURE(iter->data); @@ -431,14 +435,15 @@ MainWindow::MainWindow() if (klass == QLatin1String("Sink/Audio")) { name = QLatin1String(GST_PLUGIN_FEATURE_NAME(feature)); if (name == QLatin1String("sfsink")) - continue; //useless to output audio to file when you cannot set the file path + continue; // useless to output audio to file when you cannot set the file path else if (name == QLatin1String("autoaudiosink")) continue; //This is used implicitly from the auto setting GstElement *sink = gst_element_factory_make (qPrintable(name), NULL); if (sink) { description = QLatin1String(gst_element_factory_get_description(GST_ELEMENT_FACTORY(feature))); - audiosinkCombo->addItem(name, name); - audiosinkCombo->setItemData(audiosinkCombo->findText(name), description, Qt::ToolTipRole); + ui->audiosinkCombo->addItem(name, name); + ui->audiosinkCombo->setItemData(audiosinkCombo->findText(name), description, + Qt::ToolTipRole); gst_object_unref (sink); } } @@ -446,31 +451,40 @@ MainWindow::MainWindow() g_list_free(factoryList); } #else - tab4->setEnabled(false); - phononLabel->setText(tr("Phonon GStreamer backend not available.")); + ui->tab4->setEnabled(false); + ui->phononLabel->setText(tr("Phonon GStreamer backend not available.")); #endif - videomodeCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); - videomodeCombo->setItemData(videomodeCombo->findText(tr("Auto (default)")), tr("Choose render method automatically"), Qt::ToolTipRole); + ui->videomodeCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); + ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("Auto (default)")), + tr("Choose render method automatically"), Qt::ToolTipRole); #ifdef Q_WS_X11 - videomodeCombo->addItem(tr("X11"), QLatin1String("X11")); - videomodeCombo->setItemData(videomodeCombo->findText(tr("X11")), tr("Use X11 Overlays"), Qt::ToolTipRole); + ui->videomodeCombo->addItem(tr("X11"), QLatin1String("X11")); + ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("X11")), + tr("Use X11 Overlays"), Qt::ToolTipRole); #endif #ifndef QT_NO_OPENGL +<<<<<<< HEAD videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); videomodeCombo->setItemData(videomodeCombo->findText(tr("OpenGL")), tr("Use OpenGL if available"), Qt::ToolTipRole); +======= + ui->videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); + ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("OpenGL")), + tr("Use OpenGL if avaiable"), Qt::ToolTipRole); +>>>>>>> Removed inheritance from UI file in qtconfig's MainWindow #endif - videomodeCombo->addItem(tr("Software"), QLatin1String("Software")); - videomodeCombo->setItemData(videomodeCombo->findText(tr("Software")), tr("Use simple software rendering"), Qt::ToolTipRole); + ui->videomodeCombo->addItem(tr("Software"), QLatin1String("Software")); + ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("Software")), + tr("Use simple software rendering"), Qt::ToolTipRole); QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString(); - audiosinkCombo->setCurrentIndex(audiosinkCombo->findData(audioSink)); - videomodeCombo->setCurrentIndex(videomodeCombo->findData(videoMode)); + ui->audiosinkCombo->setCurrentIndex(ui->audiosinkCombo->findData(audioSink)); + ui->videomodeCombo->setCurrentIndex(ui->videomodeCombo->findData(videoMode)); settings.endGroup(); // Qt - helpview->setText(tr(appearance_text)); + ui->helpview->setText(tr(appearance_text)); setModified(false); updateStyleLayout(); @@ -478,6 +492,7 @@ MainWindow::MainWindow() MainWindow::~MainWindow() { + delete ui; } #ifdef Q_WS_X11 @@ -497,23 +512,23 @@ void MainWindow::fileSave() QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QFontDatabase db; - QFont font = db.font(familycombo->currentText(), - stylecombo->currentText(), - psizecombo->currentText().toInt()); + QFont font = db.font(ui->familycombo->currentText(), + ui->stylecombo->currentText(), + ui->psizecombo->currentText().toInt()); QStringList actcg, inactcg, discg; - bool overrideDesktopSettings = (gstylecombo->currentText() != desktopThemeName); + bool overrideDesktopSettings = (ui->gstylecombo->currentText() != desktopThemeName); if (overrideDesktopSettings) { int i; for (i = 0; i < QPalette::NColorRoles; i++) actcg << editPalette.color(QPalette::Active, - (QPalette::ColorRole) i).name(); + QPalette::ColorRole(i)).name(); for (i = 0; i < QPalette::NColorRoles; i++) inactcg << editPalette.color(QPalette::Inactive, - (QPalette::ColorRole) i).name(); + QPalette::ColorRole(i)).name(); for (i = 0; i < QPalette::NColorRoles; i++) discg << editPalette.color(QPalette::Disabled, - (QPalette::ColorRole) i).name(); + QPalette::ColorRole(i)).name(); } settings.setValue(QLatin1String("font"), font.toString()); @@ -522,22 +537,24 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("Palette/disabled"), discg); settings.setValue(QLatin1String("fontPath"), fontpaths); - settings.setValue(QLatin1String("embedFonts"), fontembeddingcheckbox->isChecked()); - settings.setValue(QLatin1String("style"), overrideDesktopSettings ? gstylecombo->currentText() : QString()); + settings.setValue(QLatin1String("embedFonts"), ui->fontembeddingcheckbox->isChecked()); + settings.setValue(QLatin1String("style"), + overrideDesktopSettings ? ui->gstylecombo->currentText() : QString()); - settings.setValue(QLatin1String("doubleClickInterval"), dcispin->value()); - settings.setValue(QLatin1String("cursorFlashTime"), cfispin->value() == 9 ? 0 : cfispin->value()); - settings.setValue(QLatin1String("wheelScrollLines"), wslspin->value()); - settings.setValue(QLatin1String("resolveSymlinks"), resolvelinks->isChecked()); + settings.setValue(QLatin1String("doubleClickInterval"), ui->dcispin->value()); + settings.setValue(QLatin1String("cursorFlashTime"), + ui->cfispin->value() == 9 ? 0 : ui->cfispin->value()); + settings.setValue(QLatin1String("wheelScrollLines"), ui->wslspin->value()); + settings.setValue(QLatin1String("resolveSymlinks"), ui->resolvelinks->isChecked()); - QSize strut(strutwidth->value(), strutheight->value()); + QSize strut(ui->strutwidth->value(), ui->strutheight->value()); settings.setValue(QLatin1String("globalStrut/width"), strut.width()); settings.setValue(QLatin1String("globalStrut/height"), strut.height()); - settings.setValue(QLatin1String("useRtlExtensions"), rtlExtensions->isChecked()); + settings.setValue(QLatin1String("useRtlExtensions"), ui->rtlExtensions->isChecked()); #ifdef Q_WS_X11 - QString style = inputStyle->currentText(); + QString style = ui->inputStyle->currentText(); QString str = QLatin1String("On The Spot"); if (style == tr("Over The Spot")) str = QLatin1String("Over The Spot"); @@ -548,33 +565,35 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("XIMInputStyle"), str); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) - settings.setValue(QLatin1String("DefaultInputMethod"), inputMethod->currentText()); + settings.setValue(QLatin1String("DefaultInputMethod"), ui->inputMethod->currentText()); #endif QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString(); - settings.setValue(QLatin1String("audiosink"), audiosinkCombo->itemData(audiosinkCombo->currentIndex())); - settings.setValue(QLatin1String("videomode"), videomodeCombo->itemData(videomodeCombo->currentIndex())); + settings.setValue(QLatin1String("audiosink"), + ui->audiosinkCombo->itemData(ui->audiosinkCombo->currentIndex())); + settings.setValue(QLatin1String("videomode"), + ui->videomodeCombo->itemData(ui->videomodeCombo->currentIndex())); QStringList effects; - if (effectcheckbox->isChecked()) { + if (ui->effectcheckbox->isChecked()) { effects << QLatin1String("general"); - switch (menueffect->currentIndex()) { + switch (ui->menueffect->currentIndex()) { case 1: effects << QLatin1String("animatemenu"); break; case 2: effects << QLatin1String("fademenu"); break; } - switch (comboeffect->currentIndex()) { + switch (ui->comboeffect->currentIndex()) { case 1: effects << QLatin1String("animatecombo"); break; } - switch (tooltipeffect->currentIndex()) { + switch (ui->tooltipeffect->currentIndex()) { case 1: effects << QLatin1String("animatetooltip"); break; case 2: effects << QLatin1String("fadetooltip"); break; } - switch (toolboxeffect->currentIndex()) { + switch (ui->toolboxeffect->currentIndex()) { case 1: effects << QLatin1String("animatetoolbox"); break; } } else @@ -612,12 +631,12 @@ void MainWindow::setModified(bool m) return; modified = m; - fileSaveAction->setEnabled(m); + ui->fileSaveAction->setEnabled(m); } void MainWindow::buildPalette() { - QPalette temp(buttonMainColor->color(), buttonWindowColor->color()); + QPalette temp(ui->buttonMainColor->color(), ui->buttonWindowColor->color()); for (int i = 0; i < QPalette::NColorGroups; i++) temp = PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup(i), temp); @@ -630,7 +649,7 @@ void MainWindow::buildPalette() void MainWindow::setPreviewPalette(const QPalette &pal) { - QPalette::ColorGroup colorGroup = groupFromIndex(paletteCombo->currentIndex()); + QPalette::ColorGroup colorGroup = groupFromIndex(ui->paletteCombo->currentIndex()); for (int i = 0; i < QPalette::NColorGroups; i++) { for (int j = 0; j < QPalette::NColorRoles; j++) { @@ -640,13 +659,13 @@ void MainWindow::setPreviewPalette(const QPalette &pal) } } - previewFrame->setPreviewPalette(previewPalette); + ui->previewFrame->setPreviewPalette(previewPalette); } void MainWindow::updateColorButtons() { - buttonMainColor->setColor(editPalette.color(QPalette::Active, QPalette::Button)); - buttonWindowColor->setColor(editPalette.color(QPalette::Active, QPalette::Window)); + ui->buttonMainColor->setColor(editPalette.color(QPalette::Active, QPalette::Button)); + ui->buttonWindowColor->setColor(editPalette.color(QPalette::Active, QPalette::Window)); } void MainWindow::tunePalette() @@ -669,10 +688,10 @@ void MainWindow::paletteSelected(int) void MainWindow::updateStyleLayout() { - QString currentStyle = gstylecombo->currentText(); + QString currentStyle = ui->gstylecombo->currentText(); bool autoStyle = (currentStyle == desktopThemeName); - previewFrame->setPreviewVisible(!autoStyle); - groupAutoPalette->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); + ui->previewFrame->setPreviewVisible(!autoStyle); + ui->groupAutoPalette->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); } void MainWindow::styleSelected(const QString &stylename) @@ -684,7 +703,7 @@ void MainWindow::styleSelected(const QString &stylename) style = QStyleFactory::create(stylename); if (!style) return; - setStyleHelper(previewFrame, style); + setStyleHelper(ui->previewFrame, style); delete previewstyle; previewstyle = style; setModified(true); @@ -696,169 +715,170 @@ void MainWindow::familySelected(const QString &family) { QFontDatabase db; QStringList styles = db.styles(family); - stylecombo->clear(); - stylecombo->addItems(styles); - familysubcombo->addItem(family); + ui->stylecombo->clear(); + ui->stylecombo->addItems(styles); + ui->familysubcombo->addItem(family); buildFont(); } void MainWindow::buildFont() { QFontDatabase db; - QFont font = db.font(familycombo->currentText(), - stylecombo->currentText(), - psizecombo->currentText().toInt()); - samplelineedit->setFont(font); + QFont font = db.font(ui->familycombo->currentText(), + ui->stylecombo->currentText(), + ui->psizecombo->currentText().toInt()); + ui->samplelineedit->setFont(font); setModified(true); } void MainWindow::substituteSelected(const QString &family) { QStringList subs = QFont::substitutes(family); - sublistbox->clear(); - sublistbox->insertItems(0, subs); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); } void MainWindow::removeSubstitute() { - if (!sublistbox->currentItem()) + if (!ui->sublistbox->currentItem()) return; - int row = sublistbox->currentRow(); - QStringList subs = QFont::substitutes(familysubcombo->currentText()); - subs.removeAt(sublistbox->currentRow()); - sublistbox->clear(); - sublistbox->insertItems(0, subs); - if (row > sublistbox->count()) - row = sublistbox->count() - 1; - sublistbox->setCurrentRow(row); - QFont::removeSubstitution(familysubcombo->currentText()); - QFont::insertSubstitutions(familysubcombo->currentText(), subs); + int row = ui->sublistbox->currentRow(); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + subs.removeAt(ui->sublistbox->currentRow()); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); + if (row > ui->sublistbox->count()) + row = ui->sublistbox->count() - 1; + ui->sublistbox->setCurrentRow(row); + QFont::removeSubstitution(ui->familysubcombo->currentText()); + QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); setModified(true); } void MainWindow::addSubstitute() { - if (!sublistbox->currentItem()) { - QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); - QStringList subs = QFont::substitutes(familysubcombo->currentText()); - sublistbox->clear(); - sublistbox->insertItems(0, subs); + if (!ui->sublistbox->currentItem()) { + QFont::insertSubstitution(ui->familysubcombo->currentText(), + ui->choosesubcombo->currentText()); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); setModified(true); return; } - int row = sublistbox->currentRow(); - QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); - QStringList subs = QFont::substitutes(familysubcombo->currentText()); - sublistbox->clear(); - sublistbox->insertItems(0, subs); - sublistbox->setCurrentRow(row); + int row = ui->sublistbox->currentRow(); + QFont::insertSubstitution(ui->familysubcombo->currentText(), ui->choosesubcombo->currentText()); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); + ui->sublistbox->setCurrentRow(row); setModified(true); } void MainWindow::downSubstitute() { - if (!sublistbox->currentItem() || sublistbox->currentRow() >= sublistbox->count()) + if (!ui->sublistbox->currentItem() || ui->sublistbox->currentRow() >= ui->sublistbox->count()) return; - int row = sublistbox->currentRow(); - QStringList subs = QFont::substitutes(familysubcombo->currentText()); + int row = ui->sublistbox->currentRow(); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); QString fam = subs.at(row); subs.removeAt(row); subs.insert(row + 1, fam); - sublistbox->clear(); - sublistbox->insertItems(0, subs); - sublistbox->setCurrentRow(row + 1); - QFont::removeSubstitution(familysubcombo->currentText()); - QFont::insertSubstitutions(familysubcombo->currentText(), subs); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); + ui->sublistbox->setCurrentRow(row + 1); + QFont::removeSubstitution(ui->familysubcombo->currentText()); + QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); setModified(true); } void MainWindow::upSubstitute() { - if (!sublistbox->currentItem() || sublistbox->currentRow() < 1) + if (!ui->sublistbox->currentItem() || ui->sublistbox->currentRow() < 1) return; - int row = sublistbox->currentRow(); - QStringList subs = QFont::substitutes(familysubcombo->currentText()); + int row = ui->sublistbox->currentRow(); + QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); QString fam = subs.at(row); subs.removeAt(row); subs.insert(row-1, fam); - sublistbox->clear(); - sublistbox->insertItems(0, subs); - sublistbox->setCurrentRow(row - 1); - QFont::removeSubstitution(familysubcombo->currentText()); - QFont::insertSubstitutions(familysubcombo->currentText(), subs); + ui->sublistbox->clear(); + ui->sublistbox->insertItems(0, subs); + ui->sublistbox->setCurrentRow(row - 1); + QFont::removeSubstitution(ui->familysubcombo->currentText()); + QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); setModified(true); } void MainWindow::removeFontpath() { - if (!fontpathlistbox->currentItem()) + if (!ui->fontpathlistbox->currentItem()) return; - int row = fontpathlistbox->currentRow(); + int row = ui->fontpathlistbox->currentRow(); fontpaths.removeAt(row); - fontpathlistbox->clear(); - fontpathlistbox->insertItems(0, fontpaths); - if (row > fontpathlistbox->count()) - row = fontpathlistbox->count() - 1; - fontpathlistbox->setCurrentRow(row); + ui->fontpathlistbox->clear(); + ui->fontpathlistbox->insertItems(0, fontpaths); + if (row > ui->fontpathlistbox->count()) + row = ui->fontpathlistbox->count() - 1; + ui->fontpathlistbox->setCurrentRow(row); setModified(true); } void MainWindow::addFontpath() { - if (fontpathlineedit->text().isEmpty()) + if (ui->fontpathlineedit->text().isEmpty()) return; - if (!fontpathlistbox->currentItem()) { - fontpaths.append(fontpathlineedit->text()); - fontpathlistbox->clear(); - fontpathlistbox->insertItems(0, fontpaths); + if (!ui->fontpathlistbox->currentItem()) { + fontpaths.append(ui->fontpathlineedit->text()); + ui->fontpathlistbox->clear(); + ui->fontpathlistbox->insertItems(0, fontpaths); setModified(true); return; } - int row = fontpathlistbox->currentRow(); - fontpaths.insert(row + 1, fontpathlineedit->text()); - fontpathlistbox->clear(); - fontpathlistbox->insertItems(0, fontpaths); - fontpathlistbox->setCurrentRow(row); + int row = ui->fontpathlistbox->currentRow(); + fontpaths.insert(row + 1, ui->fontpathlineedit->text()); + ui->fontpathlistbox->clear(); + ui->fontpathlistbox->insertItems(0, fontpaths); + ui->fontpathlistbox->setCurrentRow(row); setModified(true); } void MainWindow::downFontpath() { - if (!fontpathlistbox->currentItem() - || fontpathlistbox->currentRow() >= (fontpathlistbox->count() - 1)) { + if (!ui->fontpathlistbox->currentItem() + || ui->fontpathlistbox->currentRow() >= (ui->fontpathlistbox->count() - 1)) { return; } - int row = fontpathlistbox->currentRow(); + int row = ui->fontpathlistbox->currentRow(); QString fam = fontpaths.at(row); fontpaths.removeAt(row); fontpaths.insert(row + 1, fam); - fontpathlistbox->clear(); - fontpathlistbox->insertItems(0, fontpaths); - fontpathlistbox->setCurrentRow(row + 1); + ui->fontpathlistbox->clear(); + ui->fontpathlistbox->insertItems(0, fontpaths); + ui->fontpathlistbox->setCurrentRow(row + 1); setModified(true); } void MainWindow::upFontpath() { - if (!fontpathlistbox->currentItem() || fontpathlistbox->currentRow() < 1) + if (!ui->fontpathlistbox->currentItem() || ui->fontpathlistbox->currentRow() < 1) return; - int row = fontpathlistbox->currentRow(); + int row = ui->fontpathlistbox->currentRow(); QString fam = fontpaths.at(row); fontpaths.removeAt(row); fontpaths.insert(row - 1, fam); - fontpathlistbox->clear(); - fontpathlistbox->insertItems(0, fontpaths); - fontpathlistbox->setCurrentRow(row - 1); + ui->fontpathlistbox->clear(); + ui->fontpathlistbox->insertItems(0, fontpaths); + ui->fontpathlistbox->setCurrentRow(row - 1); setModified(true); } @@ -868,7 +888,7 @@ void MainWindow::browseFontpath() if (dirname.isNull()) return; - fontpathlineedit->setText(dirname); + ui->fontpathlineedit->setText(dirname); } void MainWindow::somethingModified() @@ -895,16 +915,16 @@ void MainWindow::helpAboutQt() void MainWindow::pageChanged(QWidget *page) { - if (page == tab) - helpview->setText(tr(interface_text)); - else if (page == tab1) - helpview->setText(tr(appearance_text)); - else if (page == tab2) - helpview->setText(tr(font_text)); - else if (page == tab3) - helpview->setText(tr(printer_text)); - else if (page == tab4) - helpview->setText(tr(phonon_text)); + if (page == ui->tab) + ui->helpview->setText(tr(interface_text)); + else if (page == ui->tab1) + ui->helpview->setText(tr(appearance_text)); + else if (page == ui->tab2) + ui->helpview->setText(tr(font_text)); + else if (page == ui->tab3) + ui->helpview->setText(tr(printer_text)); + else if (page == ui->tab4) + ui->helpview->setText(tr(phonon_text)); } void MainWindow::closeEvent(QCloseEvent *e) diff --git a/tools/qtconfig/mainwindow.h b/tools/qtconfig/mainwindow.h index 76e3691..7cc6522 100644 --- a/tools/qtconfig/mainwindow.h +++ b/tools/qtconfig/mainwindow.h @@ -42,11 +42,15 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include "ui_mainwindow.h" +namespace Ui { + class MainWindow; +} + +#include QT_BEGIN_NAMESPACE -class MainWindow : public QMainWindow, public Ui::MainWindow +class MainWindow : public QMainWindow { Q_OBJECT @@ -56,7 +60,6 @@ public: void closeEvent(QCloseEvent *); - public slots: virtual void buildPalette(); virtual void buildFont(); @@ -93,6 +96,7 @@ private: void setModified(bool); + Ui::MainWindow *ui; QString desktopThemeName; QPalette editPalette, previewPalette; QStyle *previewstyle; -- cgit v0.12 From 668afe43593ae95217c93be5ac4a8d3f5e833e89 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:41 +0200 Subject: Renamed controls in qtconfig's MainWindow All the controls are ensured to be named according to a Qt Coding Style. The code is much more readable now. Also, the html code inserts and tab stops in UI was fixed. Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 410 +++++++++++++++++++++--------------------- tools/qtconfig/mainwindow.ui | 293 +++++++++++++++--------------- 2 files changed, 357 insertions(+), 346 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 7301bab..266d9e4 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -188,70 +188,70 @@ MainWindow::MainWindow() statusBar(); // signals and slots connections - connect(ui->fontpathlineedit, SIGNAL(returnPressed()), SLOT(addFontpath())); - connect(ui->PushButton15, SIGNAL(clicked()), SLOT(addFontpath())); - connect(ui->PushButton1, SIGNAL(clicked()), SLOT(addSubstitute())); - connect(ui->PushButton14, SIGNAL(clicked()), SLOT(browseFontpath())); - connect(ui->stylecombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(ui->psizecombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(ui->PushButton12, SIGNAL(clicked()), SLOT(downFontpath())); - connect(ui->PushButton3, SIGNAL(clicked()), SLOT(downSubstitute())); - connect(ui->familycombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); + connect(ui->fontPathLineEdit, SIGNAL(returnPressed()), SLOT(addFontpath())); + connect(ui->addFontPathButton, SIGNAL(clicked()), SLOT(addFontpath())); + connect(ui->addSubstitutionButton, SIGNAL(clicked()), SLOT(addSubstitute())); + connect(ui->browseFontPathButton, SIGNAL(clicked()), SLOT(browseFontpath())); + connect(ui->fontStyleCombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(ui->pointSizeCombo, SIGNAL(activated(int)), SLOT(buildFont())); + connect(ui->downFontpathButton, SIGNAL(clicked()), SLOT(downFontpath())); + connect(ui->downSubstitutionButton, SIGNAL(clicked()), SLOT(downSubstitute())); + connect(ui->fontFamilyCombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); connect(ui->fileExitAction, SIGNAL(activated()), SLOT(fileExit())); connect(ui->fileSaveAction, SIGNAL(activated()), SLOT(fileSave())); connect(ui->helpAboutAction, SIGNAL(activated()), SLOT(helpAbout())); connect(ui->helpAboutQtAction, SIGNAL(activated()), SLOT(helpAboutQt())); - connect(ui->TabWidget3, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); + connect(ui->mainTabWidget, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); connect(ui->paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); - connect(ui->PushButton13, SIGNAL(clicked()), SLOT(removeFontpath())); - connect(ui->PushButton4, SIGNAL(clicked()), SLOT(removeSubstitute())); - connect(ui->toolboxeffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->dcispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->cfispin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->wslspin, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->menueffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->comboeffect, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->removeFontpathButton, SIGNAL(clicked()), SLOT(removeFontpath())); + connect(ui->removeSubstitutionButton, SIGNAL(clicked()), SLOT(removeSubstitute())); + connect(ui->toolBoxEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->doubleClickIntervalSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->cursorFlashTimeSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->wheelScrollLinesSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->menuEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->comboEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); connect(ui->audiosinkCombo, SIGNAL(activated(int)), SLOT(somethingModified())); connect(ui->videomodeCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->tooltipeffect, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->strutwidth, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->strutheight, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->effectcheckbox, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->resolvelinks, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->fontembeddingcheckbox, SIGNAL(clicked()), SLOT(somethingModified())); - connect(ui->rtlExtensions, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->inputStyle, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->inputMethod, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->gstylecombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); - connect(ui->familysubcombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); - connect(ui->btnAdvanced, SIGNAL(clicked()), SLOT(tunePalette())); - connect(ui->PushButton11, SIGNAL(clicked()), SLOT(upFontpath())); - connect(ui->PushButton2, SIGNAL(clicked()), SLOT(upSubstitute())); + connect(ui->toolTipEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->strutWidthSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->strutHeightSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); + connect(ui->effectsCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->resolveLinksCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->fontEmbeddingCheckBox, SIGNAL(clicked()), SLOT(somethingModified())); + connect(ui->rtlExtensionsCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); + connect(ui->inputStyleCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->inputMethodCombo, SIGNAL(activated(int)), SLOT(somethingModified())); + connect(ui->guiStyleCombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); + connect(ui->familySubstitutionCombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); + connect(ui->tunePaletteButton, SIGNAL(clicked()), SLOT(tunePalette())); + connect(ui->upFontpathButton, SIGNAL(clicked()), SLOT(upFontpath())); + connect(ui->upSubstitutionButton, SIGNAL(clicked()), SLOT(upSubstitute())); modified = true; desktopThemeName = tr("Desktop Settings (Default)"); QStringList gstyles = QStyleFactory::keys(); gstyles.sort(); - ui->gstylecombo->addItem(desktopThemeName); - ui->gstylecombo->setItemData(ui->gstylecombo->findText(desktopThemeName), - tr("Choose style and palette based on your desktop settings."), - Qt::ToolTipRole); - ui->gstylecombo->addItems(gstyles); + ui->guiStyleCombo->addItem(desktopThemeName); + ui->guiStyleCombo->setItemData(ui->guiStyleCombo->findText(desktopThemeName), + tr("Choose style and palette based on your desktop settings."), + Qt::ToolTipRole); + ui->guiStyleCombo->addItems(gstyles); QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QString currentstyle = settings.value(QLatin1String("style")).toString(); if (currentstyle.isEmpty()) { - ui->gstylecombo->setCurrentIndex(ui->gstylecombo->findText(desktopThemeName)); + ui->guiStyleCombo->setCurrentIndex(ui->guiStyleCombo->findText(desktopThemeName)); currentstyle = QApplication::style()->objectName(); } else { - int index = ui->gstylecombo->findText(currentstyle, Qt::MatchFixedString); + int index = ui->guiStyleCombo->findText(currentstyle, Qt::MatchFixedString); if (index != -1) { - ui->gstylecombo->setCurrentIndex(index); + ui->guiStyleCombo->setCurrentIndex(index); } else { // we give up - ui->gstylecombo->addItem(tr("Unknown")); - ui->gstylecombo->setCurrentIndex(ui->gstylecombo->count() - 1); + ui->guiStyleCombo->addItem(tr("Unknown")); + ui->guiStyleCombo->setCurrentIndex(ui->guiStyleCombo->count() - 1); } } ui->buttonMainColor->setColor(palette().color(QPalette::Active, QPalette::Button)); @@ -262,11 +262,11 @@ MainWindow::MainWindow() if (X11->desktopEnvironment == DE_KDE) ui->colorConfig->hide(); else - ui->labelKDENote->hide(); + ui->kdeNoteLabel->hide(); QFontDatabase db; QStringList families = db.families(); - ui->familycombo->addItems(families); + ui->fontFamilyCombo->addItems(families); QStringList fs = families; QStringList fs2 = QFont::substitutions(); @@ -277,41 +277,41 @@ MainWindow::MainWindow() fsit++; } fs.sort(); - ui->familysubcombo->addItems(fs); + ui->familySubstitutionCombo->addItems(fs); - ui->choosesubcombo->addItems(families); + ui->chooseSubstitutionCombo->addItems(families); QList sizes = db.standardSizes(); foreach(int i, sizes) - ui->psizecombo->addItem(QString::number(i)); + ui->pointSizeCombo->addItem(QString::number(i)); - ui->dcispin->setValue(QApplication::doubleClickInterval()); - ui->cfispin->setValue(QApplication::cursorFlashTime()); - ui->wslspin->setValue(QApplication::wheelScrollLines()); + ui->doubleClickIntervalSpinBox->setValue(QApplication::doubleClickInterval()); + ui->cursorFlashTimeSpinBox->setValue(QApplication::cursorFlashTime()); + ui->wheelScrollLinesSpinBox->setValue(QApplication::wheelScrollLines()); // ############# -// resolvelinks->setChecked(qt_resolve_symlinks); +// resolveLinksCheckBox->setChecked(qt_resolve_symlinks); - ui->effectcheckbox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); - ui->effectbase->setEnabled(ui->effectcheckbox->isChecked()); + ui->effectsCheckBox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); + ui->effectsFrame->setEnabled(ui->effectsCheckBox->isChecked()); if (QApplication::isEffectEnabled(Qt::UI_FadeMenu)) - ui->menueffect->setCurrentIndex(2); + ui->menuEffectCombo->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateMenu)) - ui->menueffect->setCurrentIndex(1); + ui->menuEffectCombo->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo)) - ui->comboeffect->setCurrentIndex(1); + ui->comboEffectCombo->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)) - ui->tooltipeffect->setCurrentIndex(2); + ui->toolTipEffectCombo->setCurrentIndex(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) - ui->tooltipeffect->setCurrentIndex(1); + ui->toolTipEffectCombo->setCurrentIndex(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateToolBox)) - ui->toolboxeffect->setCurrentIndex(1); + ui->toolBoxEffectCombo->setCurrentIndex(1); QSize globalStrut = QApplication::globalStrut(); - ui->strutwidth->setValue(globalStrut.width()); - ui->strutheight->setValue(globalStrut.height()); + ui->strutWidthSpinBox->setValue(globalStrut.width()); + ui->strutHeightSpinBox->setValue(globalStrut.height()); // find the default family QStringList::Iterator sit = families.begin(); @@ -330,10 +330,10 @@ MainWindow::MainWindow() if (i == -1) // no clue about the current font i = 0; - ui->familycombo->setCurrentIndex(i); + ui->fontFamilyCombo->setCurrentIndex(i); - QStringList styles = db.styles(ui->familycombo->currentText()); - ui->stylecombo->addItems(styles); + QStringList styles = db.styles(ui->fontFamilyCombo->currentText()); + ui->fontStyleCombo->addItems(styles); QString stylestring = db.styleString(QApplication::font()); sit = styles.begin(); @@ -352,64 +352,64 @@ MainWindow::MainWindow() i = possible; if (i == -1) // no clue about the current font i = 0; - ui->stylecombo->setCurrentIndex(i); + ui->fontStyleCombo->setCurrentIndex(i); i = 0; - for (int psize = QApplication::font().pointSize(); i < ui->psizecombo->count(); ++i) { - const int sz = ui->psizecombo->itemText(i).toInt(); + for (int psize = QApplication::font().pointSize(); i < ui->pointSizeCombo->count(); ++i) { + const int sz = ui->pointSizeCombo->itemText(i).toInt(); if (sz == psize) { - ui->psizecombo->setCurrentIndex(i); + ui->pointSizeCombo->setCurrentIndex(i); break; } else if(sz > psize) { - ui->psizecombo->insertItem(i, QString::number(psize)); - ui->psizecombo->setCurrentIndex(i); + ui->pointSizeCombo->insertItem(i, QString::number(psize)); + ui->pointSizeCombo->setCurrentIndex(i); break; } } - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); - ui->rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false) - .toBool()); + ui->rtlExtensionsCheckBox->setChecked(settings.value(QLatin1String("useRtlExtensions"), false) + .toBool()); #ifdef Q_WS_X11 QString settingsInputStyle = settings.value(QLatin1String("XIMInputStyle")).toString(); if (!settingsInputStyle.isEmpty()) - ui->inputStyle->setCurrentIndex(ui->inputStyle->findText(settingsInputStyle)); + ui->inputStyleCombo->setCurrentIndex(ui->inputStyleCombo->findText(settingsInputStyle)); #else - ui->inputStyle->hide(); - ui->inputStyleLabel->hide(); + ui->inputStyleCombo->hide(); + ui->inputStyleComboLabel->hide(); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) - QStringList inputMethods = QInputContextFactory::keys(); - int inputMethodIndex = -1; + QStringList inputMethodCombo = QInputContextFactory::keys(); + int inputMethodComboIndex = -1; QString defaultInputMethod = settings.value(QLatin1String("DefaultInputMethod"), QLatin1String("xim")).toString(); - for (int i = inputMethods.size()-1; i >= 0; --i) { - const QString &im = inputMethods.at(i); + for (int i = inputMethodCombo.size()-1; i >= 0; --i) { + const QString &im = inputMethodCombo.at(i); if (im.contains(QLatin1String("imsw"))) { - inputMethods.removeAt(i); - if (inputMethodIndex > i) - --inputMethodIndex; + inputMethodCombo.removeAt(i); + if (inputMethodComboIndex > i) + --inputMethodComboIndex; } else if (im == defaultInputMethod) { - inputMethodIndex = i; + inputMethodComboIndex = i; } } - if (inputMethodIndex == -1 && !inputMethods.isEmpty()) - inputMethodIndex = 0; - ui->inputMethod->addItems(inputMethods); - ui->inputMethod->setCurrentIndex(inputMethodIndex); + if (inputMethodComboIndex == -1 && !inputMethodCombo.isEmpty()) + inputMethodComboIndex = 0; + ui->inputMethodCombo->addItems(inputMethodCombo); + ui->inputMethodCombo->setCurrentIndex(inputMethodComboIndex); #else - ui->inputMethod->hide(); - ui->inputMethodLabel->hide(); + ui->inputMethodCombo->hide(); + ui->inputMethodComboLabel->hide(); #endif - ui->fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true) + ui->fontEmbeddingCheckBox->setChecked(settings.value(QLatin1String("embedFonts"), true) .toBool()); fontpaths = settings.value(QLatin1String("fontPath")).toStringList(); - ui->fontpathlistbox->insertItems(0, fontpaths); + ui->fontpathListBox->insertItems(0, fontpaths); ui->audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(tr("Auto (default)")), @@ -424,7 +424,7 @@ MainWindow::MainWindow() #ifndef QT_NO_GSTREAMER if (gst_init_check(0, 0, 0)) { gchar *versionString = gst_version_string(); - ui->gstversionLabel->setText(QLatin1String(versionString)); + ui->gstVersionLabel->setText(QLatin1String(versionString)); g_free(versionString); GList *factoryList = gst_registry_get_feature_list(gst_registry_get_default(), GST_TYPE_ELEMENT_FACTORY); @@ -451,7 +451,7 @@ MainWindow::MainWindow() g_list_free(factoryList); } #else - ui->tab4->setEnabled(false); + ui->phononTab->setEnabled(false); ui->phononLabel->setText(tr("Phonon GStreamer backend not available.")); #endif @@ -484,7 +484,7 @@ MainWindow::MainWindow() settings.endGroup(); // Qt - ui->helpview->setText(tr(appearance_text)); + ui->helpView->setText(tr(appearance_text)); setModified(false); updateStyleLayout(); @@ -512,12 +512,12 @@ void MainWindow::fileSave() QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QFontDatabase db; - QFont font = db.font(ui->familycombo->currentText(), - ui->stylecombo->currentText(), - ui->psizecombo->currentText().toInt()); + QFont font = db.font(ui->fontFamilyCombo->currentText(), + ui->fontStyleCombo->currentText(), + ui->pointSizeCombo->currentText().toInt()); QStringList actcg, inactcg, discg; - bool overrideDesktopSettings = (ui->gstylecombo->currentText() != desktopThemeName); + bool overrideDesktopSettings = (ui->guiStyleCombo->currentText() != desktopThemeName); if (overrideDesktopSettings) { int i; for (i = 0; i < QPalette::NColorRoles; i++) @@ -537,24 +537,24 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("Palette/disabled"), discg); settings.setValue(QLatin1String("fontPath"), fontpaths); - settings.setValue(QLatin1String("embedFonts"), ui->fontembeddingcheckbox->isChecked()); + settings.setValue(QLatin1String("embedFonts"), ui->fontEmbeddingCheckBox->isChecked()); settings.setValue(QLatin1String("style"), - overrideDesktopSettings ? ui->gstylecombo->currentText() : QString()); + overrideDesktopSettings ? ui->guiStyleCombo->currentText() : QString()); - settings.setValue(QLatin1String("doubleClickInterval"), ui->dcispin->value()); + settings.setValue(QLatin1String("doubleClickInterval"), ui->doubleClickIntervalSpinBox->value()); settings.setValue(QLatin1String("cursorFlashTime"), - ui->cfispin->value() == 9 ? 0 : ui->cfispin->value()); - settings.setValue(QLatin1String("wheelScrollLines"), ui->wslspin->value()); - settings.setValue(QLatin1String("resolveSymlinks"), ui->resolvelinks->isChecked()); + ui->cursorFlashTimeSpinBox->value() == 9 ? 0 : ui->cursorFlashTimeSpinBox->value()); + settings.setValue(QLatin1String("wheelScrollLines"), ui->wheelScrollLinesSpinBox->value()); + settings.setValue(QLatin1String("resolveSymlinks"), ui->resolveLinksCheckBox->isChecked()); - QSize strut(ui->strutwidth->value(), ui->strutheight->value()); + QSize strut(ui->strutWidthSpinBox->value(), ui->strutHeightSpinBox->value()); settings.setValue(QLatin1String("globalStrut/width"), strut.width()); settings.setValue(QLatin1String("globalStrut/height"), strut.height()); - settings.setValue(QLatin1String("useRtlExtensions"), ui->rtlExtensions->isChecked()); + settings.setValue(QLatin1String("useRtlExtensions"), ui->rtlExtensionsCheckBox->isChecked()); #ifdef Q_WS_X11 - QString style = ui->inputStyle->currentText(); + QString style = ui->inputStyleCombo->currentText(); QString str = QLatin1String("On The Spot"); if (style == tr("Over The Spot")) str = QLatin1String("Over The Spot"); @@ -565,7 +565,7 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("XIMInputStyle"), str); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) - settings.setValue(QLatin1String("DefaultInputMethod"), ui->inputMethod->currentText()); + settings.setValue(QLatin1String("DefaultInputMethod"), ui->inputMethodCombo->currentText()); #endif QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); @@ -576,24 +576,24 @@ void MainWindow::fileSave() ui->videomodeCombo->itemData(ui->videomodeCombo->currentIndex())); QStringList effects; - if (ui->effectcheckbox->isChecked()) { + if (ui->effectsCheckBox->isChecked()) { effects << QLatin1String("general"); - switch (ui->menueffect->currentIndex()) { + switch (ui->menuEffectCombo->currentIndex()) { case 1: effects << QLatin1String("animatemenu"); break; case 2: effects << QLatin1String("fademenu"); break; } - switch (ui->comboeffect->currentIndex()) { + switch (ui->comboEffectCombo->currentIndex()) { case 1: effects << QLatin1String("animatecombo"); break; } - switch (ui->tooltipeffect->currentIndex()) { + switch (ui->toolTipEffectCombo->currentIndex()) { case 1: effects << QLatin1String("animatetooltip"); break; case 2: effects << QLatin1String("fadetooltip"); break; } - switch (ui->toolboxeffect->currentIndex()) { + switch (ui->toolBoxEffectCombo->currentIndex()) { case 1: effects << QLatin1String("animatetoolbox"); break; } } else @@ -688,10 +688,10 @@ void MainWindow::paletteSelected(int) void MainWindow::updateStyleLayout() { - QString currentStyle = ui->gstylecombo->currentText(); + QString currentStyle = ui->guiStyleCombo->currentText(); bool autoStyle = (currentStyle == desktopThemeName); ui->previewFrame->setPreviewVisible(!autoStyle); - ui->groupAutoPalette->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); + ui->buildPaletteGroup->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); } void MainWindow::styleSelected(const QString &stylename) @@ -715,170 +715,170 @@ void MainWindow::familySelected(const QString &family) { QFontDatabase db; QStringList styles = db.styles(family); - ui->stylecombo->clear(); - ui->stylecombo->addItems(styles); - ui->familysubcombo->addItem(family); + ui->fontStyleCombo->clear(); + ui->fontStyleCombo->addItems(styles); + ui->familySubstitutionCombo->addItem(family); buildFont(); } void MainWindow::buildFont() { QFontDatabase db; - QFont font = db.font(ui->familycombo->currentText(), - ui->stylecombo->currentText(), - ui->psizecombo->currentText().toInt()); - ui->samplelineedit->setFont(font); + QFont font = db.font(ui->fontFamilyCombo->currentText(), + ui->fontStyleCombo->currentText(), + ui->pointSizeCombo->currentText().toInt()); + ui->sampleLineEdit->setFont(font); setModified(true); } void MainWindow::substituteSelected(const QString &family) { QStringList subs = QFont::substitutes(family); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); } void MainWindow::removeSubstitute() { - if (!ui->sublistbox->currentItem()) + if (!ui->substitutionsListBox->currentItem()) return; - int row = ui->sublistbox->currentRow(); - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); - subs.removeAt(ui->sublistbox->currentRow()); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); - if (row > ui->sublistbox->count()) - row = ui->sublistbox->count() - 1; - ui->sublistbox->setCurrentRow(row); - QFont::removeSubstitution(ui->familysubcombo->currentText()); - QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); + int row = ui->substitutionsListBox->currentRow(); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); + subs.removeAt(ui->substitutionsListBox->currentRow()); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); + if (row > ui->substitutionsListBox->count()) + row = ui->substitutionsListBox->count() - 1; + ui->substitutionsListBox->setCurrentRow(row); + QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); + QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); setModified(true); } void MainWindow::addSubstitute() { - if (!ui->sublistbox->currentItem()) { - QFont::insertSubstitution(ui->familysubcombo->currentText(), - ui->choosesubcombo->currentText()); - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); + if (!ui->substitutionsListBox->currentItem()) { + QFont::insertSubstitution(ui->familySubstitutionCombo->currentText(), + ui->chooseSubstitutionCombo->currentText()); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); setModified(true); return; } - int row = ui->sublistbox->currentRow(); - QFont::insertSubstitution(ui->familysubcombo->currentText(), ui->choosesubcombo->currentText()); - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); - ui->sublistbox->setCurrentRow(row); + int row = ui->substitutionsListBox->currentRow(); + QFont::insertSubstitution(ui->familySubstitutionCombo->currentText(), ui->chooseSubstitutionCombo->currentText()); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); + ui->substitutionsListBox->setCurrentRow(row); setModified(true); } void MainWindow::downSubstitute() { - if (!ui->sublistbox->currentItem() || ui->sublistbox->currentRow() >= ui->sublistbox->count()) + if (!ui->substitutionsListBox->currentItem() || ui->substitutionsListBox->currentRow() >= ui->substitutionsListBox->count()) return; - int row = ui->sublistbox->currentRow(); - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + int row = ui->substitutionsListBox->currentRow(); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); QString fam = subs.at(row); subs.removeAt(row); subs.insert(row + 1, fam); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); - ui->sublistbox->setCurrentRow(row + 1); - QFont::removeSubstitution(ui->familysubcombo->currentText()); - QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); + ui->substitutionsListBox->setCurrentRow(row + 1); + QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); + QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); setModified(true); } void MainWindow::upSubstitute() { - if (!ui->sublistbox->currentItem() || ui->sublistbox->currentRow() < 1) + if (!ui->substitutionsListBox->currentItem() || ui->substitutionsListBox->currentRow() < 1) return; - int row = ui->sublistbox->currentRow(); - QStringList subs = QFont::substitutes(ui->familysubcombo->currentText()); + int row = ui->substitutionsListBox->currentRow(); + QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); QString fam = subs.at(row); subs.removeAt(row); subs.insert(row-1, fam); - ui->sublistbox->clear(); - ui->sublistbox->insertItems(0, subs); - ui->sublistbox->setCurrentRow(row - 1); - QFont::removeSubstitution(ui->familysubcombo->currentText()); - QFont::insertSubstitutions(ui->familysubcombo->currentText(), subs); + ui->substitutionsListBox->clear(); + ui->substitutionsListBox->insertItems(0, subs); + ui->substitutionsListBox->setCurrentRow(row - 1); + QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); + QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); setModified(true); } void MainWindow::removeFontpath() { - if (!ui->fontpathlistbox->currentItem()) + if (!ui->fontpathListBox->currentItem()) return; - int row = ui->fontpathlistbox->currentRow(); + int row = ui->fontpathListBox->currentRow(); fontpaths.removeAt(row); - ui->fontpathlistbox->clear(); - ui->fontpathlistbox->insertItems(0, fontpaths); - if (row > ui->fontpathlistbox->count()) - row = ui->fontpathlistbox->count() - 1; - ui->fontpathlistbox->setCurrentRow(row); + ui->fontpathListBox->clear(); + ui->fontpathListBox->insertItems(0, fontpaths); + if (row > ui->fontpathListBox->count()) + row = ui->fontpathListBox->count() - 1; + ui->fontpathListBox->setCurrentRow(row); setModified(true); } void MainWindow::addFontpath() { - if (ui->fontpathlineedit->text().isEmpty()) + if (ui->fontPathLineEdit->text().isEmpty()) return; - if (!ui->fontpathlistbox->currentItem()) { - fontpaths.append(ui->fontpathlineedit->text()); - ui->fontpathlistbox->clear(); - ui->fontpathlistbox->insertItems(0, fontpaths); + if (!ui->fontpathListBox->currentItem()) { + fontpaths.append(ui->fontPathLineEdit->text()); + ui->fontpathListBox->clear(); + ui->fontpathListBox->insertItems(0, fontpaths); setModified(true); return; } - int row = ui->fontpathlistbox->currentRow(); - fontpaths.insert(row + 1, ui->fontpathlineedit->text()); - ui->fontpathlistbox->clear(); - ui->fontpathlistbox->insertItems(0, fontpaths); - ui->fontpathlistbox->setCurrentRow(row); + int row = ui->fontpathListBox->currentRow(); + fontpaths.insert(row + 1, ui->fontPathLineEdit->text()); + ui->fontpathListBox->clear(); + ui->fontpathListBox->insertItems(0, fontpaths); + ui->fontpathListBox->setCurrentRow(row); setModified(true); } void MainWindow::downFontpath() { - if (!ui->fontpathlistbox->currentItem() - || ui->fontpathlistbox->currentRow() >= (ui->fontpathlistbox->count() - 1)) { + if (!ui->fontpathListBox->currentItem() + || ui->fontpathListBox->currentRow() >= (ui->fontpathListBox->count() - 1)) { return; } - int row = ui->fontpathlistbox->currentRow(); + int row = ui->fontpathListBox->currentRow(); QString fam = fontpaths.at(row); fontpaths.removeAt(row); fontpaths.insert(row + 1, fam); - ui->fontpathlistbox->clear(); - ui->fontpathlistbox->insertItems(0, fontpaths); - ui->fontpathlistbox->setCurrentRow(row + 1); + ui->fontpathListBox->clear(); + ui->fontpathListBox->insertItems(0, fontpaths); + ui->fontpathListBox->setCurrentRow(row + 1); setModified(true); } void MainWindow::upFontpath() { - if (!ui->fontpathlistbox->currentItem() || ui->fontpathlistbox->currentRow() < 1) + if (!ui->fontpathListBox->currentItem() || ui->fontpathListBox->currentRow() < 1) return; - int row = ui->fontpathlistbox->currentRow(); + int row = ui->fontpathListBox->currentRow(); QString fam = fontpaths.at(row); fontpaths.removeAt(row); fontpaths.insert(row - 1, fam); - ui->fontpathlistbox->clear(); - ui->fontpathlistbox->insertItems(0, fontpaths); - ui->fontpathlistbox->setCurrentRow(row - 1); + ui->fontpathListBox->clear(); + ui->fontpathListBox->insertItems(0, fontpaths); + ui->fontpathListBox->setCurrentRow(row - 1); setModified(true); } @@ -888,7 +888,7 @@ void MainWindow::browseFontpath() if (dirname.isNull()) return; - ui->fontpathlineedit->setText(dirname); + ui->fontPathLineEdit->setText(dirname); } void MainWindow::somethingModified() @@ -915,16 +915,16 @@ void MainWindow::helpAboutQt() void MainWindow::pageChanged(QWidget *page) { - if (page == ui->tab) - ui->helpview->setText(tr(interface_text)); - else if (page == ui->tab1) - ui->helpview->setText(tr(appearance_text)); - else if (page == ui->tab2) - ui->helpview->setText(tr(font_text)); - else if (page == ui->tab3) - ui->helpview->setText(tr(printer_text)); - else if (page == ui->tab4) - ui->helpview->setText(tr(phonon_text)); + if (page == ui->interfaceTab) + ui->helpView->setText(tr(interface_text)); + else if (page == ui->appearanceTab) + ui->helpView->setText(tr(appearance_text)); + else if (page == ui->fontsTab) + ui->helpView->setText(tr(font_text)); + else if (page == ui->printerTab) + ui->helpView->setText(tr(printer_text)); + else if (page == ui->phononTab) + ui->helpView->setText(tr(phonon_text)); } void MainWindow::closeEvent(QCloseEvent *e) diff --git a/tools/qtconfig/mainwindow.ui b/tools/qtconfig/mainwindow.ui index 117a777..2ca9101 100644 --- a/tools/qtconfig/mainwindow.ui +++ b/tools/qtconfig/mainwindow.ui @@ -59,7 +59,7 @@ 8 - + 200 @@ -72,17 +72,17 @@ - + 0 - + Appearance - + 0 @@ -106,7 +106,7 @@ 8 - + 0 @@ -117,18 +117,18 @@ Select GUI &Style: - gstylecombo + guiStyleCombo - + - + 0 @@ -140,7 +140,7 @@ - + Select &Palette: @@ -188,7 +188,7 @@ - + 0 @@ -278,7 +278,7 @@ - + &Tune Palette... @@ -288,7 +288,7 @@ - + Please use the KDE Control Center to set the palette. @@ -299,13 +299,13 @@ - + Fonts - + Default Font @@ -317,7 +317,7 @@ 4 - + true @@ -327,7 +327,7 @@ - + true @@ -337,7 +337,7 @@ - + true @@ -350,37 +350,37 @@ - + &Style: - stylecombo + fontStyleCombo - + &Point Size: - psizecombo + pointSizeCombo - + F&amily: - familycombo + fontFamilyCombo - + Sample Text @@ -393,7 +393,7 @@ - + Font Substitution @@ -413,17 +413,17 @@ 0 - + S&elect or Enter a Family: - familysubcombo + familySubstitutionCombo - + true @@ -451,14 +451,14 @@ - + Current Substitutions: - + @@ -469,21 +469,21 @@ 0 - + Up - + Down - + Remove @@ -513,17 +513,17 @@ 0 - + Select s&ubstitute Family: - choosesubcombo + chooseSubstitutionCombo - + true @@ -533,7 +533,7 @@ - + Add @@ -546,13 +546,13 @@ - + Interface - + Feel Settings @@ -564,7 +564,7 @@ 4 - + ms @@ -577,17 +577,17 @@ - + &Double Click Interval: - dcispin + doubleClickIntervalSpinBox - + No blinking @@ -603,17 +603,17 @@ - + &Cursor Flash Time: - cfispin + cursorFlashTimeSpinBox - + lines @@ -626,17 +626,17 @@ - + Wheel &Scroll Lines: - wslspin + wheelScrollLinesSpinBox - + Resolve symlinks in URLs @@ -646,7 +646,7 @@ - + GUI Effects @@ -658,7 +658,7 @@ 8 - + &Enable @@ -668,53 +668,53 @@ - + 4 - + &Menu Effect: - menueffect + menuEffectCombo - + C&omboBox Effect: - comboeffect + comboEffectCombo - + &ToolTip Effect: - tooltipeffect + toolTipEffectCombo - + Tool&Box Effect: - toolboxeffect + toolBoxEffectCombo - + 0 @@ -739,7 +739,7 @@ - + Disable @@ -753,7 +753,7 @@ - + Disable @@ -772,7 +772,7 @@ - + Disable @@ -792,7 +792,7 @@ - + Global Strut @@ -804,27 +804,27 @@ 4 - + Minimum &Width: - strutwidth + strutWidthSpinBox - + Minimum Hei&ght: - strutheight + strutHeightSpinBox - + pixels @@ -834,7 +834,7 @@ - + pixels @@ -847,7 +847,7 @@ - + Enhanced support for languages written right-to-left @@ -861,7 +861,7 @@ - + 0 @@ -895,7 +895,7 @@ - + -1 @@ -919,13 +919,13 @@ - + Printer - + Enable Font embedding @@ -935,7 +935,7 @@ - + 0 @@ -961,28 +961,28 @@ 4 - + Up - + Remove - + Down - + @@ -1011,28 +1011,28 @@ - + Add - + Browse... - + Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. - + @@ -1041,19 +1041,19 @@ - + Phonon - + About Phonon - + Current Version: @@ -1067,20 +1067,16 @@ - + Website: - + - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> + <a href="http://phonon.kde.org">http://phonon.kde.org/</a> true @@ -1091,40 +1087,36 @@ p, li { white-space: pre-wrap; } - + About GStreamer - + Current Version: - + Not available - + Website: - + - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> + <a href="http://gstreamer.freedesktop.org/">http://gstreamer.freedesktop.org/</a> true @@ -1135,13 +1127,13 @@ p, li { white-space: pre-wrap; } - + GStreamer backend settings - + Preferred audio sink: @@ -1154,7 +1146,7 @@ p, li { white-space: pre-wrap; } - + Preferred render method: @@ -1167,7 +1159,7 @@ p, li { white-space: pre-wrap; } - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> @@ -1218,7 +1210,7 @@ p, li { white-space: pre-wrap; } - + 0 @@ -1227,7 +1219,7 @@ p, li { white-space: pre-wrap; } 19 - + 203 @@ -1243,11 +1235,11 @@ p, li { white-space: pre-wrap; } - + - 234 - 115 + 543 + 98 161 106 @@ -1258,9 +1250,9 @@ p, li { white-space: pre-wrap; } - + - + @@ -1317,34 +1309,53 @@ p, li { white-space: pre-wrap; } - helpview - familycombo - stylecombo - psizecombo - samplelineedit - familysubcombo - PushButton2 - PushButton3 - PushButton4 - choosesubcombo - PushButton1 - dcispin - cfispin - wslspin - effectcheckbox - menueffect - comboeffect - tooltipeffect - strutwidth - strutheight - sublistbox + helpView + mainTabWidget + guiStyleCombo + tunePaletteButton + paletteCombo + fontFamilyCombo + fontStyleCombo + pointSizeCombo + sampleLineEdit + familySubstitutionCombo + substitutionsListBox + upSubstitutionButton + downSubstitutionButton + removeSubstitutionButton + chooseSubstitutionCombo + addSubstitutionButton + doubleClickIntervalSpinBox + cursorFlashTimeSpinBox + wheelScrollLinesSpinBox + resolveLinksCheckBox + effectsCheckBox + menuEffectCombo + comboEffectCombo + toolTipEffectCombo + toolBoxEffectCombo + strutWidthSpinBox + strutHeightSpinBox + rtlExtensionsCheckBox + inputStyleCombo + inputMethodCombo + fontEmbeddingCheckBox + fontpathListBox + upFontpathButton + downFontpathButton + removeFontpathButton + fontPathLineEdit + browseFontPathButton + addFontPathButton + audiosinkCombo + videomodeCombo - effectcheckbox + effectsCheckBox toggled(bool) - effectbase + effectsFrame setEnabled(bool) @@ -1358,9 +1369,9 @@ p, li { white-space: pre-wrap; } - fontembeddingcheckbox + fontEmbeddingCheckBox toggled(bool) - GroupBox10 + fontPathsGroup setEnabled(bool) -- cgit v0.12 From 114be749e8bb82291cd3cc02dd85d56a3759853f Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:42 +0200 Subject: Resolved a little code style issue in qtconfig Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 266d9e4..9ff2087 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -181,7 +181,9 @@ static void setStyleHelper(QWidget *w, QStyle *s) } MainWindow::MainWindow() - : QMainWindow(), ui(new Ui::MainWindow), editPalette(palette()), previewPalette(palette()), + : ui(new Ui::MainWindow), + editPalette(palette()), + previewPalette(palette()), previewstyle(0) { ui->setupUi(this); -- cgit v0.12 From 255c512d7f536573963f371cdd73be0c4bd169b9 Mon Sep 17 00:00:00 2001 From: Boris Moiseev Date: Wed, 6 Oct 2010 15:51:43 +0200 Subject: Fixed the build error in qtconfig qtconfig failed to build with Phonon gstreamer backend turned on Merge-request: 2286 Reviewed-by: Benjamin Poulain --- tools/qtconfig/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 9ff2087..2536275 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -444,7 +444,7 @@ MainWindow::MainWindow() if (sink) { description = QLatin1String(gst_element_factory_get_description(GST_ELEMENT_FACTORY(feature))); ui->audiosinkCombo->addItem(name, name); - ui->audiosinkCombo->setItemData(audiosinkCombo->findText(name), description, + ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(name), description, Qt::ToolTipRole); gst_object_unref (sink); } -- cgit v0.12 From a9a35d40f14751d0d9a0c82696c4b5cd0090bbea Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 6 Oct 2010 15:46:33 +0200 Subject: Doc: fix description of the expected behavior for QGraphicsItem::cursor It was fixed for setCursor in 600ff0193c9bfac4d2b40960766002e8b81aca22. Reviewed-by: Alexis --- src/gui/graphicsview/qgraphicsitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index fc44a44..60cd020 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -2125,7 +2125,7 @@ void QGraphicsItem::setToolTip(const QString &toolTip) \snippet doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp 2 - If no cursor has been set, the parent's cursor is used. + If no cursor has been set, the cursor of the item beneath is used. \sa setCursor(), hasCursor(), unsetCursor(), QWidget::cursor, QApplication::overrideCursor() -- cgit v0.12 From 311170a69e61fdd0fa4c302ec9ceb33df2c49a5d Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Wed, 6 Oct 2010 16:46:43 +0200 Subject: Fix a pending issue with the merge request 2286 A merge conflict was forgoten in the last update. This patch fixes that. --- tools/qtconfig/mainwindow.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 2536275..5bd3592 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -466,14 +466,9 @@ MainWindow::MainWindow() tr("Use X11 Overlays"), Qt::ToolTipRole); #endif #ifndef QT_NO_OPENGL -<<<<<<< HEAD - videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); - videomodeCombo->setItemData(videomodeCombo->findText(tr("OpenGL")), tr("Use OpenGL if available"), Qt::ToolTipRole); -======= ui->videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("OpenGL")), - tr("Use OpenGL if avaiable"), Qt::ToolTipRole); ->>>>>>> Removed inheritance from UI file in qtconfig's MainWindow + tr("Use OpenGL if available"), Qt::ToolTipRole); #endif ui->videomodeCombo->addItem(tr("Software"), QLatin1String("Software")); ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("Software")), -- cgit v0.12 From d0dc82056231d40978e3369f2f4910298560bf98 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Wed, 6 Oct 2010 17:01:14 +0200 Subject: Code cleaning with the merge request 2286 The merge request 2286 changes a lot of the QtConfig tool. I took this opportunity to clean some old style mistake. --- tools/qtconfig/colorbutton.cpp | 9 +++++---- tools/qtconfig/mainwindow.cpp | 2 +- tools/qtconfig/paletteeditoradvanced.cpp | 9 +++------ tools/qtconfig/previewwidget.h | 2 +- tools/qtconfig/qtconfig.pro | 10 +++++----- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/tools/qtconfig/colorbutton.cpp b/tools/qtconfig/colorbutton.cpp index 30617e4..443effa 100644 --- a/tools/qtconfig/colorbutton.cpp +++ b/tools/qtconfig/colorbutton.cpp @@ -52,19 +52,20 @@ QT_BEGIN_NAMESPACE ColorButton::ColorButton(QWidget *parent) - : QAbstractButton(parent), mousepressed(false) + : QAbstractButton(parent) + , mousepressed(false) + , col(Qt::black) { setAcceptDrops(true); - col = Qt::black; connect(this, SIGNAL(clicked()), SLOT(changeColor())); } ColorButton::ColorButton(const QColor &c, QWidget *parent) : QAbstractButton(parent) + , col(c) { setAcceptDrops(true); - col = c; connect(this, SIGNAL(clicked()), SLOT(changeColor())); } @@ -182,7 +183,7 @@ void ColorButton::mouseReleaseEvent(QMouseEvent *e) void ColorButton::mouseMoveEvent(QMouseEvent *e) { - if (! mousepressed) + if (!mousepressed) return; if ((presspos - e->pos()).manhattanLength() > QApplication::startDragDistance()) { diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 5bd3592..1a30405 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -290,7 +290,7 @@ MainWindow::MainWindow() ui->cursorFlashTimeSpinBox->setValue(QApplication::cursorFlashTime()); ui->wheelScrollLinesSpinBox->setValue(QApplication::wheelScrollLines()); // ############# -// resolveLinksCheckBox->setChecked(qt_resolve_symlinks); + // resolveLinksCheckBox->setChecked(qt_resolve_symlinks); ui->effectsCheckBox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); ui->effectsFrame->setEnabled(ui->effectsCheckBox->isChecked()); diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index 196cdea..a700b8d 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -117,12 +117,10 @@ void PaletteEditorAdvanced::paletteSelected(int p) if(p == 1) { // inactive ui->groupCentral->setDisabled(ui->checkBuildInactive->isChecked()); ui->groupEffect->setDisabled(ui->checkBuildInactive->isChecked()); - } - else if (p == 2) { // disabled + } else if (p == 2) { // disabled ui->groupCentral->setDisabled(ui->checkBuildDisabled->isChecked()); ui->groupEffect->setDisabled(ui->checkBuildDisabled->isChecked()); - } - else { + } else { ui->groupCentral->setEnabled(true); ui->groupEffect->setEnabled(true); } @@ -263,8 +261,7 @@ QPalette PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup colorGroup, result.setColor(colorGroup, effectRole, calculatedPalette.color(colorGroup, effectRole)); } - } - else { + } else { QColor btn = basePalette.color(colorGroup, QPalette::Button); result.setColor(colorGroup, QPalette::Light, btn.lighter()); diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index ee3513d..f3e5f71 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -61,7 +61,7 @@ public: bool eventFilter(QObject *, QEvent *); private: void closeEvent(QCloseEvent *); - Ui::PreviewWidget* ui; + Ui::PreviewWidget *ui; }; QT_END_NAMESPACE diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index a066d4e..cb06e5a 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -1,5 +1,5 @@ TEMPLATE = app -CONFIG += qt warn_on x11 +CONFIG += qt warn_on x11 build_all:!build_pass { CONFIG -= build_all CONFIG += release @@ -19,10 +19,10 @@ FORMS = mainwindow.ui paletteeditoradvanced.ui previewwidget.ui RESOURCES = qtconfig.qrc PROJECTNAME = Qt Configuration -TARGET = qtconfig -DESTDIR = ../../bin +TARGET = qtconfig +DESTDIR = ../../bin target.path=$$[QT_INSTALL_BINS] INSTALLS += target -INCLUDEPATH += . -DBFILE = qtconfig.db +INCLUDEPATH += . +DBFILE = qtconfig.db -- cgit v0.12 From 9c46cde0ca27bf5edc05046b84096379d46dca33 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 7 Oct 2010 10:26:25 +0200 Subject: Fix compilation after merge request 2286 --- tools/qtconfig/mainwindow.cpp | 2 +- tools/qtconfig/mainwindow.h | 8 ++++---- tools/qtconfig/paletteeditoradvanced.h | 4 ++-- tools/qtconfig/previewwidget.h | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index 1a30405..f07da4f 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -421,7 +421,7 @@ MainWindow::MainWindow() tr("Experimental aRts support for GStreamer."), Qt::ToolTipRole); #ifdef HAVE_PHONON - phononVersionLabel->setText(QLatin1String(Phonon::phononVersion())); + ui->phononVersionLabel->setText(QLatin1String(Phonon::phononVersion())); #endif #ifndef QT_NO_GSTREAMER if (gst_init_check(0, 0, 0)) { diff --git a/tools/qtconfig/mainwindow.h b/tools/qtconfig/mainwindow.h index 7cc6522..50d73f9 100644 --- a/tools/qtconfig/mainwindow.h +++ b/tools/qtconfig/mainwindow.h @@ -42,14 +42,14 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H -namespace Ui { - class MainWindow; -} - #include QT_BEGIN_NAMESPACE +namespace Ui { + class MainWindow; +} + class MainWindow : public QMainWindow { Q_OBJECT diff --git a/tools/qtconfig/paletteeditoradvanced.h b/tools/qtconfig/paletteeditoradvanced.h index 9f7a3f7..2bdb95d 100644 --- a/tools/qtconfig/paletteeditoradvanced.h +++ b/tools/qtconfig/paletteeditoradvanced.h @@ -44,12 +44,12 @@ #include +QT_BEGIN_NAMESPACE + namespace Ui { class PaletteEditorAdvanced; } -QT_BEGIN_NAMESPACE - class ColorButton; class PaletteEditorAdvanced : public QDialog diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index f3e5f71..e7707cd 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -44,11 +44,12 @@ #include +QT_BEGIN_NAMESPACE + namespace Ui { class PreviewWidget; } -QT_BEGIN_NAMESPACE class PreviewWidget : public QWidget { -- cgit v0.12 From c9533981e129655e2ca74b13ac1ff107df7db0e7 Mon Sep 17 00:00:00 2001 From: Patrick Spendrin Date: Wed, 6 Oct 2010 13:18:59 +0200 Subject: ActiveQt: also make the designer plugin for qaxwidget build in the opensource versions Reviewed-by: Olivier Goffart Merge-Request: 843 --- tools/designer/src/plugins/plugins.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/designer/src/plugins/plugins.pro b/tools/designer/src/plugins/plugins.pro index cf4fa8a..bcebb82 100644 --- a/tools/designer/src/plugins/plugins.pro +++ b/tools/designer/src/plugins/plugins.pro @@ -3,7 +3,7 @@ CONFIG += ordered REQUIRES = !CONFIG(static,shared|static) contains(QT_CONFIG, qt3support): SUBDIRS += widgets -win32:!contains(QT_EDITION, OpenSource):SUBDIRS += activeqt +win32: SUBDIRS += activeqt # contains(QT_CONFIG, opengl): SUBDIRS += tools/view3d contains(QT_CONFIG, webkit): SUBDIRS += qwebview contains(QT_CONFIG, phonon): SUBDIRS += phononwidgets -- cgit v0.12 From 6967f9e3fadfff8122809207dc7a99af444f699b Mon Sep 17 00:00:00 2001 From: Bernhard Rosenkraenzer Date: Thu, 7 Oct 2010 10:33:05 +0200 Subject: Fix build with cups 1.5 snapshots Without this patch, Qt CUPS support fails to build with current CUPS snapshots: In file included from ../../include/QtGui/private/qcups_p.h:1:0, from painting/qpdf.cpp:47: .../qcups_p.h:78:11: error: 'ppd_file_t' does not name a type .../qcups_p.h:80:11: error: 'ppd_file_t' does not name a type .../qcups_p.h:81:11: error: 'ppd_option_t' does not name a type .../qcups_p.h:84:11: error: 'ppd_option_t' does not name a type .../qcups_p.h:87:34: error: ISO C++ forbids declaration of 'type name' with no type .../qcups_p.h:87:47: error: template argument 1 is invalid .../qcups_p.h:103:56: error: 'ppd_group_t' does not name a type .../qcups_p.h:103:77: error: ISO C++ forbids declaration of 'group' with no type .../qcups_p.h:104:62: error: 'ppd_group_t' does not name a type .../qcups_p.h:104:75: error: ISO C++ forbids declaration of 'group' with no type .../qcups_p.h:108:11: error: 'ppd_option_t' does not name a type .../qcups_p.h:110:5: error: 'ppd_file_t' does not name a type Merge-request: 835 Reviewed-by: Olivier Goffart --- src/gui/painting/qcups_p.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/painting/qcups_p.h b/src/gui/painting/qcups_p.h index 9259679..239c244 100644 --- a/src/gui/painting/qcups_p.h +++ b/src/gui/painting/qcups_p.h @@ -59,6 +59,7 @@ #ifndef QT_NO_CUPS #include #include +#include QT_BEGIN_NAMESPACE -- cgit v0.12 From fbca6e1747eb8430729f0f0eb80b13f6d3d19f3a Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Thu, 7 Oct 2010 12:51:43 +0200 Subject: Fix text rendering in GL when using the broken-fbo-fallback This is a backport of 3874cd95e203da40d5205ef6455d7f56cba6923a which was committed to qt:master. Since the patch that originally exposed the bug was added to 4.7.2, this patch is required there as well. Bug is visible when resizing the glyph cache on devices where QGLContext::brokenFBOReadback defaults to true, or by setting this to true on desktop. Reviewed-by: Gunnar --- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 9a5bac0..919c542 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -137,7 +137,7 @@ void QGLTextureGlyphCache::resizeTextureData(int width, int height) if (ctx->d_ptr->workaround_brokenFBOReadBack) { QImageTextureGlyphCache::resizeTextureData(width, height); Q_ASSERT(image().depth() == 8); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, oldWidth, oldHeight, GL_ALPHA, GL_UNSIGNED_BYTE, image().constBits()); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, oldHeight, GL_ALPHA, GL_UNSIGNED_BYTE, image().constBits()); glDeleteTextures(1, &oldTexture); return; } -- cgit v0.12 From e3edad83a1e6e99a551d40d4118352435c6dd710 Mon Sep 17 00:00:00 2001 From: Benjamin Poulain Date: Thu, 7 Oct 2010 14:16:50 +0200 Subject: Revert the integration of the merge request 2286. The merge request 2286 will be integrated in master. This should let an angry developer calm down and resume his work. --- tools/qtconfig/colorbutton.cpp | 9 +- tools/qtconfig/main.cpp | 1 + tools/qtconfig/mainwindow.cpp | 785 ++++++++------- tools/qtconfig/mainwindow.h | 19 +- tools/qtconfig/mainwindow.ui | 1388 -------------------------- tools/qtconfig/mainwindowbase.cpp | 250 +++++ tools/qtconfig/mainwindowbase.h | 95 ++ tools/qtconfig/mainwindowbase.ui | 1384 +++++++++++++++++++++++++ tools/qtconfig/paletteeditoradvanced.cpp | 579 +++++++---- tools/qtconfig/paletteeditoradvanced.h | 66 +- tools/qtconfig/paletteeditoradvanced.ui | 416 -------- tools/qtconfig/paletteeditoradvancedbase.cpp | 144 +++ tools/qtconfig/paletteeditoradvancedbase.h | 78 ++ tools/qtconfig/paletteeditoradvancedbase.ui | 617 ++++++++++++ tools/qtconfig/previewframe.cpp | 18 +- tools/qtconfig/previewframe.h | 13 +- tools/qtconfig/previewwidget.cpp | 29 +- tools/qtconfig/previewwidget.h | 18 +- tools/qtconfig/previewwidget.ui | 252 ----- tools/qtconfig/previewwidgetbase.cpp | 88 ++ tools/qtconfig/previewwidgetbase.h | 68 ++ tools/qtconfig/previewwidgetbase.ui | 340 +++++++ tools/qtconfig/qtconfig.pro | 19 +- tools/tools.pro | 2 +- 24 files changed, 3990 insertions(+), 2688 deletions(-) delete mode 100644 tools/qtconfig/mainwindow.ui create mode 100644 tools/qtconfig/mainwindowbase.cpp create mode 100644 tools/qtconfig/mainwindowbase.h create mode 100644 tools/qtconfig/mainwindowbase.ui delete mode 100644 tools/qtconfig/paletteeditoradvanced.ui create mode 100644 tools/qtconfig/paletteeditoradvancedbase.cpp create mode 100644 tools/qtconfig/paletteeditoradvancedbase.h create mode 100644 tools/qtconfig/paletteeditoradvancedbase.ui delete mode 100644 tools/qtconfig/previewwidget.ui create mode 100644 tools/qtconfig/previewwidgetbase.cpp create mode 100644 tools/qtconfig/previewwidgetbase.h create mode 100644 tools/qtconfig/previewwidgetbase.ui diff --git a/tools/qtconfig/colorbutton.cpp b/tools/qtconfig/colorbutton.cpp index 443effa..30617e4 100644 --- a/tools/qtconfig/colorbutton.cpp +++ b/tools/qtconfig/colorbutton.cpp @@ -52,20 +52,19 @@ QT_BEGIN_NAMESPACE ColorButton::ColorButton(QWidget *parent) - : QAbstractButton(parent) - , mousepressed(false) - , col(Qt::black) + : QAbstractButton(parent), mousepressed(false) { setAcceptDrops(true); + col = Qt::black; connect(this, SIGNAL(clicked()), SLOT(changeColor())); } ColorButton::ColorButton(const QColor &c, QWidget *parent) : QAbstractButton(parent) - , col(c) { setAcceptDrops(true); + col = c; connect(this, SIGNAL(clicked()), SLOT(changeColor())); } @@ -183,7 +182,7 @@ void ColorButton::mouseReleaseEvent(QMouseEvent *e) void ColorButton::mouseMoveEvent(QMouseEvent *e) { - if (!mousepressed) + if (! mousepressed) return; if ((presspos - e->pos()).manhattanLength() > QApplication::startDragDistance()) { diff --git a/tools/qtconfig/main.cpp b/tools/qtconfig/main.cpp index 47b0994..928cf01 100644 --- a/tools/qtconfig/main.cpp +++ b/tools/qtconfig/main.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#include "ui_previewwidgetbase.h" #include "mainwindow.h" #include #include diff --git a/tools/qtconfig/mainwindow.cpp b/tools/qtconfig/mainwindow.cpp index f07da4f..9675f99 100644 --- a/tools/qtconfig/mainwindow.cpp +++ b/tools/qtconfig/mainwindow.cpp @@ -40,8 +40,6 @@ ****************************************************************************/ #include "mainwindow.h" -#include "ui_mainwindow.h" - #include "colorbutton.h" #include "previewframe.h" #include "paletteeditoradvanced.h" @@ -61,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -155,20 +154,36 @@ static const char *phonon_text = "

It is reccommended to leave all settings on \"Auto\" to let " "Phonon determine your settings automatically."; +static QColorGroup::ColorRole centralFromItem( int item ) +{ + switch( item ) { + case 0: return QColorGroup::Window; + case 1: return QColorGroup::WindowText; + case 2: return QColorGroup::Button; + case 3: return QColorGroup::Base; + case 4: return QColorGroup::Text; + case 5: return QColorGroup::BrightText; + case 6: return QColorGroup::ButtonText; + case 7: return QColorGroup::Highlight; + case 8: return QColorGroup::HighlightedText; + default: return QColorGroup::NColorRoles; + } +} + -QPalette::ColorGroup MainWindow::groupFromIndex(int item) +static QColorGroup::ColorRole effectFromItem( int item ) { - switch (item) { - case 0: - default: - return QPalette::Active; - case 1: - return QPalette::Inactive; - case 2: - return QPalette::Disabled; + switch( item ) { + case 0: return QColorGroup::Light; + case 1: return QColorGroup::Midlight; + case 2: return QColorGroup::Mid; + case 3: return QColorGroup::Dark; + case 4: return QColorGroup::Shadow; + default: return QColorGroup::NColorRoles; } } + static void setStyleHelper(QWidget *w, QStyle *s) { const QObjectList children = w->children(); @@ -180,140 +195,99 @@ static void setStyleHelper(QWidget *w, QStyle *s) w->setStyle(s); } -MainWindow::MainWindow() - : ui(new Ui::MainWindow), - editPalette(palette()), - previewPalette(palette()), - previewstyle(0) -{ - ui->setupUi(this); - statusBar(); - - // signals and slots connections - connect(ui->fontPathLineEdit, SIGNAL(returnPressed()), SLOT(addFontpath())); - connect(ui->addFontPathButton, SIGNAL(clicked()), SLOT(addFontpath())); - connect(ui->addSubstitutionButton, SIGNAL(clicked()), SLOT(addSubstitute())); - connect(ui->browseFontPathButton, SIGNAL(clicked()), SLOT(browseFontpath())); - connect(ui->fontStyleCombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(ui->pointSizeCombo, SIGNAL(activated(int)), SLOT(buildFont())); - connect(ui->downFontpathButton, SIGNAL(clicked()), SLOT(downFontpath())); - connect(ui->downSubstitutionButton, SIGNAL(clicked()), SLOT(downSubstitute())); - connect(ui->fontFamilyCombo, SIGNAL(activated(QString)), SLOT(familySelected(QString))); - connect(ui->fileExitAction, SIGNAL(activated()), SLOT(fileExit())); - connect(ui->fileSaveAction, SIGNAL(activated()), SLOT(fileSave())); - connect(ui->helpAboutAction, SIGNAL(activated()), SLOT(helpAbout())); - connect(ui->helpAboutQtAction, SIGNAL(activated()), SLOT(helpAboutQt())); - connect(ui->mainTabWidget, SIGNAL(currentChanged(QWidget*)), SLOT(pageChanged(QWidget*))); - connect(ui->paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); - connect(ui->removeFontpathButton, SIGNAL(clicked()), SLOT(removeFontpath())); - connect(ui->removeSubstitutionButton, SIGNAL(clicked()), SLOT(removeSubstitute())); - connect(ui->toolBoxEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->doubleClickIntervalSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->cursorFlashTimeSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->wheelScrollLinesSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->menuEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->comboEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->audiosinkCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->videomodeCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->toolTipEffectCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->strutWidthSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->strutHeightSpinBox, SIGNAL(valueChanged(int)), SLOT(somethingModified())); - connect(ui->effectsCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->resolveLinksCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->fontEmbeddingCheckBox, SIGNAL(clicked()), SLOT(somethingModified())); - connect(ui->rtlExtensionsCheckBox, SIGNAL(toggled(bool)), SLOT(somethingModified())); - connect(ui->inputStyleCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->inputMethodCombo, SIGNAL(activated(int)), SLOT(somethingModified())); - connect(ui->guiStyleCombo, SIGNAL(activated(QString)), SLOT(styleSelected(QString))); - connect(ui->familySubstitutionCombo, SIGNAL(activated(QString)), SLOT(substituteSelected(QString))); - connect(ui->tunePaletteButton, SIGNAL(clicked()), SLOT(tunePalette())); - connect(ui->upFontpathButton, SIGNAL(clicked()), SLOT(upFontpath())); - connect(ui->upSubstitutionButton, SIGNAL(clicked()), SLOT(upSubstitute())); +MainWindow::MainWindow() + : MainWindowBase(0, "main window"), + editPalette(palette()), previewPalette(palette()), previewstyle(0) +{ modified = true; desktopThemeName = tr("Desktop Settings (Default)"); QStringList gstyles = QStyleFactory::keys(); gstyles.sort(); - ui->guiStyleCombo->addItem(desktopThemeName); - ui->guiStyleCombo->setItemData(ui->guiStyleCombo->findText(desktopThemeName), - tr("Choose style and palette based on your desktop settings."), - Qt::ToolTipRole); - ui->guiStyleCombo->addItems(gstyles); + gstylecombo->addItem(desktopThemeName); + gstylecombo->setItemData(gstylecombo->findText(desktopThemeName), + tr("Choose style and palette based on your desktop settings."), Qt::ToolTipRole); + gstylecombo->insertStringList(gstyles); QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QString currentstyle = settings.value(QLatin1String("style")).toString(); if (currentstyle.isEmpty()) { - ui->guiStyleCombo->setCurrentIndex(ui->guiStyleCombo->findText(desktopThemeName)); - currentstyle = QApplication::style()->objectName(); + gstylecombo->setCurrentItem(gstylecombo->findText(desktopThemeName)); + currentstyle = QLatin1String(QApplication::style()->name()); } else { - int index = ui->guiStyleCombo->findText(currentstyle, Qt::MatchFixedString); + int index = gstylecombo->findText(currentstyle, Qt::MatchFixedString); if (index != -1) { - ui->guiStyleCombo->setCurrentIndex(index); + gstylecombo->setCurrentItem(index); } else { // we give up - ui->guiStyleCombo->addItem(tr("Unknown")); - ui->guiStyleCombo->setCurrentIndex(ui->guiStyleCombo->count() - 1); + gstylecombo->insertItem(QLatin1String("Unknown")); + gstylecombo->setCurrentItem(gstylecombo->count() - 1); } } - ui->buttonMainColor->setColor(palette().color(QPalette::Active, QPalette::Button)); - ui->buttonWindowColor->setColor(palette().color(QPalette::Active, QPalette::Window)); - connect(ui->buttonMainColor, SIGNAL(colorChanged(QColor)), SLOT(buildPalette())); - connect(ui->buttonWindowColor, SIGNAL(colorChanged(QColor)), SLOT(buildPalette())); + buttonMainColor->setColor(palette().color(QPalette::Active, + QColorGroup::Button)); + buttonMainColor2->setColor(palette().color(QPalette::Active, + QColorGroup::Window)); + connect(buttonMainColor, SIGNAL(colorChanged(QColor)), + this, SLOT(buildPalette())); + connect(buttonMainColor2, SIGNAL(colorChanged(QColor)), + this, SLOT(buildPalette())); if (X11->desktopEnvironment == DE_KDE) - ui->colorConfig->hide(); + colorConfig->hide(); else - ui->kdeNoteLabel->hide(); + labelKDENote->hide(); QFontDatabase db; QStringList families = db.families(); - ui->fontFamilyCombo->addItems(families); + familycombo->insertStringList(families); QStringList fs = families; QStringList fs2 = QFont::substitutions(); QStringList::Iterator fsit = fs2.begin(); while (fsit != fs2.end()) { - if (!fs.contains(*fsit)) + if (! fs.contains(*fsit)) fs += *fsit; fsit++; } fs.sort(); - ui->familySubstitutionCombo->addItems(fs); + familysubcombo->insertStringList(fs); - ui->chooseSubstitutionCombo->addItems(families); - QList sizes = db.standardSizes(); - foreach(int i, sizes) - ui->pointSizeCombo->addItem(QString::number(i)); + choosesubcombo->insertStringList(families); + Q3ValueList sizes = db.standardSizes(); + Q3ValueList::Iterator it = sizes.begin(); + while (it != sizes.end()) + psizecombo->insertItem(QString::number(*it++)); - ui->doubleClickIntervalSpinBox->setValue(QApplication::doubleClickInterval()); - ui->cursorFlashTimeSpinBox->setValue(QApplication::cursorFlashTime()); - ui->wheelScrollLinesSpinBox->setValue(QApplication::wheelScrollLines()); + dcispin->setValue(QApplication::doubleClickInterval()); + cfispin->setValue(QApplication::cursorFlashTime()); + wslspin->setValue(QApplication::wheelScrollLines()); // ############# - // resolveLinksCheckBox->setChecked(qt_resolve_symlinks); +// resolvelinks->setChecked(qt_resolve_symlinks); - ui->effectsCheckBox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); - ui->effectsFrame->setEnabled(ui->effectsCheckBox->isChecked()); + effectcheckbox->setChecked(QApplication::isEffectEnabled(Qt::UI_General)); + effectbase->setEnabled(effectcheckbox->isChecked()); if (QApplication::isEffectEnabled(Qt::UI_FadeMenu)) - ui->menuEffectCombo->setCurrentIndex(2); + menueffect->setCurrentItem(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateMenu)) - ui->menuEffectCombo->setCurrentIndex(1); + menueffect->setCurrentItem(1); if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo)) - ui->comboEffectCombo->setCurrentIndex(1); + comboeffect->setCurrentItem(1); if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)) - ui->toolTipEffectCombo->setCurrentIndex(2); + tooltipeffect->setCurrentItem(2); else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) - ui->toolTipEffectCombo->setCurrentIndex(1); + tooltipeffect->setCurrentItem(1); - if (QApplication::isEffectEnabled(Qt::UI_AnimateToolBox)) - ui->toolBoxEffectCombo->setCurrentIndex(1); + if ( QApplication::isEffectEnabled( Qt::UI_AnimateToolBox ) ) + toolboxeffect->setCurrentItem( 1 ); QSize globalStrut = QApplication::globalStrut(); - ui->strutWidthSpinBox->setValue(globalStrut.width()); - ui->strutHeightSpinBox->setValue(globalStrut.height()); + strutwidth->setValue(globalStrut.width()); + strutheight->setValue(globalStrut.height()); // find the default family QStringList::Iterator sit = families.begin(); @@ -332,10 +306,10 @@ MainWindow::MainWindow() if (i == -1) // no clue about the current font i = 0; - ui->fontFamilyCombo->setCurrentIndex(i); + familycombo->setCurrentItem(i); - QStringList styles = db.styles(ui->fontFamilyCombo->currentText()); - ui->fontStyleCombo->addItems(styles); + QStringList styles = db.styles(familycombo->currentText()); + stylecombo->insertStringList(styles); QString stylestring = db.styleString(QApplication::font()); sit = styles.begin(); @@ -354,98 +328,91 @@ MainWindow::MainWindow() i = possible; if (i == -1) // no clue about the current font i = 0; - ui->fontStyleCombo->setCurrentIndex(i); + stylecombo->setCurrentItem(i); i = 0; - for (int psize = QApplication::font().pointSize(); i < ui->pointSizeCombo->count(); ++i) { - const int sz = ui->pointSizeCombo->itemText(i).toInt(); + for (int psize = QApplication::font().pointSize(); i < psizecombo->count(); ++i) { + const int sz = psizecombo->text(i).toInt(); if (sz == psize) { - ui->pointSizeCombo->setCurrentIndex(i); + psizecombo->setCurrentItem(i); break; } else if(sz > psize) { - ui->pointSizeCombo->insertItem(i, QString::number(psize)); - ui->pointSizeCombo->setCurrentIndex(i); + psizecombo->insertItem(i, QString::number(psize)); + psizecombo->setCurrentItem(i); break; } } - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + sublistbox->clear(); + sublistbox->insertStringList(subs); - ui->rtlExtensionsCheckBox->setChecked(settings.value(QLatin1String("useRtlExtensions"), false) - .toBool()); + rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false).toBool()); #ifdef Q_WS_X11 - QString settingsInputStyle = settings.value(QLatin1String("XIMInputStyle")).toString(); - if (!settingsInputStyle.isEmpty()) - ui->inputStyleCombo->setCurrentIndex(ui->inputStyleCombo->findText(settingsInputStyle)); + inputStyle->setCurrentText(settings.value(QLatin1String("XIMInputStyle"), trUtf8("On The Spot")).toString()); #else - ui->inputStyleCombo->hide(); - ui->inputStyleComboLabel->hide(); + inputStyle->hide(); + inputStyleLabel->hide(); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) - QStringList inputMethodCombo = QInputContextFactory::keys(); - int inputMethodComboIndex = -1; + QStringList inputMethods = QInputContextFactory::keys(); + int inputMethodIndex = -1; QString defaultInputMethod = settings.value(QLatin1String("DefaultInputMethod"), QLatin1String("xim")).toString(); - for (int i = inputMethodCombo.size()-1; i >= 0; --i) { - const QString &im = inputMethodCombo.at(i); + for (int i = inputMethods.size()-1; i >= 0; --i) { + const QString &im = inputMethods.at(i); if (im.contains(QLatin1String("imsw"))) { - inputMethodCombo.removeAt(i); - if (inputMethodComboIndex > i) - --inputMethodComboIndex; + inputMethods.removeAt(i); + if (inputMethodIndex > i) + --inputMethodIndex; } else if (im == defaultInputMethod) { - inputMethodComboIndex = i; + inputMethodIndex = i; } } - if (inputMethodComboIndex == -1 && !inputMethodCombo.isEmpty()) - inputMethodComboIndex = 0; - ui->inputMethodCombo->addItems(inputMethodCombo); - ui->inputMethodCombo->setCurrentIndex(inputMethodComboIndex); + if (inputMethodIndex == -1 && !inputMethods.isEmpty()) + inputMethodIndex = 0; + inputMethod->addItems(inputMethods); + inputMethod->setCurrentIndex(inputMethodIndex); #else - ui->inputMethodCombo->hide(); - ui->inputMethodComboLabel->hide(); + inputMethod->hide(); + inputMethodLabel->hide(); #endif - ui->fontEmbeddingCheckBox->setChecked(settings.value(QLatin1String("embedFonts"), true) - .toBool()); + fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true).toBool()); fontpaths = settings.value(QLatin1String("fontPath")).toStringList(); - ui->fontpathListBox->insertItems(0, fontpaths); - - ui->audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); - ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(tr("Auto (default)")), - tr("Choose audio output automatically."), Qt::ToolTipRole); - ui->audiosinkCombo->addItem(tr("aRts"), QLatin1String("artssink")); - ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(tr("aRts")), - tr("Experimental aRts support for GStreamer."), - Qt::ToolTipRole); + fontpathlistbox->insertStringList(fontpaths); + + audiosinkCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); + audiosinkCombo->setItemData(audiosinkCombo->findText(tr("Auto (default)")), + tr("Choose audio output automatically."), Qt::ToolTipRole); + audiosinkCombo->addItem(tr("aRts"), QLatin1String("artssink")); + audiosinkCombo->setItemData(audiosinkCombo->findText(tr("aRts")), + tr("Experimental aRts support for GStreamer."), Qt::ToolTipRole); #ifdef HAVE_PHONON - ui->phononVersionLabel->setText(QLatin1String(Phonon::phononVersion())); + phononVersionLabel->setText(QLatin1String(Phonon::phononVersion())); #endif #ifndef QT_NO_GSTREAMER if (gst_init_check(0, 0, 0)) { gchar *versionString = gst_version_string(); - ui->gstVersionLabel->setText(QLatin1String(versionString)); + gstversionLabel->setText(QLatin1String(versionString)); g_free(versionString); - GList *factoryList = gst_registry_get_feature_list(gst_registry_get_default(), - GST_TYPE_ELEMENT_FACTORY); + GList* factoryList = gst_registry_get_feature_list(gst_registry_get_default (), GST_TYPE_ELEMENT_FACTORY); QString name, klass, description; - for (GList *iter = g_list_first(factoryList) ; iter != NULL ; iter = g_list_next(iter)) { + for (GList* iter = g_list_first(factoryList) ; iter != NULL ; iter = g_list_next(iter)) { GstPluginFeature *feature = GST_PLUGIN_FEATURE(iter->data); klass = QLatin1String(gst_element_factory_get_klass(GST_ELEMENT_FACTORY(feature))); if (klass == QLatin1String("Sink/Audio")) { name = QLatin1String(GST_PLUGIN_FEATURE_NAME(feature)); if (name == QLatin1String("sfsink")) - continue; // useless to output audio to file when you cannot set the file path + continue; //useless to output audio to file when you cannot set the file path else if (name == QLatin1String("autoaudiosink")) continue; //This is used implicitly from the auto setting GstElement *sink = gst_element_factory_make (qPrintable(name), NULL); if (sink) { - description = QLatin1String(gst_element_factory_get_description(GST_ELEMENT_FACTORY(feature))); - ui->audiosinkCombo->addItem(name, name); - ui->audiosinkCombo->setItemData(ui->audiosinkCombo->findText(name), description, - Qt::ToolTipRole); + description = QLatin1String(gst_element_factory_get_description (GST_ELEMENT_FACTORY(feature))); + audiosinkCombo->addItem(name, name); + audiosinkCombo->setItemData(audiosinkCombo->findText(name), description, Qt::ToolTipRole); gst_object_unref (sink); } } @@ -453,43 +420,39 @@ MainWindow::MainWindow() g_list_free(factoryList); } #else - ui->phononTab->setEnabled(false); - ui->phononLabel->setText(tr("Phonon GStreamer backend not available.")); + tab4->setEnabled(false); + phononLabel->setText(tr("Phonon GStreamer backend not available.")); #endif - ui->videomodeCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); - ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("Auto (default)")), - tr("Choose render method automatically"), Qt::ToolTipRole); + videomodeCombo->addItem(tr("Auto (default)"), QLatin1String("Auto")); + videomodeCombo->setItemData(videomodeCombo->findText(tr("Auto (default)")), tr("Choose render method automatically"), Qt::ToolTipRole); #ifdef Q_WS_X11 - ui->videomodeCombo->addItem(tr("X11"), QLatin1String("X11")); - ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("X11")), - tr("Use X11 Overlays"), Qt::ToolTipRole); + videomodeCombo->addItem(tr("X11"), QLatin1String("X11")); + videomodeCombo->setItemData(videomodeCombo->findText(tr("X11")), tr("Use X11 Overlays"), Qt::ToolTipRole); #endif #ifndef QT_NO_OPENGL - ui->videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); - ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("OpenGL")), - tr("Use OpenGL if available"), Qt::ToolTipRole); + videomodeCombo->addItem(tr("OpenGL"), QLatin1String("OpenGL")); + videomodeCombo->setItemData(videomodeCombo->findText(tr("OpenGL")), tr("Use OpenGL if available"), Qt::ToolTipRole); #endif - ui->videomodeCombo->addItem(tr("Software"), QLatin1String("Software")); - ui->videomodeCombo->setItemData(ui->videomodeCombo->findText(tr("Software")), - tr("Use simple software rendering"), Qt::ToolTipRole); + videomodeCombo->addItem(tr("Software"), QLatin1String("Software")); + videomodeCombo->setItemData(videomodeCombo->findText(tr("Software")), tr("Use simple software rendering"), Qt::ToolTipRole); QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString(); - ui->audiosinkCombo->setCurrentIndex(ui->audiosinkCombo->findData(audioSink)); - ui->videomodeCombo->setCurrentIndex(ui->videomodeCombo->findData(videoMode)); + audiosinkCombo->setCurrentItem(audiosinkCombo->findData(audioSink)); + videomodeCombo->setCurrentItem(videomodeCombo->findData(videoMode)); settings.endGroup(); // Qt - ui->helpView->setText(tr(appearance_text)); + helpview->setText(tr(appearance_text)); setModified(false); updateStyleLayout(); } + MainWindow::~MainWindow() { - delete ui; } #ifdef Q_WS_X11 @@ -509,23 +472,23 @@ void MainWindow::fileSave() QSettings settings(QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("Qt")); QFontDatabase db; - QFont font = db.font(ui->fontFamilyCombo->currentText(), - ui->fontStyleCombo->currentText(), - ui->pointSizeCombo->currentText().toInt()); + QFont font = db.font(familycombo->currentText(), + stylecombo->currentText(), + psizecombo->currentText().toInt()); QStringList actcg, inactcg, discg; - bool overrideDesktopSettings = (ui->guiStyleCombo->currentText() != desktopThemeName); + bool overrideDesktopSettings = (gstylecombo->currentText() != desktopThemeName); if (overrideDesktopSettings) { int i; - for (i = 0; i < QPalette::NColorRoles; i++) + for (i = 0; i < QColorGroup::NColorRoles; i++) actcg << editPalette.color(QPalette::Active, - QPalette::ColorRole(i)).name(); - for (i = 0; i < QPalette::NColorRoles; i++) + (QColorGroup::ColorRole) i).name(); + for (i = 0; i < QColorGroup::NColorRoles; i++) inactcg << editPalette.color(QPalette::Inactive, - QPalette::ColorRole(i)).name(); - for (i = 0; i < QPalette::NColorRoles; i++) + (QColorGroup::ColorRole) i).name(); + for (i = 0; i < QColorGroup::NColorRoles; i++) discg << editPalette.color(QPalette::Disabled, - QPalette::ColorRole(i)).name(); + (QColorGroup::ColorRole) i).name(); } settings.setValue(QLatin1String("font"), font.toString()); @@ -534,63 +497,59 @@ void MainWindow::fileSave() settings.setValue(QLatin1String("Palette/disabled"), discg); settings.setValue(QLatin1String("fontPath"), fontpaths); - settings.setValue(QLatin1String("embedFonts"), ui->fontEmbeddingCheckBox->isChecked()); - settings.setValue(QLatin1String("style"), - overrideDesktopSettings ? ui->guiStyleCombo->currentText() : QString()); + settings.setValue(QLatin1String("embedFonts"), fontembeddingcheckbox->isChecked()); + settings.setValue(QLatin1String("style"), overrideDesktopSettings ? gstylecombo->currentText() : QString()); - settings.setValue(QLatin1String("doubleClickInterval"), ui->doubleClickIntervalSpinBox->value()); - settings.setValue(QLatin1String("cursorFlashTime"), - ui->cursorFlashTimeSpinBox->value() == 9 ? 0 : ui->cursorFlashTimeSpinBox->value()); - settings.setValue(QLatin1String("wheelScrollLines"), ui->wheelScrollLinesSpinBox->value()); - settings.setValue(QLatin1String("resolveSymlinks"), ui->resolveLinksCheckBox->isChecked()); + settings.setValue(QLatin1String("doubleClickInterval"), dcispin->value()); + settings.setValue(QLatin1String("cursorFlashTime"), cfispin->value() == 9 ? 0 : cfispin->value() ); + settings.setValue(QLatin1String("wheelScrollLines"), wslspin->value()); + settings.setValue(QLatin1String("resolveSymlinks"), resolvelinks->isChecked()); - QSize strut(ui->strutWidthSpinBox->value(), ui->strutHeightSpinBox->value()); + QSize strut(strutwidth->value(), strutheight->value()); settings.setValue(QLatin1String("globalStrut/width"), strut.width()); settings.setValue(QLatin1String("globalStrut/height"), strut.height()); - settings.setValue(QLatin1String("useRtlExtensions"), ui->rtlExtensionsCheckBox->isChecked()); + settings.setValue(QLatin1String("useRtlExtensions"), rtlExtensions->isChecked()); #ifdef Q_WS_X11 - QString style = ui->inputStyleCombo->currentText(); + QString style = inputStyle->currentText(); QString str = QLatin1String("On The Spot"); - if (style == tr("Over The Spot")) + if ( style == trUtf8( "Over The Spot" ) ) str = QLatin1String("Over The Spot"); - else if (style == tr("Off The Spot")) + else if ( style == trUtf8( "Off The Spot" ) ) str = QLatin1String("Off The Spot"); - else if (style == tr("Root")) + else if ( style == trUtf8( "Root" ) ) str = QLatin1String("Root"); - settings.setValue(QLatin1String("XIMInputStyle"), str); + settings.setValue( QLatin1String("XIMInputStyle"), str ); #endif #if defined(Q_WS_X11) && !defined(QT_NO_XIM) - settings.setValue(QLatin1String("DefaultInputMethod"), ui->inputMethodCombo->currentText()); + settings.setValue(QLatin1String("DefaultInputMethod"), inputMethod->currentText()); #endif QString audioSink = settings.value(QLatin1String("audiosink"), QLatin1String("Auto")).toString(); QString videoMode = settings.value(QLatin1String("videomode"), QLatin1String("Auto")).toString(); - settings.setValue(QLatin1String("audiosink"), - ui->audiosinkCombo->itemData(ui->audiosinkCombo->currentIndex())); - settings.setValue(QLatin1String("videomode"), - ui->videomodeCombo->itemData(ui->videomodeCombo->currentIndex())); + settings.setValue(QLatin1String("audiosink"), audiosinkCombo->itemData(audiosinkCombo->currentIndex())); + settings.setValue(QLatin1String("videomode"), videomodeCombo->itemData(videomodeCombo->currentIndex())); QStringList effects; - if (ui->effectsCheckBox->isChecked()) { + if (effectcheckbox->isChecked()) { effects << QLatin1String("general"); - switch (ui->menuEffectCombo->currentIndex()) { + switch (menueffect->currentItem()) { case 1: effects << QLatin1String("animatemenu"); break; case 2: effects << QLatin1String("fademenu"); break; } - switch (ui->comboEffectCombo->currentIndex()) { + switch (comboeffect->currentItem()) { case 1: effects << QLatin1String("animatecombo"); break; } - switch (ui->toolTipEffectCombo->currentIndex()) { + switch (tooltipeffect->currentItem()) { case 1: effects << QLatin1String("animatetooltip"); break; case 2: effects << QLatin1String("fadetooltip"); break; } - switch (ui->toolBoxEffectCombo->currentIndex()) { + switch ( toolboxeffect->currentItem() ) { case 1: effects << QLatin1String("animatetoolbox"); break; } } else @@ -614,63 +573,189 @@ void MainWindow::fileSave() #endif // Q_WS_X11 setModified(false); - statusBar()->showMessage(tr("Saved changes.")); + statusBar()->showMessage(QLatin1String("Saved changes.")); } + void MainWindow::fileExit() { qApp->closeAllWindows(); } + void MainWindow::setModified(bool m) { if (modified == m) return; modified = m; - ui->fileSaveAction->setEnabled(m); + fileSaveAction->setEnabled(m); } + void MainWindow::buildPalette() { - QPalette temp(ui->buttonMainColor->color(), ui->buttonWindowColor->color()); - for (int i = 0; i < QPalette::NColorGroups; i++) - temp = PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup(i), temp); + int i; + QColorGroup cg; + QColor btn = buttonMainColor->color(); + QColor back = buttonMainColor2->color(); + QPalette automake( btn, back ); + + for (i = 0; i<9; i++) + cg.setColor( centralFromItem(i), automake.active().color( centralFromItem(i) ) ); + + editPalette.setActive( cg ); + buildActiveEffect(); + + cg = editPalette.inactive(); + + QPalette temp( editPalette.active().color( QColorGroup::Button ), + editPalette.active().color( QColorGroup::Window ) ); + + for (i = 0; i<9; i++) + cg.setColor( centralFromItem(i), temp.inactive().color( centralFromItem(i) ) ); + + editPalette.setInactive( cg ); + buildInactiveEffect(); + + cg = editPalette.disabled(); + + for (i = 0; i<9; i++) + cg.setColor( centralFromItem(i), temp.disabled().color( centralFromItem(i) ) ); + + editPalette.setDisabled( cg ); + buildDisabledEffect(); - editPalette = temp; - setPreviewPalette(editPalette); updateColorButtons(); setModified(true); } -void MainWindow::setPreviewPalette(const QPalette &pal) + +void MainWindow::buildActiveEffect() { - QPalette::ColorGroup colorGroup = groupFromIndex(ui->paletteCombo->currentIndex()); + QColorGroup cg = editPalette.active(); + QColor btn = cg.color( QColorGroup::Button ); - for (int i = 0; i < QPalette::NColorGroups; i++) { - for (int j = 0; j < QPalette::NColorRoles; j++) { - QPalette::ColorGroup targetGroup = QPalette::ColorGroup(i); - QPalette::ColorRole targetRole = QPalette::ColorRole(j); - previewPalette.setColor(targetGroup, targetRole, pal.color(colorGroup, targetRole)); - } + QPalette temp( btn, btn ); + + for (int i = 0; i<5; i++) + cg.setColor( effectFromItem(i), temp.active().color( effectFromItem(i) ) ); + + editPalette.setActive( cg ); + setPreviewPalette( editPalette ); + + updateColorButtons(); +} + + +void MainWindow::buildInactive() +{ + editPalette.setInactive( editPalette.active() ); + buildInactiveEffect(); +} + + +void MainWindow::buildInactiveEffect() +{ + QColorGroup cg = editPalette.inactive(); + + QColor light, midlight, mid, dark, shadow; + QColor btn = cg.color( QColorGroup::Button ); + + light = btn.light(150); + midlight = btn.light(115); + mid = btn.dark(150); + dark = btn.dark(); + shadow = Qt::black; + + cg.setColor( QColorGroup::Light, light ); + cg.setColor( QColorGroup::Midlight, midlight ); + cg.setColor( QColorGroup::Mid, mid ); + cg.setColor( QColorGroup::Dark, dark ); + cg.setColor( QColorGroup::Shadow, shadow ); + + editPalette.setInactive( cg ); + setPreviewPalette( editPalette ); + updateColorButtons(); +} + + +void MainWindow::buildDisabled() +{ + QColorGroup cg = editPalette.active(); + cg.setColor( QColorGroup::ButtonText, Qt::darkGray ); + cg.setColor( QColorGroup::WindowText, Qt::darkGray ); + cg.setColor( QColorGroup::Text, Qt::darkGray ); + cg.setColor( QColorGroup::HighlightedText, Qt::darkGray ); + editPalette.setDisabled( cg ); + + buildDisabledEffect(); +} + + +void MainWindow::buildDisabledEffect() +{ + QColorGroup cg = editPalette.disabled(); + + QColor light, midlight, mid, dark, shadow; + QColor btn = cg.color( QColorGroup::Button ); + + light = btn.light(150); + midlight = btn.light(115); + mid = btn.dark(150); + dark = btn.dark(); + shadow = Qt::black; + + cg.setColor( QColorGroup::Light, light ); + cg.setColor( QColorGroup::Midlight, midlight ); + cg.setColor( QColorGroup::Mid, mid ); + cg.setColor( QColorGroup::Dark, dark ); + cg.setColor( QColorGroup::Shadow, shadow ); + + editPalette.setDisabled( cg ); + setPreviewPalette( editPalette ); + updateColorButtons(); +} + + +void MainWindow::setPreviewPalette( const QPalette& pal ) +{ + QColorGroup cg; + + switch (paletteCombo->currentItem()) { + case 0: + default: + cg = pal.active(); + break; + case 1: + cg = pal.inactive(); + break; + case 2: + cg = pal.disabled(); + break; } + previewPalette.setActive( cg ); + previewPalette.setInactive( cg ); + previewPalette.setDisabled( cg ); - ui->previewFrame->setPreviewPalette(previewPalette); + previewFrame->setPreviewPalette(previewPalette); } + void MainWindow::updateColorButtons() { - ui->buttonMainColor->setColor(editPalette.color(QPalette::Active, QPalette::Button)); - ui->buttonWindowColor->setColor(editPalette.color(QPalette::Active, QPalette::Window)); + buttonMainColor->setColor( editPalette.active().color( QColorGroup::Button )); + buttonMainColor2->setColor( editPalette.active().color( QColorGroup::Window )); } + void MainWindow::tunePalette() { bool ok; QPalette pal = PaletteEditorAdvanced::getPalette(&ok, editPalette, - backgroundRole(), this); - if (!ok) + backgroundMode(), this); + if (! ok) return; editPalette = pal; @@ -678,6 +763,7 @@ void MainWindow::tunePalette() setModified(true); } + void MainWindow::paletteSelected(int) { setPreviewPalette(editPalette); @@ -685,10 +771,10 @@ void MainWindow::paletteSelected(int) void MainWindow::updateStyleLayout() { - QString currentStyle = ui->guiStyleCombo->currentText(); + QString currentStyle = gstylecombo->currentText(); bool autoStyle = (currentStyle == desktopThemeName); - ui->previewFrame->setPreviewVisible(!autoStyle); - ui->buildPaletteGroup->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); + previewFrame->setPreviewVisible(!autoStyle); + groupAutoPalette->setEnabled(currentStyle.toLower() != QLatin1String("gtk") && !autoStyle); } void MainWindow::styleSelected(const QString &stylename) @@ -700,7 +786,7 @@ void MainWindow::styleSelected(const QString &stylename) style = QStyleFactory::create(stylename); if (!style) return; - setStyleHelper(ui->previewFrame, style); + setStyleHelper(previewFrame, style); delete previewstyle; previewstyle = style; setModified(true); @@ -708,191 +794,210 @@ void MainWindow::styleSelected(const QString &stylename) updateStyleLayout(); } + void MainWindow::familySelected(const QString &family) { QFontDatabase db; QStringList styles = db.styles(family); - ui->fontStyleCombo->clear(); - ui->fontStyleCombo->addItems(styles); - ui->familySubstitutionCombo->addItem(family); + stylecombo->clear(); + stylecombo->insertStringList(styles); + familysubcombo->insertItem(family); buildFont(); } + void MainWindow::buildFont() { QFontDatabase db; - QFont font = db.font(ui->fontFamilyCombo->currentText(), - ui->fontStyleCombo->currentText(), - ui->pointSizeCombo->currentText().toInt()); - ui->sampleLineEdit->setFont(font); + QFont font = db.font(familycombo->currentText(), + stylecombo->currentText(), + psizecombo->currentText().toInt()); + samplelineedit->setFont(font); setModified(true); } + void MainWindow::substituteSelected(const QString &family) { QStringList subs = QFont::substitutes(family); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); + sublistbox->clear(); + sublistbox->insertStringList(subs); } + void MainWindow::removeSubstitute() { - if (!ui->substitutionsListBox->currentItem()) + if (sublistbox->currentItem() < 0 || + uint(sublistbox->currentItem()) > sublistbox->count()) return; - int row = ui->substitutionsListBox->currentRow(); - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - subs.removeAt(ui->substitutionsListBox->currentRow()); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); - if (row > ui->substitutionsListBox->count()) - row = ui->substitutionsListBox->count() - 1; - ui->substitutionsListBox->setCurrentRow(row); - QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); - QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); + int item = sublistbox->currentItem(); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + subs.removeAt(sublistbox->currentItem()); + sublistbox->clear(); + sublistbox->insertStringList(subs); + if (uint(item) > sublistbox->count()) + item = int(sublistbox->count()) - 1; + sublistbox->setCurrentItem(item); + QFont::removeSubstitution(familysubcombo->currentText()); + QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); } + void MainWindow::addSubstitute() { - if (!ui->substitutionsListBox->currentItem()) { - QFont::insertSubstitution(ui->familySubstitutionCombo->currentText(), - ui->chooseSubstitutionCombo->currentText()); - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); + if (sublistbox->currentItem() < 0 || + uint(sublistbox->currentItem()) > sublistbox->count()) { + QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + sublistbox->clear(); + sublistbox->insertStringList(subs); setModified(true); return; } - int row = ui->substitutionsListBox->currentRow(); - QFont::insertSubstitution(ui->familySubstitutionCombo->currentText(), ui->chooseSubstitutionCombo->currentText()); - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); - ui->substitutionsListBox->setCurrentRow(row); + int item = sublistbox->currentItem(); + QFont::insertSubstitution(familysubcombo->currentText(), choosesubcombo->currentText()); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + sublistbox->clear(); + sublistbox->insertStringList(subs); + sublistbox->setCurrentItem(item); setModified(true); } + void MainWindow::downSubstitute() { - if (!ui->substitutionsListBox->currentItem() || ui->substitutionsListBox->currentRow() >= ui->substitutionsListBox->count()) + if (sublistbox->currentItem() < 0 || + uint(sublistbox->currentItem()) >= sublistbox->count()) return; - int row = ui->substitutionsListBox->currentRow(); - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - QString fam = subs.at(row); - subs.removeAt(row); - subs.insert(row + 1, fam); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); - ui->substitutionsListBox->setCurrentRow(row + 1); - QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); - QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); + int item = sublistbox->currentItem(); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + QString fam = subs.at(item); + subs.removeAt(item); + subs.insert(item+1, fam); + sublistbox->clear(); + sublistbox->insertStringList(subs); + sublistbox->setCurrentItem(item + 1); + QFont::removeSubstitution(familysubcombo->currentText()); + QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); } + void MainWindow::upSubstitute() { - if (!ui->substitutionsListBox->currentItem() || ui->substitutionsListBox->currentRow() < 1) + if (sublistbox->currentItem() < 1) return; - int row = ui->substitutionsListBox->currentRow(); - QStringList subs = QFont::substitutes(ui->familySubstitutionCombo->currentText()); - QString fam = subs.at(row); - subs.removeAt(row); - subs.insert(row-1, fam); - ui->substitutionsListBox->clear(); - ui->substitutionsListBox->insertItems(0, subs); - ui->substitutionsListBox->setCurrentRow(row - 1); - QFont::removeSubstitution(ui->familySubstitutionCombo->currentText()); - QFont::insertSubstitutions(ui->familySubstitutionCombo->currentText(), subs); + int item = sublistbox->currentItem(); + QStringList subs = QFont::substitutes(familysubcombo->currentText()); + QString fam = subs.at(item); + subs.removeAt(item); + subs.insert(item-1, fam); + sublistbox->clear(); + sublistbox->insertStringList(subs); + sublistbox->setCurrentItem(item - 1); + QFont::removeSubstitution(familysubcombo->currentText()); + QFont::insertSubstitutions(familysubcombo->currentText(), subs); setModified(true); } + void MainWindow::removeFontpath() { - if (!ui->fontpathListBox->currentItem()) + if (fontpathlistbox->currentItem() < 0 || + uint(fontpathlistbox->currentItem()) > fontpathlistbox->count()) return; - int row = ui->fontpathListBox->currentRow(); - fontpaths.removeAt(row); - ui->fontpathListBox->clear(); - ui->fontpathListBox->insertItems(0, fontpaths); - if (row > ui->fontpathListBox->count()) - row = ui->fontpathListBox->count() - 1; - ui->fontpathListBox->setCurrentRow(row); + int item = fontpathlistbox->currentItem(); + fontpaths.removeAt(fontpathlistbox->currentItem()); + fontpathlistbox->clear(); + fontpathlistbox->insertStringList(fontpaths); + if (uint(item) > fontpathlistbox->count()) + item = int(fontpathlistbox->count()) - 1; + fontpathlistbox->setCurrentItem(item); setModified(true); } + void MainWindow::addFontpath() { - if (ui->fontPathLineEdit->text().isEmpty()) + if (fontpathlineedit->text().isEmpty()) return; - if (!ui->fontpathListBox->currentItem()) { - fontpaths.append(ui->fontPathLineEdit->text()); - ui->fontpathListBox->clear(); - ui->fontpathListBox->insertItems(0, fontpaths); + if (fontpathlistbox->currentItem() < 0 || + uint(fontpathlistbox->currentItem()) > fontpathlistbox->count()) { + fontpaths.append(fontpathlineedit->text()); + fontpathlistbox->clear(); + fontpathlistbox->insertStringList(fontpaths); setModified(true); return; } - int row = ui->fontpathListBox->currentRow(); - fontpaths.insert(row + 1, ui->fontPathLineEdit->text()); - ui->fontpathListBox->clear(); - ui->fontpathListBox->insertItems(0, fontpaths); - ui->fontpathListBox->setCurrentRow(row); + int item = fontpathlistbox->currentItem(); + fontpaths.insert(fontpathlistbox->currentItem()+1, + fontpathlineedit->text()); + fontpathlistbox->clear(); + fontpathlistbox->insertStringList(fontpaths); + fontpathlistbox->setCurrentItem(item); setModified(true); } + void MainWindow::downFontpath() { - if (!ui->fontpathListBox->currentItem() - || ui->fontpathListBox->currentRow() >= (ui->fontpathListBox->count() - 1)) { + if (fontpathlistbox->currentItem() < 0 || + uint(fontpathlistbox->currentItem()) >= fontpathlistbox->count() - 1) return; - } - int row = ui->fontpathListBox->currentRow(); - QString fam = fontpaths.at(row); - fontpaths.removeAt(row); - fontpaths.insert(row + 1, fam); - ui->fontpathListBox->clear(); - ui->fontpathListBox->insertItems(0, fontpaths); - ui->fontpathListBox->setCurrentRow(row + 1); + int item = fontpathlistbox->currentItem(); + QString fam = fontpaths.at(item); + fontpaths.removeAt(item); + fontpaths.insert(item+1, fam); + fontpathlistbox->clear(); + fontpathlistbox->insertStringList(fontpaths); + fontpathlistbox->setCurrentItem(item + 1); setModified(true); } + void MainWindow::upFontpath() { - if (!ui->fontpathListBox->currentItem() || ui->fontpathListBox->currentRow() < 1) + if (fontpathlistbox->currentItem() < 1) return; - int row = ui->fontpathListBox->currentRow(); - QString fam = fontpaths.at(row); - fontpaths.removeAt(row); - fontpaths.insert(row - 1, fam); - ui->fontpathListBox->clear(); - ui->fontpathListBox->insertItems(0, fontpaths); - ui->fontpathListBox->setCurrentRow(row - 1); + int item = fontpathlistbox->currentItem(); + QString fam = fontpaths.at(item); + fontpaths.removeAt(item); + fontpaths.insert(item-1, fam); + fontpathlistbox->clear(); + fontpathlistbox->insertStringList(fontpaths); + fontpathlistbox->setCurrentItem(item - 1); setModified(true); } + void MainWindow::browseFontpath() { - QString dirname = QFileDialog::getExistingDirectory(this, tr("Select a Directory")); + QString dirname = QFileDialog::getExistingDirectory(QString(), this, 0, + tr("Select a Directory")); if (dirname.isNull()) return; - ui->fontPathLineEdit->setText(dirname); + fontpathlineedit->setText(dirname); } + void MainWindow::somethingModified() { setModified(true); } + void MainWindow::helpAbout() { QMessageBox box(this); @@ -905,42 +1010,44 @@ void MainWindow::helpAbout() box.exec(); } + void MainWindow::helpAboutQt() { QMessageBox::aboutQt(this, tr("Qt Configuration")); } + void MainWindow::pageChanged(QWidget *page) { - if (page == ui->interfaceTab) - ui->helpView->setText(tr(interface_text)); - else if (page == ui->appearanceTab) - ui->helpView->setText(tr(appearance_text)); - else if (page == ui->fontsTab) - ui->helpView->setText(tr(font_text)); - else if (page == ui->printerTab) - ui->helpView->setText(tr(printer_text)); - else if (page == ui->phononTab) - ui->helpView->setText(tr(phonon_text)); + if (page == tab) + helpview->setText(tr(interface_text)); + else if (page == tab1) + helpview->setText(tr(appearance_text)); + else if (page == tab2) + helpview->setText(tr(font_text)); + else if (page == tab3) + helpview->setText(tr(printer_text)); + else if (page == tab4) + helpview->setText(tr(phonon_text)); } + void MainWindow::closeEvent(QCloseEvent *e) { if (modified) { - switch (QMessageBox::warning(this, tr("Save Changes"), - tr("Save changes to settings?"), - (QMessageBox::Yes | QMessageBox::No - | QMessageBox::Cancel))) { - case QMessageBox::Yes: // save + switch(QMessageBox::warning(this, tr("Save Changes"), + tr("Save changes to settings?"), + tr("&Yes"), tr("&No"), tr("&Cancel"), 0, 2)) { + case 0: // save qApp->processEvents(); fileSave(); // fall through intended - case QMessageBox::No: // don't save + case 1: // don't save e->accept(); break; - case QMessageBox::Cancel: // cancel + case 2: // cancel e->ignore(); break; diff --git a/tools/qtconfig/mainwindow.h b/tools/qtconfig/mainwindow.h index 50d73f9..9bc8068 100644 --- a/tools/qtconfig/mainwindow.h +++ b/tools/qtconfig/mainwindow.h @@ -42,15 +42,11 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include +#include "mainwindowbase.h" QT_BEGIN_NAMESPACE -namespace Ui { - class MainWindow; -} - -class MainWindow : public QMainWindow +class MainWindow : public MainWindowBase { Q_OBJECT @@ -60,6 +56,7 @@ public: void closeEvent(QCloseEvent *); + public slots: virtual void buildPalette(); virtual void buildFont(); @@ -86,17 +83,21 @@ public slots: private: + void buildActive(); + void buildActiveEffect(); + void buildInactive(); + void buildInactiveEffect(); + void buildDisabled(); + void buildDisabledEffect(); + void updateColorButtons(); void updateFontSample(); void updateStyleLayout(); - static QPalette::ColorGroup groupFromIndex(int); - void setPreviewPalette(const QPalette &); void setModified(bool); - Ui::MainWindow *ui; QString desktopThemeName; QPalette editPalette, previewPalette; QStyle *previewstyle; diff --git a/tools/qtconfig/mainwindow.ui b/tools/qtconfig/mainwindow.ui deleted file mode 100644 index 2ca9101..0000000 --- a/tools/qtconfig/mainwindow.ui +++ /dev/null @@ -1,1388 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - MainWindow - - - - 0 - 0 - 815 - 716 - - - - Qt Configuration - - - - - 8 - - - - - - 200 - 0 - - - - true - - - - - - - 0 - - - - Appearance - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - GUI Style - - - - 4 - - - 8 - - - - - - 0 - 0 - - - - Select GUI &Style: - - - guiStyleCombo - - - - - - - - - - - - - - 0 - 0 - - - - Preview - - - - - - Select &Palette: - - - paletteCombo - - - - - - - - Active Palette - - - - - Inactive Palette - - - - - Disabled Palette - - - - - - - - - 0 - 0 - - - - - 410 - 260 - - - - - - - - - - - - 0 - 0 - - - - - 400 - 0 - - - - Build Palette - - - - - - - 0 - - - - - &Button Background: - - - buttonMainColor - - - - - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - 1 - - - 0 - - - Window Back&ground: - - - Qt::AlignVCenter - - - 0 - - - buttonWindowColor - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 70 - 20 - - - - - - - - &Tune Palette... - - - - - - - - - - Please use the KDE Control Center to set the palette. - - - - - - - - - - - Fonts - - - - - - Default Font - - - - 8 - - - 4 - - - - - true - - - false - - - - - - - true - - - false - - - - - - - true - - - true - - - false - - - - - - - &Style: - - - fontStyleCombo - - - - - - - &Point Size: - - - pointSizeCombo - - - - - - - F&amily: - - - fontFamilyCombo - - - - - - - Sample Text - - - Qt::AlignHCenter - - - - - - - - - - Font Substitution - - - - 4 - - - 8 - - - - - 4 - - - 0 - - - - - S&elect or Enter a Family: - - - familySubstitutionCombo - - - - - - - true - - - true - - - false - - - - - - - - - QFrame::HLine - - - QFrame::Sunken - - - Qt::Horizontal - - - - - - - Current Substitutions: - - - - - - - - - - 4 - - - 0 - - - - - Up - - - - - - - Down - - - - - - - Remove - - - - - - - - - QFrame::HLine - - - QFrame::Sunken - - - Qt::Horizontal - - - - - - - 4 - - - 0 - - - - - Select s&ubstitute Family: - - - chooseSubstitutionCombo - - - - - - - true - - - false - - - - - - - Add - - - - - - - - - - - - - Interface - - - - - - Feel Settings - - - - 8 - - - 4 - - - - - ms - - - 10 - - - 10000 - - - - - - - &Double Click Interval: - - - doubleClickIntervalSpinBox - - - - - - - No blinking - - - ms - - - 9 - - - 10000 - - - - - - - &Cursor Flash Time: - - - cursorFlashTimeSpinBox - - - - - - - lines - - - 1 - - - 20 - - - - - - - Wheel &Scroll Lines: - - - wheelScrollLinesSpinBox - - - - - - - Resolve symlinks in URLs - - - - - - - - - - GUI Effects - - - - 4 - - - 8 - - - - - &Enable - - - Alt+E - - - - - - - - 4 - - - - - &Menu Effect: - - - menuEffectCombo - - - - - - - C&omboBox Effect: - - - comboEffectCombo - - - - - - - &ToolTip Effect: - - - toolTipEffectCombo - - - - - - - Tool&Box Effect: - - - toolBoxEffectCombo - - - - - - - 0 - - - true - - - - Disable - - - - - Animate - - - - - Fade - - - - - - - - - Disable - - - - - Animate - - - - - - - - - Disable - - - - - Animate - - - - - Fade - - - - - - - - - Disable - - - - - Animate - - - - - - - - - - - - - - Global Strut - - - - 8 - - - 4 - - - - - Minimum &Width: - - - strutWidthSpinBox - - - - - - - Minimum Hei&ght: - - - strutHeightSpinBox - - - - - - - pixels - - - 1000 - - - - - - - pixels - - - 1000 - - - - - - - - - - Enhanced support for languages written right-to-left - - - - - - - XIM Input Style: - - - - - - - 0 - - - - On The Spot - - - - - Over The Spot - - - - - Off The Spot - - - - - Root - - - - - - - - Default Input Method: - - - - - - - -1 - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - - - - - - Printer - - - - - - Enable Font embedding - - - true - - - - - - - - 0 - 0 - - - - Font Paths - - - - 4 - - - 8 - - - - - 0 - - - 4 - - - - - Up - - - - - - - Remove - - - - - - - Down - - - - - - - - - - - - 0 - - - 4 - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 20 - 20 - - - - - - - - Add - - - - - - - Browse... - - - - - - - Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. - - - - - - - - - - - - - - - - Phonon - - - - - - About Phonon - - - - - - Current Version: - - - - - - - Not available - - - - - - - Website: - - - - - - - <a href="http://phonon.kde.org">http://phonon.kde.org/</a> - - - true - - - - - - - - - - About GStreamer - - - - - - Current Version: - - - - - - - Not available - - - - - - - Website: - - - - - - - <a href="http://gstreamer.freedesktop.org/">http://gstreamer.freedesktop.org/</a> - - - true - - - - - - - - - - GStreamer backend settings - - - - - - Preferred audio sink: - - - audiosinkCombo - - - - - - - - - - Preferred render method: - - - videomodeCombo - - - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> - - - Qt::RichText - - - false - - - true - - - 2 - - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - 0 - 0 - 815 - 19 - - - - - - 203 - 114 - 161 - 110 - - - - &File - - - - - - - - - 543 - 98 - 161 - 106 - - - - &Help - - - - - - - - - - - &Save - - - Save - - - Ctrl+S - - - - - E&xit - - - Exit - - - Ctrl+Q - - - - - &About - - - About - - - - - - - - About &Qt - - - About Qt - - - - - - ColorButton - -

colorbutton.h
- - - PreviewFrame - -
previewframe.h
-
- - - helpView - mainTabWidget - guiStyleCombo - tunePaletteButton - paletteCombo - fontFamilyCombo - fontStyleCombo - pointSizeCombo - sampleLineEdit - familySubstitutionCombo - substitutionsListBox - upSubstitutionButton - downSubstitutionButton - removeSubstitutionButton - chooseSubstitutionCombo - addSubstitutionButton - doubleClickIntervalSpinBox - cursorFlashTimeSpinBox - wheelScrollLinesSpinBox - resolveLinksCheckBox - effectsCheckBox - menuEffectCombo - comboEffectCombo - toolTipEffectCombo - toolBoxEffectCombo - strutWidthSpinBox - strutHeightSpinBox - rtlExtensionsCheckBox - inputStyleCombo - inputMethodCombo - fontEmbeddingCheckBox - fontpathListBox - upFontpathButton - downFontpathButton - removeFontpathButton - fontPathLineEdit - browseFontPathButton - addFontPathButton - audiosinkCombo - videomodeCombo - - - - - effectsCheckBox - toggled(bool) - effectsFrame - setEnabled(bool) - - - 417 - 257 - - - 578 - 379 - - - - - fontEmbeddingCheckBox - toggled(bool) - fontPathsGroup - setEnabled(bool) - - - 449 - 69 - - - 447 - 94 - - - - -
diff --git a/tools/qtconfig/mainwindowbase.cpp b/tools/qtconfig/mainwindowbase.cpp new file mode 100644 index 0000000..2460bca --- /dev/null +++ b/tools/qtconfig/mainwindowbase.cpp @@ -0,0 +1,250 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "mainwindowbase.h" +#include "colorbutton.h" +#include "previewframe.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/* + * Constructs a MainWindowBase as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + * + */ +MainWindowBase::MainWindowBase(QWidget* parent, const char* name, Qt::WindowFlags fl) + : Q3MainWindow(parent, name, fl) +{ + setupUi(this); + + (void)statusBar(); + + // signals and slots connections + connect(fontpathlineedit, SIGNAL(returnPressed()), this, SLOT(addFontpath())); + connect(PushButton15, SIGNAL(clicked()), this, SLOT(addFontpath())); + connect(PushButton1, SIGNAL(clicked()), this, SLOT(addSubstitute())); + connect(PushButton14, SIGNAL(clicked()), this, SLOT(browseFontpath())); + connect(stylecombo, SIGNAL(activated(int)), this, SLOT(buildFont())); + connect(psizecombo, SIGNAL(activated(int)), this, SLOT(buildFont())); + connect(PushButton12, SIGNAL(clicked()), this, SLOT(downFontpath())); + connect(PushButton3, SIGNAL(clicked()), this, SLOT(downSubstitute())); + connect(familycombo, SIGNAL(activated(QString)), this, SLOT(familySelected(QString))); + connect(fileExitAction, SIGNAL(activated()), this, SLOT(fileExit())); + connect(fileSaveAction, SIGNAL(activated()), this, SLOT(fileSave())); + connect(helpAboutAction, SIGNAL(activated()), this, SLOT(helpAbout())); + connect(helpAboutQtAction, SIGNAL(activated()), this, SLOT(helpAboutQt())); + connect(TabWidget3, SIGNAL(currentChanged(QWidget*)), this, SLOT(pageChanged(QWidget*))); + connect(paletteCombo, SIGNAL(activated(int)), this, SLOT(paletteSelected(int))); + connect(PushButton13, SIGNAL(clicked()), this, SLOT(removeFontpath())); + connect(PushButton4, SIGNAL(clicked()), this, SLOT(removeSubstitute())); + connect(effectcheckbox, SIGNAL(toggled(bool)), effectbase, SLOT(setEnabled(bool))); + connect(fontembeddingcheckbox, SIGNAL(toggled(bool)), GroupBox10, SLOT(setEnabled(bool))); + connect(toolboxeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(dcispin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); + connect(cfispin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); + connect(wslspin, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); + connect(menueffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(comboeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(audiosinkCombo, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(videomodeCombo, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(tooltipeffect, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(strutwidth, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); + connect(strutheight, SIGNAL(valueChanged(int)), this, SLOT(somethingModified())); + connect(effectcheckbox, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); + connect(resolvelinks, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); + connect(fontembeddingcheckbox, SIGNAL(clicked()), this, SLOT(somethingModified())); + connect(rtlExtensions, SIGNAL(toggled(bool)), this, SLOT(somethingModified())); + connect(inputStyle, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(inputMethod, SIGNAL(activated(int)), this, SLOT(somethingModified())); + connect(gstylecombo, SIGNAL(activated(QString)), this, SLOT(styleSelected(QString))); + connect(familysubcombo, SIGNAL(activated(QString)), this, SLOT(substituteSelected(QString))); + connect(btnAdvanced, SIGNAL(clicked()), this, SLOT(tunePalette())); + connect(PushButton11, SIGNAL(clicked()), this, SLOT(upFontpath())); + connect(PushButton2, SIGNAL(clicked()), this, SLOT(upSubstitute())); + init(); +} + +/* + * Destroys the object and frees any allocated resources + */ +MainWindowBase::~MainWindowBase() +{ + destroy(); + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void MainWindowBase::languageChange() +{ + retranslateUi(this); +} + +void MainWindowBase::init() +{ +} + +void MainWindowBase::destroy() +{ +} + +void MainWindowBase::addFontpath() +{ + qWarning("MainWindowBase::addFontpath(): Not implemented yet"); +} + +void MainWindowBase::addSubstitute() +{ + qWarning("MainWindowBase::addSubstitute(): Not implemented yet"); +} + +void MainWindowBase::browseFontpath() +{ + qWarning("MainWindowBase::browseFontpath(): Not implemented yet"); +} + +void MainWindowBase::buildFont() +{ + qWarning("MainWindowBase::buildFont(): Not implemented yet"); +} + +void MainWindowBase::buildPalette() +{ + qWarning("MainWindowBase::buildPalette(): Not implemented yet"); +} + +void MainWindowBase::downFontpath() +{ + qWarning("MainWindowBase::downFontpath(): Not implemented yet"); +} + +void MainWindowBase::downSubstitute() +{ + qWarning("MainWindowBase::downSubstitute(): Not implemented yet"); +} + +void MainWindowBase::familySelected( const QString &) +{ + qWarning("MainWindowBase::familySelected( const QString &): Not implemented yet"); +} + +void MainWindowBase::fileExit() +{ + qWarning("MainWindowBase::fileExit(): Not implemented yet"); +} + +void MainWindowBase::fileSave() +{ + qWarning("MainWindowBase::fileSave(): Not implemented yet"); +} + +void MainWindowBase::helpAbout() +{ + qWarning("MainWindowBase::helpAbout(): Not implemented yet"); +} + +void MainWindowBase::helpAboutQt() +{ + qWarning("MainWindowBase::helpAboutQt(): Not implemented yet"); +} + +void MainWindowBase::new_slot() +{ + qWarning("MainWindowBase::new_slot(): Not implemented yet"); +} + +void MainWindowBase::pageChanged( QWidget *) +{ + qWarning("MainWindowBase::pageChanged( QWidget *): Not implemented yet"); +} + +void MainWindowBase::paletteSelected(int) +{ + qWarning("MainWindowBase::paletteSelected(int): Not implemented yet"); +} + +void MainWindowBase::removeFontpath() +{ + qWarning("MainWindowBase::removeFontpath(): Not implemented yet"); +} + +void MainWindowBase::removeSubstitute() +{ + qWarning("MainWindowBase::removeSubstitute(): Not implemented yet"); +} + +void MainWindowBase::somethingModified() +{ + qWarning("MainWindowBase::somethingModified(): Not implemented yet"); +} + +void MainWindowBase::styleSelected( const QString &) +{ + qWarning("MainWindowBase::styleSelected( const QString &): Not implemented yet"); +} + +void MainWindowBase::substituteSelected( const QString &) +{ + qWarning("MainWindowBase::substituteSelected( const QString &): Not implemented yet"); +} + +void MainWindowBase::tunePalette() +{ + qWarning("MainWindowBase::tunePalette(): Not implemented yet"); +} + +void MainWindowBase::upFontpath() +{ + qWarning("MainWindowBase::upFontpath(): Not implemented yet"); +} + +void MainWindowBase::upSubstitute() +{ + qWarning("MainWindowBase::upSubstitute(): Not implemented yet"); +} + +QT_END_NAMESPACE diff --git a/tools/qtconfig/mainwindowbase.h b/tools/qtconfig/mainwindowbase.h new file mode 100644 index 0000000..1e1dabf --- /dev/null +++ b/tools/qtconfig/mainwindowbase.h @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef MAINWINDOWBASE_H +#define MAINWINDOWBASE_H + +#include "ui_mainwindowbase.h" +#include + +QT_BEGIN_NAMESPACE + +class ColorButton; +class PreviewFrame; + +class MainWindowBase : public Q3MainWindow, public Ui::MainWindowBase +{ + Q_OBJECT + +public: + MainWindowBase(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = Qt::Window); + ~MainWindowBase(); + +public slots: + virtual void addFontpath(); + virtual void addSubstitute(); + virtual void browseFontpath(); + virtual void buildFont(); + virtual void buildPalette(); + virtual void downFontpath(); + virtual void downSubstitute(); + virtual void familySelected( const QString & ); + virtual void fileExit(); + virtual void fileSave(); + virtual void helpAbout(); + virtual void helpAboutQt(); + virtual void new_slot(); + virtual void pageChanged( QWidget * ); + virtual void paletteSelected( int ); + virtual void removeFontpath(); + virtual void removeSubstitute(); + virtual void somethingModified(); + virtual void styleSelected( const QString & ); + virtual void substituteSelected( const QString & ); + virtual void tunePalette(); + virtual void upFontpath(); + virtual void upSubstitute(); + +protected slots: + virtual void languageChange(); + + virtual void init(); + virtual void destroy(); +}; + +QT_END_NAMESPACE + +#endif // MAINWINDOWBASE_H diff --git a/tools/qtconfig/mainwindowbase.ui b/tools/qtconfig/mainwindowbase.ui new file mode 100644 index 0000000..b09abd0 --- /dev/null +++ b/tools/qtconfig/mainwindowbase.ui @@ -0,0 +1,1384 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + MainWindowBase + + + + 0 + 0 + 815 + 716 + + + + Qt Configuration + + + + + 0 + 26 + 815 + 690 + + + + + 8 + + + + + + 200 + 0 + + + + true + + + + + + + 0 + + + + Appearance + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + GUI Style + + + + 4 + + + 8 + + + + + + 0 + 0 + + + + Select GUI &Style: + + + gstylecombo + + + + + + + + + + + + + + 0 + 0 + + + + Preview + + + + + + Select &Palette: + + + paletteCombo + + + + + + + + Active Palette + + + + + Inactive Palette + + + + + Disabled Palette + + + + + + + + + 0 + 0 + + + + + 410 + 260 + + + + + + + + + + + + 0 + 0 + + + + + 400 + 0 + + + + Build Palette + + + + + + + 0 + + + + + &3-D Effects: + + + buttonMainColor + + + + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + 1 + + + 0 + + + Window Back&ground: + + + Qt::AlignVCenter + + + 0 + + + buttonMainColor2 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 70 + 20 + + + + + + + + &Tune Palette... + + + + + + + + + + Please use the KDE Control Center to set the palette. + + + + + + + + + + + Fonts + + + + + + Default Font + + + + 8 + + + 4 + + + + + true + + + false + + + + + + + true + + + false + + + + + + + true + + + true + + + false + + + + + + + &Style: + + + stylecombo + + + + + + + &Point Size: + + + psizecombo + + + + + + + F&amily: + + + familycombo + + + + + + + Sample Text + + + Qt::AlignHCenter + + + + + + + + + + Font Substitution + + + + 4 + + + 8 + + + + + 4 + + + 0 + + + + + S&elect or Enter a Family: + + + familysubcombo + + + + + + + true + + + true + + + false + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + Qt::Horizontal + + + + + + + Current Substitutions: + + + + + + + + + + 4 + + + 0 + + + + + Up + + + + + + + Down + + + + + + + Remove + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + Qt::Horizontal + + + + + + + 4 + + + 0 + + + + + Select s&ubstitute Family: + + + choosesubcombo + + + + + + + true + + + false + + + + + + + Add + + + + + + + + + + + + + Interface + + + + + + Feel Settings + + + + 8 + + + 4 + + + + + ms + + + 10 + + + 10000 + + + + + + + &Double Click Interval: + + + dcispin + + + + + + + No blinking + + + ms + + + 9 + + + 10000 + + + + + + + &Cursor Flash Time: + + + cfispin + + + + + + + lines + + + 1 + + + 20 + + + + + + + Wheel &Scroll Lines: + + + wslspin + + + + + + + Resolve symlinks in URLs + + + + + + + + + + GUI Effects + + + + 4 + + + 8 + + + + + &Enable + + + Alt+E + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + + 0 + + + 4 + + + + + &Menu Effect: + + + menueffect + + + + + + + C&omboBox Effect: + + + comboeffect + + + + + + + &ToolTip Effect: + + + tooltipeffect + + + + + + + Tool&Box Effect: + + + toolboxeffect + + + + + + + 0 + + + true + + + + Disable + + + + + Animate + + + + + Fade + + + + + + + + + Disable + + + + + Animate + + + + + + + + + Disable + + + + + Animate + + + + + Fade + + + + + + + + + Disable + + + + + Animate + + + + + + + + + + + + + + Global Strut + + + + 8 + + + 4 + + + + + Minimum &Width: + + + strutwidth + + + + + + + Minimum Hei&ght: + + + strutheight + + + + + + + pixels + + + 1000 + + + + + + + pixels + + + 1000 + + + + + + + + + + Enhanced support for languages written right-to-left + + + + + + + XIM Input Style: + + + + + + + 0 + + + + On The Spot + + + + + Over The Spot + + + + + Off The Spot + + + + + Root + + + + + + + + Default Input Method: + + + + + + + -1 + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 40 + + + + + + + + + Printer + + + + + + Enable Font embedding + + + true + + + + + + + + 0 + 0 + + + + Font Paths + + + + 4 + + + 8 + + + + + 0 + + + 4 + + + + + Up + + + + + + + Remove + + + + + + + Down + + + + + + + + + + + + 0 + + + 4 + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + Add + + + + + + + Browse... + + + + + + + Press the <b>Browse</b> button or enter a directory and press Enter to add them to the list. + + + + + + + + + + + + + + + + Phonon + + + + + + About Phonon + + + + + + Current Version: + + + + + + + Not available + + + + + + + Website: + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html> + + + true + + + + + + + + + + About GStreamer + + + + + + Current Version: + + + + + + + Not available + + + + + + + Website: + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html> + + + true + + + + + + + + + + GStreamer backend settings + + + + + + Preferred audio sink: + + + audiosinkCombo + + + + + + + + + + Preferred render method: + + + videomodeCombo + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html> + + + Qt::RichText + + + false + + + true + + + 2 + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + 0 + 0 + 815 + 26 + + + + + + 0 + 0 + 123 + 92 + + + + &File + + + + + + + + + + + + 0 + 0 + 123 + 90 + + + + &Help + + + + + + + + + + + + + + &Save + + + Save + + + Ctrl+S + + + + + E&xit + + + Exit + + + + + + + + &About + + + About + + + + + + + + About &Qt + + + About Qt + + + + + + Q3Frame + QFrame +
Qt3Support/Q3Frame
+ 1 +
+ + Q3MainWindow + QWidget +
q3mainwindow.h
+ 1 +
+ + Q3ListBox + Q3Frame +
q3listbox.h
+
+ + ColorButton + +
colorbutton.h
+
+ + PreviewFrame + +
previewframe.h
+
+
+ + helpview + familycombo + stylecombo + psizecombo + samplelineedit + familysubcombo + PushButton2 + PushButton3 + PushButton4 + choosesubcombo + PushButton1 + dcispin + cfispin + wslspin + effectcheckbox + menueffect + comboeffect + tooltipeffect + strutwidth + strutheight + sublistbox + + + +
diff --git a/tools/qtconfig/paletteeditoradvanced.cpp b/tools/qtconfig/paletteeditoradvanced.cpp index a700b8d..f59584e 100644 --- a/tools/qtconfig/paletteeditoradvanced.cpp +++ b/tools/qtconfig/paletteeditoradvanced.cpp @@ -38,74 +38,58 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "ui_paletteeditoradvanced.h" + #include "paletteeditoradvanced.h" #include "colorbutton.h" +#include +#include +#include +#include +#include +#include + QT_BEGIN_NAMESPACE -PaletteEditorAdvanced::PaletteEditorAdvanced(QWidget *parent) - : QDialog(parent), ui(new Ui::PaletteEditorAdvanced), selectedPalette(0) +PaletteEditorAdvanced::PaletteEditorAdvanced( QWidget * parent, + const char * name, bool modal, Qt::WindowFlags f ) + : PaletteEditorAdvancedBase( parent, name, modal, f ), selectedPalette(0) { - ui->setupUi(this); - - // create a ColorButton's - buttonCentral = new ColorButton(ui->groupCentral); - buttonCentral->setToolTip(tr("Choose a color")); - buttonCentral->setWhatsThis(tr("Choose a color for the selected central color role.")); - ui->layoutCentral->addWidget(buttonCentral); - ui->labelCentral->setBuddy(buttonCentral); - - buttonEffect = new ColorButton(ui->groupEffect); - buttonEffect->setToolTip(tr("Choose a color")); - buttonEffect->setWhatsThis(tr("Choose a color for the selected effect color role.")); + // work around buggy UI file + comboEffect->setEnabled(false); buttonEffect->setEnabled(false); - ui->layoutEffect->addWidget(buttonEffect); - ui->labelEffect->setBuddy(buttonEffect); - - // signals and slots connections - connect(ui->paletteCombo, SIGNAL(activated(int)), SLOT(paletteSelected(int))); - connect(ui->comboCentral, SIGNAL(activated(int)), SLOT(onCentral(int))); - connect(buttonCentral, SIGNAL(clicked()), SLOT(onChooseCentralColor())); - connect(buttonEffect, SIGNAL(clicked()), SLOT(onChooseEffectColor())); - connect(ui->comboEffect, SIGNAL(activated(int)), SLOT(onEffect(int))); - connect(ui->checkBuildEffect, SIGNAL(toggled(bool)), SLOT(onToggleBuildEffects(bool))); - connect(ui->checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); - connect(ui->checkBuildInactive, SIGNAL(toggled(bool)), SLOT(onToggleBuildInactive(bool))); - connect(ui->checkBuildDisabled, SIGNAL(toggled(bool)), SLOT(onToggleBuildDisabled(bool))); - onToggleBuildEffects(true); editPalette = QApplication::palette(); + setPreviewPalette( editPalette ); } PaletteEditorAdvanced::~PaletteEditorAdvanced() { - delete ui; } -void PaletteEditorAdvanced::onToggleBuildInactive(bool v) +void PaletteEditorAdvanced::onToggleBuildInactive( bool v ) { if (selectedPalette == 1) { - ui->groupCentral->setDisabled(v); - ui->groupEffect->setDisabled(v); + groupCentral->setDisabled(v); + groupEffect->setDisabled(v); } if (v) { - build(QPalette::Inactive); + buildInactive(); updateColorButtons(); } } -void PaletteEditorAdvanced::onToggleBuildDisabled(bool v) +void PaletteEditorAdvanced::onToggleBuildDisabled( bool v ) { if (selectedPalette == 2) { - ui->groupCentral->setDisabled(v); - ui->groupEffect->setDisabled(v); + groupCentral->setDisabled(v); + groupEffect->setDisabled(v); } if (v) { - build(QPalette::Disabled); + buildDisabled(); updateColorButtons(); } } @@ -115,204 +99,402 @@ void PaletteEditorAdvanced::paletteSelected(int p) selectedPalette = p; if(p == 1) { // inactive - ui->groupCentral->setDisabled(ui->checkBuildInactive->isChecked()); - ui->groupEffect->setDisabled(ui->checkBuildInactive->isChecked()); - } else if (p == 2) { // disabled - ui->groupCentral->setDisabled(ui->checkBuildDisabled->isChecked()); - ui->groupEffect->setDisabled(ui->checkBuildDisabled->isChecked()); - } else { - ui->groupCentral->setEnabled(true); - ui->groupEffect->setEnabled(true); + groupCentral->setDisabled(checkBuildInactive->isChecked()); + groupEffect->setDisabled(checkBuildInactive->isChecked()); + } + else if (p == 2) { // disabled + groupCentral->setDisabled(checkBuildDisabled->isChecked()); + groupEffect->setDisabled(checkBuildDisabled->isChecked()); + } + else { + groupCentral->setEnabled(true); + groupEffect->setEnabled(true); } updateColorButtons(); } void PaletteEditorAdvanced::onChooseCentralColor() { - QPalette::ColorGroup group = groupFromIndex(selectedPalette); - editPalette.setColor(group, centralFromIndex(ui->comboCentral->currentIndex()), - buttonCentral->color()); - - buildEffect(group); - if (group == QPalette::Active) { - if(ui->checkBuildInactive->isChecked()) - build(QPalette::Inactive); - if(ui->checkBuildDisabled->isChecked()) - build(QPalette::Disabled); + switch(selectedPalette) { + case 0: + default: + mapToActiveCentralRole( buttonCentral->color() ); + break; + case 1: + mapToInactiveCentralRole( buttonCentral->color() ); + break; + case 2: + mapToDisabledCentralRole( buttonCentral->color() ); + break; } - updateColorButtons(); } void PaletteEditorAdvanced::onChooseEffectColor() { - QPalette::ColorGroup group = groupFromIndex(selectedPalette); - editPalette.setColor(group, effectFromIndex(ui->comboEffect->currentIndex()), - buttonEffect->color()); - - if (group == QPalette::Active) { - if(ui->checkBuildInactive->isChecked()) - build(QPalette::Inactive); - if(ui->checkBuildDisabled->isChecked()) - build(QPalette::Disabled); + switch(selectedPalette) { + case 0: + default: + mapToActiveEffectRole( buttonEffect->color() ); + break; + case 1: + mapToInactiveEffectRole( buttonEffect->color() ); + break; + case 2: + mapToDisabledEffectRole( buttonEffect->color() ); + break; } - updateColorButtons(); } -void PaletteEditorAdvanced::onToggleBuildEffects(bool on) +void PaletteEditorAdvanced::onToggleBuildEffects( bool on ) { - if (on) { - for (int i = 0; i < QPalette::NColorGroups; i++) - buildEffect(QPalette::ColorGroup(i)); - } + if (!on) return; + buildActiveEffect(); + buildInactiveEffect(); + buildDisabledEffect(); } -QPalette::ColorGroup PaletteEditorAdvanced::groupFromIndex(int item) +QColorGroup::ColorRole PaletteEditorAdvanced::centralFromItem( int item ) { - switch (item) { - case 0: - default: - return QPalette::Active; - case 1: - return QPalette::Inactive; - case 2: - return QPalette::Disabled; + switch( item ) { + case 0: + return QColorGroup::Window; + case 1: + return QColorGroup::WindowText; + case 2: + return QColorGroup::Button; + case 3: + return QColorGroup::Base; + case 4: + return QColorGroup::Text; + case 5: + return QColorGroup::BrightText; + case 6: + return QColorGroup::ButtonText; + case 7: + return QColorGroup::Highlight; + case 8: + return QColorGroup::HighlightedText; + default: + return QColorGroup::NColorRoles; } } -QPalette::ColorRole PaletteEditorAdvanced::centralFromIndex(int item) +QColorGroup::ColorRole PaletteEditorAdvanced::effectFromItem( int item ) + { - switch (item) { + switch( item ) { case 0: - return QPalette::Window; + return QColorGroup::Light; case 1: - return QPalette::WindowText; + return QColorGroup::Midlight; case 2: - return QPalette::Base; + return QColorGroup::Mid; case 3: - return QPalette::AlternateBase; + return QColorGroup::Dark; case 4: - return QPalette::ToolTipBase; - case 5: - return QPalette::ToolTipText; - case 6: - return QPalette::Text; - case 7: - return QPalette::Button; - case 8: - return QPalette::ButtonText; - case 9: - return QPalette::BrightText; - case 10: - return QPalette::Highlight; - case 11: - return QPalette::HighlightedText; - case 12: - return QPalette::Link; - case 13: - return QPalette::LinkVisited; + return QColorGroup::Shadow; default: - return QPalette::NoRole; + return QColorGroup::NColorRoles; } } -QPalette::ColorRole PaletteEditorAdvanced::effectFromIndex(int item) +void PaletteEditorAdvanced::onCentral( int item ) { - switch (item) { + QColor c; + + switch(selectedPalette) { case 0: - return QPalette::Light; + default: + c = editPalette.active().color( centralFromItem(item) ); + break; case 1: - return QPalette::Midlight; + c = editPalette.inactive().color( centralFromItem(item) ); + break; case 2: - return QPalette::Mid; - case 3: - return QPalette::Dark; - case 4: - return QPalette::Shadow; + c = editPalette.disabled().color( centralFromItem(item) ); + break; + } + + buttonCentral->setColor(c); +} + +void PaletteEditorAdvanced::onEffect( int item ) +{ + QColor c; + switch(selectedPalette) { + case 0: default: - return QPalette::NoRole; + c = editPalette.active().color( effectFromItem(item) ); + break; + case 1: + editPalette.inactive().color( effectFromItem(item) ); + break; + case 2: + editPalette.disabled().color( effectFromItem(item) ); + break; } + buttonEffect->setColor(c); } -void PaletteEditorAdvanced::onCentral(int item) +void PaletteEditorAdvanced::mapToActiveCentralRole( const QColor& c ) { - QColor c = editPalette.color(groupFromIndex(selectedPalette), centralFromIndex(item)); - buttonCentral->setColor(c); + QColorGroup cg = editPalette.active(); + cg.setColor( centralFromItem(comboCentral->currentItem()), c ); + editPalette.setActive( cg ); + + buildActiveEffect(); + if(checkBuildInactive->isChecked()) + buildInactive(); + if(checkBuildDisabled->isChecked()) + buildDisabled(); + + setPreviewPalette( editPalette ); } -void PaletteEditorAdvanced::onEffect(int item) +void PaletteEditorAdvanced::mapToActiveEffectRole( const QColor& c ) { - QColor c = editPalette.color(groupFromIndex(selectedPalette), effectFromIndex(item)); - buttonEffect->setColor(c); + QColorGroup cg = editPalette.active(); + cg.setColor( effectFromItem(comboEffect->currentItem()), c ); + editPalette.setActive( cg ); + + if(checkBuildInactive->isChecked()) + buildInactive(); + if(checkBuildDisabled->isChecked()) + buildDisabled(); + + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::mapToActivePixmapRole( const QPixmap& pm ) +{ + QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); + QColorGroup cg = editPalette.active(); + if ( !pm.isNull() ) + cg.setBrush( role, QBrush( cg.color( role ), pm ) ); + else + cg.setBrush( role, QBrush( cg.color( role ) ) ); + editPalette.setActive( cg ); + + + buildActiveEffect(); + if(checkBuildInactive->isChecked()) + buildInactive(); + if(checkBuildDisabled->isChecked()) + buildDisabled(); + + setPreviewPalette( editPalette ); } -QPalette PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup colorGroup, - const QPalette &basePalette) +void PaletteEditorAdvanced::mapToInactiveCentralRole( const QColor& c ) { - QPalette result(basePalette); + QColorGroup cg = editPalette.inactive(); + cg.setColor( centralFromItem(comboCentral->currentItem()), c ); + editPalette.setInactive( cg ); - if (colorGroup == QPalette::Active) { - QPalette calculatedPalette(basePalette.color(colorGroup, QPalette::Button), - basePalette.color(colorGroup, QPalette::Window)); + buildInactiveEffect(); - for (int i = 0; i < 5; i++) { - QPalette::ColorRole effectRole = effectFromIndex(i); - result.setColor(colorGroup, effectRole, - calculatedPalette.color(colorGroup, effectRole)); - } - } else { - QColor btn = basePalette.color(colorGroup, QPalette::Button); + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::mapToInactiveEffectRole( const QColor& c ) +{ + QColorGroup cg = editPalette.inactive(); + cg.setColor( effectFromItem(comboEffect->currentItem()), c ); + editPalette.setInactive( cg ); + + setPreviewPalette( editPalette ); +} - result.setColor(colorGroup, QPalette::Light, btn.lighter()); - result.setColor(colorGroup, QPalette::Midlight, btn.lighter(115)); - result.setColor(colorGroup, QPalette::Mid, btn.darker(150)); - result.setColor(colorGroup, QPalette::Dark, btn.darker()); - result.setColor(colorGroup, QPalette::Shadow, Qt::black); +void PaletteEditorAdvanced::mapToInactivePixmapRole( const QPixmap& pm ) +{ + QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); + QColorGroup cg = editPalette.inactive(); + if ( !pm.isNull() ) + cg.setBrush( role, QBrush( cg.color( role ), pm ) ); + else + cg.setBrush( role, QBrush( cg.color( role ) ) ); + editPalette.setInactive( cg ); + + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::mapToDisabledCentralRole( const QColor& c ) +{ + QColorGroup cg = editPalette.disabled(); + cg.setColor( centralFromItem(comboCentral->currentItem()), c ); + editPalette.setDisabled( cg ); + + buildDisabledEffect(); + + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::mapToDisabledEffectRole( const QColor& c ) +{ + QColorGroup cg = editPalette.disabled(); + cg.setColor( effectFromItem(comboEffect->currentItem()), c ); + editPalette.setDisabled( cg ); + + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::mapToDisabledPixmapRole( const QPixmap& pm ) +{ + QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); + QColorGroup cg = editPalette.disabled(); + if ( !pm.isNull() ) + cg.setBrush( role, QBrush( cg.color( role ), pm ) ); + else + cg.setBrush( role, QBrush( cg.color( role ) ) ); + + editPalette.setDisabled( cg ); + + setPreviewPalette( editPalette ); +} + +void PaletteEditorAdvanced::buildActiveEffect() +{ + QColorGroup cg = editPalette.active(); + QColor btn = cg.color( QColorGroup::Button ); + + QPalette temp( btn, btn ); + + for (int i = 0; i<5; i++) + cg.setColor( effectFromItem(i), temp.active().color( effectFromItem(i) ) ); + + editPalette.setActive( cg ); + setPreviewPalette( editPalette ); + + updateColorButtons(); +} + +void PaletteEditorAdvanced::buildInactive() +{ + editPalette.setInactive( editPalette.active() ); + if ( checkBuildEffect->isChecked() ) + buildInactiveEffect(); + else { + setPreviewPalette( editPalette ); + updateColorButtons(); } - return result; } -void PaletteEditorAdvanced::buildEffect(QPalette::ColorGroup colorGroup) +void PaletteEditorAdvanced::buildInactiveEffect() { - editPalette = buildEffect(colorGroup, editPalette); + QColorGroup cg = editPalette.inactive(); + + QColor light, midlight, mid, dark, shadow; + QColor btn = cg.color( QColorGroup::Button ); + + light = btn.light(150); + midlight = btn.light(115); + mid = btn.dark(150); + dark = btn.dark(); + shadow = Qt::black; + + cg.setColor( QColorGroup::Light, light ); + cg.setColor( QColorGroup::Midlight, midlight ); + cg.setColor( QColorGroup::Mid, mid ); + cg.setColor( QColorGroup::Dark, dark ); + cg.setColor( QColorGroup::Shadow, shadow ); + + editPalette.setInactive( cg ); + setPreviewPalette( editPalette ); updateColorButtons(); } -void PaletteEditorAdvanced::build(QPalette::ColorGroup colorGroup) +void PaletteEditorAdvanced::buildDisabled() { - if (colorGroup != QPalette::Active) { - for (int i = 0; i < QPalette::NColorRoles; i++) - editPalette.setColor(colorGroup, QPalette::ColorRole(i), - editPalette.color(QPalette::Active, QPalette::ColorRole(i))); + QColorGroup cg = editPalette.active(); + cg.setColor( QColorGroup::ButtonText, Qt::darkGray ); + cg.setColor( QColorGroup::WindowText, Qt::darkGray ); + cg.setColor( QColorGroup::Text, Qt::darkGray ); + cg.setColor( QColorGroup::HighlightedText, Qt::darkGray ); + editPalette.setDisabled( cg ); + + if ( checkBuildEffect->isChecked() ) + buildDisabledEffect(); + else { + setPreviewPalette( editPalette ); + updateColorButtons(); + } +} + +void PaletteEditorAdvanced::buildDisabledEffect() +{ + QColorGroup cg = editPalette.disabled(); + + QColor light, midlight, mid, dark, shadow; + QColor btn = cg.color( QColorGroup::Button ); + + light = btn.light(150); + midlight = btn.light(115); + mid = btn.dark(150); + dark = btn.dark(); + shadow = Qt::black; - if (colorGroup == QPalette::Disabled) { - editPalette.setColor(colorGroup, QPalette::ButtonText, Qt::darkGray); - editPalette.setColor(colorGroup, QPalette::WindowText, Qt::darkGray); - editPalette.setColor(colorGroup, QPalette::Text, Qt::darkGray); - editPalette.setColor(colorGroup, QPalette::HighlightedText, Qt::darkGray); - } + cg.setColor( QColorGroup::Light, light ); + cg.setColor( QColorGroup::Midlight, midlight ); + cg.setColor( QColorGroup::Mid, mid ); + cg.setColor( QColorGroup::Dark, dark ); + cg.setColor( QColorGroup::Shadow, shadow ); - if (ui->checkBuildEffect->isChecked()) - buildEffect(colorGroup); - else - updateColorButtons(); + editPalette.setDisabled( cg ); + setPreviewPalette( editPalette ); + updateColorButtons(); +} + +void PaletteEditorAdvanced::setPreviewPalette( const QPalette& pal ) +{ + QColorGroup cg; + + switch (selectedPalette) { + case 0: + default: + cg = pal.active(); + break; + case 1: + cg = pal.inactive(); + break; + case 2: + cg = pal.disabled(); + break; } + previewPalette.setActive( cg ); + previewPalette.setInactive( cg ); + previewPalette.setDisabled( cg ); } void PaletteEditorAdvanced::updateColorButtons() { - QPalette::ColorGroup colorGroup = groupFromIndex(selectedPalette); - buttonCentral->setColor(editPalette.color(colorGroup, - centralFromIndex(ui->comboCentral->currentIndex()))); - buttonEffect->setColor(editPalette.color(colorGroup, - effectFromIndex(ui->comboEffect->currentIndex()))); + QColor central, effect; + switch (selectedPalette) { + case 0: + default: + central = editPalette.active().color( centralFromItem( comboCentral->currentItem() ) ); + effect = editPalette.active().color( effectFromItem( comboEffect->currentItem() ) ); + break; + case 1: + central = editPalette.inactive().color( centralFromItem( comboCentral->currentItem() ) ); + effect = editPalette.inactive().color( effectFromItem( comboEffect->currentItem() ) ); + break; + case 2: + central = editPalette.disabled().color( centralFromItem( comboCentral->currentItem() ) ); + effect = editPalette.disabled().color( effectFromItem( comboEffect->currentItem() ) ); + break; + } + + buttonCentral->setColor(central); + buttonEffect->setColor(effect); } -void PaletteEditorAdvanced::setPal(const QPalette &pal) +void PaletteEditorAdvanced::setPal( const QPalette& pal ) { editPalette = pal; + setPreviewPalette( pal ); updateColorButtons(); } @@ -321,51 +503,51 @@ QPalette PaletteEditorAdvanced::pal() const return editPalette; } -void PaletteEditorAdvanced::setupBackgroundRole(QPalette::ColorRole role) +void PaletteEditorAdvanced::setupBackgroundMode( Qt::BackgroundMode mode ) { int initRole = 0; - switch (role) { - case QPalette::Window: + switch( mode ) { + case Qt::PaletteBackground: initRole = 0; break; - case QPalette::WindowText: + case Qt::PaletteForeground: initRole = 1; break; - case QPalette::Base: + case Qt::PaletteButton: initRole = 2; break; - case QPalette::AlternateBase: + case Qt::PaletteBase: initRole = 3; break; - case QPalette::ToolTipBase: + case Qt::PaletteText: initRole = 4; break; - case QPalette::ToolTipText: + case Qt::PaletteBrightText: initRole = 5; break; - case QPalette::Text: + case Qt::PaletteButtonText: initRole = 6; break; - case QPalette::Button: + case Qt::PaletteHighlight: initRole = 7; break; - case QPalette::ButtonText: + case Qt::PaletteHighlightedText: initRole = 8; break; - case QPalette::BrightText: + case Qt::PaletteLight: initRole = 9; break; - case QPalette::Highlight: + case Qt::PaletteMidlight: initRole = 10; break; - case QPalette::HighlightedText: + case Qt::PaletteDark: initRole = 11; break; - case QPalette::Link: + case Qt::PaletteMid: initRole = 12; break; - case QPalette::LinkVisited: + case Qt::PaletteShadow: initRole = 13; break; default: @@ -373,27 +555,36 @@ void PaletteEditorAdvanced::setupBackgroundRole(QPalette::ColorRole role) break; } - if (initRole != -1) - ui->comboCentral->setCurrentIndex(initRole); + if ( initRole <= -1 ) return; + + if (initRole > 8 ) { + comboEffect->setCurrentItem( initRole - 9 ); + } + else { + comboCentral->setCurrentItem( initRole ); + } } -QPalette PaletteEditorAdvanced::getPalette(bool *ok, const QPalette &init, - QPalette::ColorRole backgroundRole, QWidget *parent) +QPalette PaletteEditorAdvanced::getPalette( bool *ok, const QPalette &init, + Qt::BackgroundMode mode, QWidget* parent, + const char* name ) { - PaletteEditorAdvanced *dlg = new PaletteEditorAdvanced(parent); - dlg->setupBackgroundRole(backgroundRole); + PaletteEditorAdvanced* dlg = new PaletteEditorAdvanced( parent, name, true ); + dlg->setupBackgroundMode( mode ); - if (init != QPalette()) - dlg->setPal(init); + if ( init != QPalette() ) + dlg->setPal( init ); int resultCode = dlg->exec(); QPalette result = init; - if (resultCode == QDialog::Accepted) + if ( resultCode == QDialog::Accepted ) { + if ( ok ) + *ok = true; result = dlg->pal(); - - if (ok) - *ok = resultCode; - + } else { + if ( ok ) + *ok = false; + } delete dlg; return result; } diff --git a/tools/qtconfig/paletteeditoradvanced.h b/tools/qtconfig/paletteeditoradvanced.h index 2bdb95d..a1eb8e7 100644 --- a/tools/qtconfig/paletteeditoradvanced.h +++ b/tools/qtconfig/paletteeditoradvanced.h @@ -42,65 +42,69 @@ #ifndef PALETTEEDITORADVANCED_H #define PALETTEEDITORADVANCED_H -#include +#include "paletteeditoradvancedbase.h" QT_BEGIN_NAMESPACE -namespace Ui { - class PaletteEditorAdvanced; -} - -class ColorButton; - -class PaletteEditorAdvanced : public QDialog +class PaletteEditorAdvanced : public PaletteEditorAdvancedBase { Q_OBJECT public: - PaletteEditorAdvanced(QWidget *parent = 0); + PaletteEditorAdvanced( QWidget * parent=0, const char * name=0, + bool modal=false, Qt::WindowFlags f=0 ); ~PaletteEditorAdvanced(); - static QPalette getPalette(bool *ok, const QPalette &pal, - QPalette::ColorRole backgroundRole = QPalette::Window, - QWidget *parent = 0); - - static QPalette buildEffect(QPalette::ColorGroup colorGroup, const QPalette &basePalette); + static QPalette getPalette( bool *ok, const QPalette &pal, Qt::BackgroundMode mode = Qt::PaletteBackground, + QWidget* parent = 0, const char* name = 0 ); protected slots: void paletteSelected(int); - void onCentral(int); - void onEffect(int); + void onCentral( int ); + void onEffect( int ); void onChooseCentralColor(); void onChooseEffectColor(); - void onToggleBuildEffects(bool); - void onToggleBuildInactive(bool); - void onToggleBuildDisabled(bool); + void onToggleBuildEffects( bool ); + void onToggleBuildInactive( bool ); + void onToggleBuildDisabled( bool ); protected: - void buildEffect(QPalette::ColorGroup); - void build(QPalette::ColorGroup); + void mapToActiveCentralRole( const QColor& ); + void mapToActiveEffectRole( const QColor& ); + void mapToActivePixmapRole( const QPixmap& ); + void mapToInactiveCentralRole( const QColor& ); + void mapToInactiveEffectRole( const QColor& ); + void mapToInactivePixmapRole( const QPixmap& ); + void mapToDisabledCentralRole( const QColor& ); + void mapToDisabledEffectRole( const QColor& ); + void mapToDisabledPixmapRole( const QPixmap& ); + + + void buildPalette(); + void buildActiveEffect(); + void buildInactive(); + void buildInactiveEffect(); + void buildDisabled(); + void buildDisabledEffect(); private: + void setPreviewPalette( const QPalette& ); void updateColorButtons(); - void setupBackgroundRole(QPalette::ColorRole); + void setupBackgroundMode( Qt::BackgroundMode ); QPalette pal() const; - void setPal(const QPalette &); + void setPal( const QPalette& ); - static QPalette::ColorGroup groupFromIndex(int); - static QPalette::ColorRole centralFromIndex(int); - static QPalette::ColorRole effectFromIndex(int); + QColorGroup::ColorRole centralFromItem( int ); + QColorGroup::ColorRole effectFromItem( int ); QPalette editPalette; - - Ui::PaletteEditorAdvanced *ui; + QPalette previewPalette; int selectedPalette; - ColorButton *buttonCentral; - ColorButton *buttonEffect; }; QT_END_NAMESPACE -#endif // PALETTEEDITORADVANCED_H +#endif diff --git a/tools/qtconfig/paletteeditoradvanced.ui b/tools/qtconfig/paletteeditoradvanced.ui deleted file mode 100644 index b1d6b95..0000000 --- a/tools/qtconfig/paletteeditoradvanced.ui +++ /dev/null @@ -1,416 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - PaletteEditorAdvanced - - - - 0 - 0 - 239 - 344 - - - - Tune Palette - - - - - - - - Select &Palette: - - - paletteCombo - - - - - - - - Active Palette - - - - - Inactive Palette - - - - - Disabled Palette - - - - - - - - - - - 0 - 0 - - - - Auto - - - - - - Build inactive palette from active - - - true - - - - - - - Build disabled palette from active - - - true - - - - - - - - - - Central color &roles - - - - - - Choose central color role - - - <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p> - - - - Window - - - - - WindowText - - - - - Base - - - - - AlternateBase - - - - - ToolTipBase - - - - - ToolTipText - - - - - Text - - - - - Button - - - - - ButtonText - - - - - BrightText - - - - - Highlight - - - - - HighlightedText - - - - - Link - - - - - LinkVisited - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - &Select Color: - - - - - - - - - - - - 3-D shadow &effects - - - - - - - - Generate shadings - - - Check to let 3D-effect colors be calculated from button-color. - - - Build &from button color - - - true - - - - - - - false - - - Choose 3D-effect color role - - - <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul> - - - - Light - - - - - Midlight - - - - - Mid - - - - - Dark - - - - - Shadow - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Select Co&lor: - - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - PaletteEditorAdvanced - accept() - - - 238 - 384 - - - 157 - 274 - - - - - buttonBox - rejected() - PaletteEditorAdvanced - reject() - - - 306 - 390 - - - 286 - 274 - - - - - checkBuildEffect - toggled(bool) - comboEffect - setDisabled(bool) - - - 82 - 262 - - - 190 - 262 - - - - - diff --git a/tools/qtconfig/paletteeditoradvancedbase.cpp b/tools/qtconfig/paletteeditoradvancedbase.cpp new file mode 100644 index 0000000..708c834 --- /dev/null +++ b/tools/qtconfig/paletteeditoradvancedbase.cpp @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "paletteeditoradvancedbase.h" +#include "colorbutton.h" + +#include + +QT_BEGIN_NAMESPACE + +/* + * Constructs a PaletteEditorAdvancedBase as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + * + * The dialog will by default be modeless, unless you set 'modal' to + * true to construct a modal dialog. + */ +PaletteEditorAdvancedBase::PaletteEditorAdvancedBase(QWidget* parent, const char* name, bool modal, Qt::WindowFlags fl) + : QDialog(parent, name, modal, fl) +{ + setupUi(this); + + + // signals and slots connections + connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept())); + connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject())); + connect(paletteCombo, SIGNAL(activated(int)), this, SLOT(paletteSelected(int))); + connect(comboCentral, SIGNAL(activated(int)), this, SLOT(onCentral(int))); + connect(buttonCentral, SIGNAL(clicked()), this, SLOT(onChooseCentralColor())); + connect(buttonEffect, SIGNAL(clicked()), this, SLOT(onChooseEffectColor())); + connect(comboEffect, SIGNAL(activated(int)), this, SLOT(onEffect(int))); + connect(checkBuildEffect, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildEffects(bool))); + connect(checkBuildEffect, SIGNAL(toggled(bool)), comboEffect, SLOT(setDisabled(bool))); + connect(checkBuildEffect, SIGNAL(toggled(bool)), buttonEffect, SLOT(setDisabled(bool))); + connect(checkBuildInactive, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildInactive(bool))); + connect(checkBuildDisabled, SIGNAL(toggled(bool)), this, SLOT(onToggleBuildDisabled(bool))); + init(); +} + +/* + * Destroys the object and frees any allocated resources + */ +PaletteEditorAdvancedBase::~PaletteEditorAdvancedBase() +{ + destroy(); + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void PaletteEditorAdvancedBase::languageChange() +{ + retranslateUi(this); +} + +void PaletteEditorAdvancedBase::init() +{ +} + +void PaletteEditorAdvancedBase::destroy() +{ +} + +void PaletteEditorAdvancedBase::onCentral(int) +{ + qWarning("PaletteEditorAdvancedBase::onCentral(int): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onChooseCentralColor() +{ + qWarning("PaletteEditorAdvancedBase::onChooseCentralColor(): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onChooseEffectColor() +{ + qWarning("PaletteEditorAdvancedBase::onChooseEffectColor(): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onEffect(int) +{ + qWarning("PaletteEditorAdvancedBase::onEffect(int): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onToggleBuildDisabled(bool) +{ + qWarning("PaletteEditorAdvancedBase::onToggleBuildDisabled(bool): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onToggleBuildEffects(bool) +{ + qWarning("PaletteEditorAdvancedBase::onToggleBuildEffects(bool): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::onToggleBuildInactive(bool) +{ + qWarning("PaletteEditorAdvancedBase::onToggleBuildInactive(bool): Not implemented yet"); +} + +void PaletteEditorAdvancedBase::paletteSelected(int) +{ + qWarning("PaletteEditorAdvancedBase::paletteSelected(int): Not implemented yet"); +} + +QT_END_NAMESPACE diff --git a/tools/qtconfig/paletteeditoradvancedbase.h b/tools/qtconfig/paletteeditoradvancedbase.h new file mode 100644 index 0000000..ee14a26 --- /dev/null +++ b/tools/qtconfig/paletteeditoradvancedbase.h @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PALETTEEDITORADVANCEDBASE_H +#define PALETTEEDITORADVANCEDBASE_H + +#include "ui_paletteeditoradvancedbase.h" +#include + +QT_BEGIN_NAMESPACE + +class ColorButton; + +class PaletteEditorAdvancedBase : public QDialog, public Ui::PaletteEditorAdvancedBase +{ + Q_OBJECT + +public: + PaletteEditorAdvancedBase(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WindowFlags fl = 0); + ~PaletteEditorAdvancedBase(); + +protected slots: + virtual void languageChange(); + + virtual void init(); + virtual void destroy(); + virtual void onCentral(int); + virtual void onChooseCentralColor(); + virtual void onChooseEffectColor(); + virtual void onEffect(int); + virtual void onToggleBuildDisabled(bool); + virtual void onToggleBuildEffects(bool); + virtual void onToggleBuildInactive(bool); + virtual void paletteSelected(int); + +}; + +QT_END_NAMESPACE + +#endif // PALETTEEDITORADVANCEDBASE_H diff --git a/tools/qtconfig/paletteeditoradvancedbase.ui b/tools/qtconfig/paletteeditoradvancedbase.ui new file mode 100644 index 0000000..12c5a7d --- /dev/null +++ b/tools/qtconfig/paletteeditoradvancedbase.ui @@ -0,0 +1,617 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + + PaletteEditorAdvancedBase + + + PaletteEditorAdvancedBase + + + true + + + + 0 + 0 + 295 + 346 + + + + Tune Palette + + + true + + + <b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p> + + + + unnamed + + + 11 + + + 6 + + + + + unnamed + + + 0 + + + 6 + + + + + TextLabel1 + + + Select &Palette: + + + paletteCombo + + + + + + + paletteCombo + + + + Active Palette + + + + + Inactive Palette + + + + + Disabled Palette + + + + + + + + + + ButtonGroup1 + + + + 5 + 4 + 0 + 0 + + + + Auto + + + + unnamed + + + 11 + + + 6 + + + + + checkBuildInactive + + + Build inactive palette from active + + + true + + + + + + + checkBuildDisabled + + + Build disabled palette from active + + + true + + + + + + + + + + groupCentral + + + Central color &roles + + + + unnamed + + + 11 + + + 6 + + + + + comboCentral + + + Choose central color role + + + <b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p> + + + + Window + + + + + WindowText + + + + + Button + + + + + Base + + + + + Text + + + + + BrightText + + + + + ButtonText + + + + + Highlight + + + + + HighlightedText + + + + + + + + unnamed + + + 0 + + + 6 + + + + + + 20 + 20 + + + + Expanding + + + Horizontal + + + + + + + labelCentral + + + + 1 + 1 + 0 + 0 + + + + + 0 + 0 + + + + &Select Color: + + + buttonCentral + + + + + + + buttonCentral + + + + 0 + 0 + 0 + 0 + + + + Qt::TabFocus + + + Choose a color + + + Choose a color for the selected central color role. + + + + + + + + + + + + groupEffect + + + 3-D shadow &effects + + + + unnamed + + + 11 + + + 6 + + + + + unnamed + + + 0 + + + 6 + + + + + checkBuildEffect + + + Build &from button color + + + true + + + Generate shadings + + + Check to let 3D-effect colors be calculated from button-color. + + + + + + + comboEffect + + + Choose 3D-effect color role + + + <b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul> + + + + Light + + + + + Midlight + + + + + Mid + + + + + Dark + + + + + Shadow + + + + + + + + + + unnamed + + + 0 + + + 6 + + + + + + 20 + 20 + + + + Expanding + + + Horizontal + + + + + + + labelEffect + + + + 1 + 1 + 0 + 0 + + + + + 0 + 0 + + + + Select Co&lor: + + + buttonEffect + + + + + + + buttonEffect + + + + 0 + 0 + 0 + 0 + + + + Qt::TabFocus + + + Choose a color + + + Choose a color for the selected effect color role. + + + + + + + + + + + + unnamed + + + 0 + + + 6 + + + + + + 20 + 20 + + + + Expanding + + + Horizontal + + + + + + + buttonOk + + + OK + + + true + + + true + + + Close dialog and apply all changes. + + + + + + + buttonCancel + + + Cancel + + + true + + + Close dialog and discard all changes. + + + + + + + + + + + ColorButton + +
colorbutton.h
+ + 40 + 25 + + 0 + + 5 + 5 + + image0 + + color + pixmap + +
+
+ + buttonOk + buttonCancel + paletteCombo + checkBuildInactive + checkBuildDisabled + comboCentral + buttonCentral + checkBuildEffect + comboEffect + buttonEffect + + + + 789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758 + + +
diff --git a/tools/qtconfig/previewframe.cpp b/tools/qtconfig/previewframe.cpp index f37ac78..3b46e8d 100644 --- a/tools/qtconfig/previewframe.cpp +++ b/tools/qtconfig/previewframe.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include "previewframe.h" -#include "previewwidget.h" #include #include @@ -48,8 +47,8 @@ QT_BEGIN_NAMESPACE -PreviewFrame::PreviewFrame(QWidget *parent) - : QFrame(parent) +PreviewFrame::PreviewFrame( QWidget *parent, const char *name ) + : QFrame( parent, name ) { setMinimumSize(200, 200); setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); @@ -83,22 +82,23 @@ void PreviewFrame::setPreviewVisible(bool visible) workspace->viewport()->update(); } -Workspace::Workspace(PreviewFrame *parent) +Workspace::Workspace(PreviewFrame* parent, const char* name) : QMdiArea(parent) { previewFrame = parent; PreviewWidget *previewWidget = previewFrame->widget(); + setObjectName(QLatin1String(name)); QMdiSubWindow *frame = addSubWindow(previewWidget, Qt::Window); - frame->move(10, 10); + frame->move(10,10); frame->show(); } -void Workspace::paintEvent(QPaintEvent *) +void Workspace::paintEvent( QPaintEvent* ) { - QPainter p(viewport()); + QPainter p (viewport()); p.fillRect(rect(), palette().color(backgroundRole()).dark()); - p.setPen(QPen(Qt::white)); - p.drawText(0, height() / 2, width(), height(), Qt::AlignHCenter, previewFrame->previewText()); + p.setPen( QPen( Qt::white ) ); + p.drawText ( 0, height() / 2, width(), height(), Qt::AlignHCenter, previewFrame->previewText()); } QT_END_NAMESPACE diff --git a/tools/qtconfig/previewframe.h b/tools/qtconfig/previewframe.h index 41c5030..de364e4 100644 --- a/tools/qtconfig/previewframe.h +++ b/tools/qtconfig/previewframe.h @@ -42,6 +42,8 @@ #ifndef PREVIEWFRAME_H #define PREVIEWFRAME_H +#include "previewwidget.h" + #include QT_BEGIN_NAMESPACE @@ -52,29 +54,28 @@ class Workspace : public QMdiArea Q_OBJECT public: - Workspace(PreviewFrame *parent = 0); + Workspace( PreviewFrame* parent = 0, const char* name = 0 ); ~Workspace() {} protected: - void paintEvent(QPaintEvent *); + void paintEvent( QPaintEvent* ); private: PreviewFrame *previewFrame; }; -class PreviewWidget; class PreviewFrame : public QFrame { Q_OBJECT public: - PreviewFrame(QWidget *parent = 0); + PreviewFrame( QWidget *parent = 0, const char *name = 0 ); void setPreviewPalette(QPalette); void setPreviewVisible(bool val); QString previewText() const; PreviewWidget *widget() const { return previewWidget; } private: - Workspace *workspace; - PreviewWidget *previewWidget; + Workspace *workspace; + PreviewWidget *previewWidget; QString m_previewWindowText; }; diff --git a/tools/qtconfig/previewwidget.cpp b/tools/qtconfig/previewwidget.cpp index 0573846..757b448 100644 --- a/tools/qtconfig/previewwidget.cpp +++ b/tools/qtconfig/previewwidget.cpp @@ -40,32 +40,32 @@ ****************************************************************************/ #include "previewwidget.h" -#include "ui_previewwidget.h" #include QT_BEGIN_NAMESPACE -PreviewWidget::PreviewWidget(QWidget *parent) - : QWidget(parent), ui(new Ui::PreviewWidget) +PreviewWidget::PreviewWidget( QWidget *parent, const char *name ) + : PreviewWidgetBase( parent, name ) { - ui->setupUi(this); - // install event filter on child widgets - QList l = findChildren(); - foreach(QWidget *w, l) { - w->installEventFilter(this); - w->setFocusPolicy(Qt::NoFocus); + QObjectList l = queryList("QWidget"); + for (int i = 0; i < l.size(); ++i) { + QObject * obj = l.at(i); + obj->installEventFilter(this); + ((QWidget*)obj)->setFocusPolicy(Qt::NoFocus); } } -PreviewWidget::~PreviewWidget() + +void PreviewWidget::closeEvent(QCloseEvent *e) { - delete ui; + e->ignore(); } + bool PreviewWidget::eventFilter(QObject *, QEvent *e) { - switch (e->type()) { + switch ( e->type() ) { case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: @@ -81,9 +81,4 @@ bool PreviewWidget::eventFilter(QObject *, QEvent *e) return false; } -void PreviewWidget::closeEvent(QCloseEvent *e) -{ - e->ignore(); -} - QT_END_NAMESPACE diff --git a/tools/qtconfig/previewwidget.h b/tools/qtconfig/previewwidget.h index e7707cd..37e9cba 100644 --- a/tools/qtconfig/previewwidget.h +++ b/tools/qtconfig/previewwidget.h @@ -42,29 +42,21 @@ #ifndef PREVIEWWIDGET_H #define PREVIEWWIDGET_H -#include +#include "previewwidgetbase.h" QT_BEGIN_NAMESPACE -namespace Ui { - class PreviewWidget; -} - - -class PreviewWidget : public QWidget +class PreviewWidget : public PreviewWidgetBase { Q_OBJECT public: - PreviewWidget(QWidget *parent = 0); - ~PreviewWidget(); + PreviewWidget( QWidget *parent = 0, const char *name = 0 ); - bool eventFilter(QObject *, QEvent *); -private: void closeEvent(QCloseEvent *); - Ui::PreviewWidget *ui; + bool eventFilter(QObject *, QEvent *); }; QT_END_NAMESPACE -#endif // PREVIEWWIDGET_H +#endif diff --git a/tools/qtconfig/previewwidget.ui b/tools/qtconfig/previewwidget.ui deleted file mode 100644 index 2e0789f..0000000 --- a/tools/qtconfig/previewwidget.ui +++ /dev/null @@ -1,252 +0,0 @@ - - - ********************************************************************* -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -********************************************************************* - PreviewWidget - - - - 0 - 0 - 398 - 282 - - - - - 0 - 0 - - - - Preview Window - - - - - - - - 6 - - - 0 - - - - - GroupBox - - - - 6 - - - 11 - - - - - RadioButton1 - - - true - - - - - - - RadioButton2 - - - - - - - RadioButton3 - - - - - - - - - - GroupBox2 - - - - 6 - - - 11 - - - - - CheckBox1 - - - true - - - - - - - CheckBox2 - - - - - - - - - - 50 - - - - - - - - - 6 - - - 0 - - - - - LineEdit - - - - - - - - ComboBox - - - - - - - - 6 - - - 0 - - - - - - - - PushButton - - - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - - 32767 - 55 - - - - true - - - <p><a href="http://qt.nokia.com">http://qt.nokia.com</a></p> -<p><a href="http://www.kde.org">http://www.kde.org</a></p> - - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 0 - - - - - - - - - diff --git a/tools/qtconfig/previewwidgetbase.cpp b/tools/qtconfig/previewwidgetbase.cpp new file mode 100644 index 0000000..9234b6f --- /dev/null +++ b/tools/qtconfig/previewwidgetbase.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "previewwidgetbase.h" + +#include + +QT_BEGIN_NAMESPACE + +/* + * Constructs a PreviewWidgetBase as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +PreviewWidgetBase::PreviewWidgetBase(QWidget* parent, const char* name, Qt::WindowFlags fl) + : QWidget(parent, name, fl) +{ + setupUi(this); + + + // signals and slots connections + init(); +} + +/* + * Destroys the object and frees any allocated resources + */ +PreviewWidgetBase::~PreviewWidgetBase() +{ + destroy(); + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void PreviewWidgetBase::languageChange() +{ + retranslateUi(this); +} + +void PreviewWidgetBase::init() +{ +} + +void PreviewWidgetBase::destroy() +{ +} + +QT_END_NAMESPACE diff --git a/tools/qtconfig/previewwidgetbase.h b/tools/qtconfig/previewwidgetbase.h new file mode 100644 index 0000000..829415e --- /dev/null +++ b/tools/qtconfig/previewwidgetbase.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PREVIEWWIDGETBASE_H +#define PREVIEWWIDGETBASE_H + +#include "ui_previewwidgetbase.h" +#include + +QT_BEGIN_NAMESPACE + +class PreviewWidgetBase : public QWidget, public Ui::PreviewWidgetBase +{ + Q_OBJECT + +public: + PreviewWidgetBase(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = 0); + ~PreviewWidgetBase(); + +protected slots: + virtual void languageChange(); + + virtual void init(); + virtual void destroy(); + +}; + +QT_END_NAMESPACE + +#endif // PREVIEWWIDGETBASE_H diff --git a/tools/qtconfig/previewwidgetbase.ui b/tools/qtconfig/previewwidgetbase.ui new file mode 100644 index 0000000..701bf84 --- /dev/null +++ b/tools/qtconfig/previewwidgetbase.ui @@ -0,0 +1,340 @@ + + + ********************************************************************* +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (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 Technology Preview License Agreement accompanying +** this package. +** +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +********************************************************************* + + PreviewWidgetBase + + + PreviewWidgetBase + + + + 0 + 0 + 378 + 236 + + + + + 1 + 1 + 0 + 0 + + + + Preview Window + + + + unnamed + + + 11 + + + 6 + + + + + unnamed + + + 0 + + + 6 + + + + + unnamed + + + 0 + + + 6 + + + + + ButtonGroup1 + + + ButtonGroup + + + + unnamed + + + 11 + + + 6 + + + + + RadioButton1 + + + RadioButton1 + + + true + + + + + + + RadioButton2 + + + RadioButton2 + + + + + + + RadioButton3 + + + RadioButton3 + + + + + + + + + + ButtonGroup2 + + + ButtonGroup2 + + + + unnamed + + + 11 + + + 6 + + + + + CheckBox1 + + + CheckBox1 + + + true + + + + + + + CheckBox2 + + + CheckBox2 + + + + + + + + + + ProgressBar1 + + + 50 + + + + + + + + + unnamed + + + 0 + + + 6 + + + + + LineEdit1 + + + LineEdit + + + + + + + ComboBox1 + + + + ComboBox + + + + + + + + unnamed + + + 0 + + + 6 + + + + + SpinBox1 + + + + + + + PushButton1 + + + PushButton + + + + + + + + + ScrollBar1 + + + Qt::Horizontal + + + + + + + Slider1 + + + Qt::Horizontal + + + + + + + textView + + + + 32767 + 50 + + + + true + + + <p> +<a href="http://qt.nokia.com">http://qt.nokia.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p> + + + + + + + + + + + + 20 + 20 + + + + Expanding + + + Vertical + + + + + + qPixmapFromMimeSource + diff --git a/tools/qtconfig/qtconfig.pro b/tools/qtconfig/qtconfig.pro index cb06e5a..d1fd320 100644 --- a/tools/qtconfig/qtconfig.pro +++ b/tools/qtconfig/qtconfig.pro @@ -1,10 +1,11 @@ TEMPLATE = app -CONFIG += qt warn_on x11 +CONFIG += qt warn_on x11 build_all:!build_pass { CONFIG -= build_all CONFIG += release } LANGUAGE = C++ +QT += qt3support contains(QT_CONFIG, gstreamer):LIBS += $$QT_LIBS_GSTREAMER -lgstinterfaces-0.10 -lgstvideo-0.10 -lgstbase-0.10 contains(QT_CONFIG, gstreamer):QMAKE_CXXFLAGS += $$QT_CFLAGS_GSTREAMER @@ -12,17 +13,19 @@ contains(QT_CONFIG, phonon) { QT += phonon DEFINES += HAVE_PHONON } -SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp -HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h +SOURCES += colorbutton.cpp main.cpp previewframe.cpp previewwidget.cpp mainwindow.cpp paletteeditoradvanced.cpp \ + mainwindowbase.cpp paletteeditoradvancedbase.cpp previewwidgetbase.cpp +HEADERS += colorbutton.h previewframe.h previewwidget.h mainwindow.h paletteeditoradvanced.h \ + mainwindowbase.h paletteeditoradvancedbase.h previewwidgetbase.h -FORMS = mainwindow.ui paletteeditoradvanced.ui previewwidget.ui +FORMS = mainwindowbase.ui paletteeditoradvancedbase.ui previewwidgetbase.ui RESOURCES = qtconfig.qrc PROJECTNAME = Qt Configuration -TARGET = qtconfig -DESTDIR = ../../bin +TARGET = qtconfig +DESTDIR = ../../bin target.path=$$[QT_INSTALL_BINS] INSTALLS += target -INCLUDEPATH += . -DBFILE = qtconfig.db +INCLUDEPATH += . +DBFILE = qtconfig.db diff --git a/tools/tools.pro b/tools/tools.pro index c64fe25..8f23fe4 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -20,7 +20,7 @@ TEMPLATE = subdirs SUBDIRS += designer } } - unix:!mac:!embedded:SUBDIRS += qtconfig + unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig win32:!wince*:SUBDIRS += activeqt } contains(QT_CONFIG, declarative):SUBDIRS += qml -- cgit v0.12 From a3c755e358596238dc7fc1c284328a6226c2ed3a Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Thu, 7 Oct 2010 12:41:03 +0300 Subject: Removed the need for S60main.rsc resource file in Symbian. Qt upgrade was failing since the s60main.rsc is being locked by S60 application framework. And when installer detects that old version of Qt has already been installed it first tries to uninstall the old one and then install the new one. The uninstallion failed since the file was locked by the running Qt application. It should be noted that this patch fixes the Qt upgradibility only for Qt versions where patch is included. I.e. the versions before 4.7.2 need a different mechanism to be upgradable. This different mechanism is based on partial upgrade SIS packages as described in QT-4052. Task-number: QT-3471 Reviewed-by: Axis --- src/gui/kernel/qt_s60_p.h | 9 ++++++++- src/gui/kernel/qwidget_s60.cpp | 25 ++++++++++++++++++++++--- src/gui/s60framework/qs60mainapplication.cpp | 5 ----- src/gui/s60framework/qs60mainappui.cpp | 28 ++++++++++++++-------------- src/gui/s60framework/s60framework.pri | 18 ------------------ src/s60installs/s60installs.pro | 17 ++++------------- src/s60main/s60main.rsg | 3 --- 7 files changed, 48 insertions(+), 57 deletions(-) delete mode 100644 src/s60main/s60main.rsg diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index 7fd2baa..93f64f6 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -142,6 +142,7 @@ public: int avkonComponentsSupportTransparency : 1; int menuBeingConstructed : 1; QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type + static CEikButtonGroupContainer *cba; enum ScanCodeState { Unpressed, @@ -162,6 +163,7 @@ public: static inline CAknTitlePane* titlePane(); static inline CAknContextPane* contextPane(); static inline CEikButtonGroupContainer* buttonGroupContainer(); + static inline void setButtonGroupContainer(CEikButtonGroupContainer* newCba); static void setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible); #endif static void controlVisibilityChanged(CCoeControl *control, bool visible); @@ -383,7 +385,12 @@ inline CAknContextPane* QS60Data::contextPane() inline CEikButtonGroupContainer* QS60Data::buttonGroupContainer() { - return CEikonEnv::Static()->AppUiFactory()->Cba(); + return QS60Data::cba; +} + +inline void QS60Data::setButtonGroupContainer(CEikButtonGroupContainer *newCba) +{ + QS60Data::cba = newCba; } #endif // Q_WS_S60 diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 4109ed8..49d2ffc 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -69,6 +69,7 @@ extern bool qt_nograb(); QWidget *QWidgetPrivate::mouseGrabber = 0; QWidget *QWidgetPrivate::keyboardGrabber = 0; +CEikButtonGroupContainer *QS60Data::cba = 0; static bool isEqual(const QList& a, const QList& b) { @@ -494,9 +495,27 @@ void QWidgetPrivate::show_sys() // Create the status pane and CBA here CEikAppUi *ui = static_cast(S60->appUi()); MEikAppUiFactory *factory = CEikonEnv::Static()->AppUiFactory(); - TRAP_IGNORE(factory->ReadAppInfoResourceL(0, ui)); - if (S60->buttonGroupContainer()) - S60->buttonGroupContainer()->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS); + + QT_TRAP_THROWING( + factory->CreateResourceIndependentFurnitureL(ui); + + TRect boundingRect = static_cast(S60->appUi())->ClientRect(); + + CEikButtonGroupContainer *cba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, + CEikButtonGroupContainer::EHorizontal,ui,R_AVKON_SOFTKEYS_EMPTY_WITH_IDS); + + CEikButtonGroupContainer *oldCba = CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(cba); + Q_ASSERT(!oldCba); + S60->setButtonGroupContainer(cba); + + CEikMenuBar *menuBar = new(ELeave) CEikMenuBar; + menuBar->ConstructL(ui, 0, R_AVKON_MENUPANE_EMPTY); + menuBar->SetMenuType(CEikMenuBar::EMenuOptions); + S60->appUi()->AddToStackL(menuBar,ECoeStackPriorityMenu,ECoeStackFlagRefusesFocus); + + CEikMenuBar *oldMenu = CEikonEnv::Static()->AppUiFactory()->SwapMenuBar(menuBar); + Q_ASSERT(!oldMenu); + ) if (S60->statusPane()) { // Use QDesktopWidget as the status pane observer to proxy for the AppUi. diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp index 5d4c54e..74432af 100644 --- a/src/gui/s60framework/qs60mainapplication.cpp +++ b/src/gui/s60framework/qs60mainapplication.cpp @@ -58,7 +58,6 @@ CApaApplication *newS60Application() return new QS60MainApplication; } -_LIT(KQtWrapperResourceFile, "\\resource\\apps\\s60main" QT_LIBINFIX_UNICODE L".rsc"); /*! \class QS60MainApplication @@ -129,10 +128,6 @@ TUid QS60MainApplication::AppDllUid() const */ TFileName QS60MainApplication::ResourceFileName() const { - TFindFile finder(iCoeEnv->FsSession()); - TInt err = finder.FindByDir(KQtWrapperResourceFile, KNullDesC); - if (err == KErrNone) - return finder.File(); return KNullDesC(); } diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp index ea9dbb3..92b3b55 100644 --- a/src/gui/s60framework/qs60mainappui.cpp +++ b/src/gui/s60framework/qs60mainappui.cpp @@ -50,16 +50,6 @@ #endif #include #include -#ifdef Q_WS_S60 -# if defined(QT_LIBINFIX_UNQUOTED) -// Two level macro needed for proper expansion of libinfix -# define QT_S60MAIN_RSG_2(x) -# define QT_S60MAIN_RSG(x) QT_S60MAIN_RSG_2(x) -# include QT_S60MAIN_RSG(QT_LIBINFIX_UNQUOTED) -# else -# include -# endif -#endif #include "qs60mainappui.h" #include @@ -125,8 +115,8 @@ void QS60MainAppUi::ConstructL() #ifdef Q_WS_S60 flags |= CAknAppUi::EAknEnableSkin; // After 5th Edition S60, native side supports animated wallpapers. - // However, there is no support for that feature on Qt side, so indicate to - // native UI framework that this application will not support background animations. + // However, there is no support for that feature on Qt side, so indicate to + // native UI framework that this application will not support background animations. if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0) flags |= KAknDisableAnimationBackground; #endif @@ -244,7 +234,7 @@ void QS60MainAppUi::DynInitMenuBarL(TInt /* resourceId */, CEikMenuBar * /* menu void QS60MainAppUi::DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane) { #ifdef Q_WS_S60 - if (resourceId == R_QT_WRAPPERAPP_MENU) { + if (resourceId == R_AVKON_MENUPANE_EMPTY) { if (menuPane->NumberOfItemsInPane() <= 1) QT_TRYCATCH_LEAVING(qt_symbian_show_toplevel(menuPane)); @@ -274,7 +264,17 @@ void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenu DynInitMenuPaneL(resourceId, (CEikMenuPane*)menuWindow); else DynInitMenuBarL(resourceId, (CEikMenuBar*)menuWindow); - } else + } else if(resourceId == R_AVKON_MENUPANE_EMPTY) { + CEikMenuBarTitle *title = new(ELeave) CEikMenuBarTitle; + CleanupStack::PushL(title); + + title->iData.iMenuPaneResourceId = R_AVKON_MENUPANE_EMPTY; + title->iTitleFlags = 0; + + S60->menuBar()->TitleArray()->AddTitleL(title); + CleanupStack::Pop( title ); + } + else #endif { QS60MainAppUiBase::RestoreMenuL(menuWindow, resourceId, menuType); diff --git a/src/gui/s60framework/s60framework.pri b/src/gui/s60framework/s60framework.pri index edbacc0..19525b7 100644 --- a/src/gui/s60framework/s60framework.pri +++ b/src/gui/s60framework/s60framework.pri @@ -1,21 +1,3 @@ -contains(QT_CONFIG, s60) { -# This block serves the minimalistic resource file for S60 3.1 platforms. -# Note there is no way to ifdef S60 version in mmp file, that is why the resource -# file is always compiled for WINSCW - - minimalAppResource31 = \ - "SOURCEPATH s60framework" \ - "START RESOURCE s60main.rss" \ - "TARGET s60main$${QT_LIBINFIX}" \ - "HEADER" \ - "TARGETPATH /resource/apps" \ - "END" - - MMP_RULES += minimalAppResource31 - - SYMBIAN_RESOURCES += s60framework/s60main.rss -} - SOURCES += s60framework/qs60mainapplication.cpp \ s60framework/qs60mainappui.cpp \ s60framework/qs60maindocument.cpp diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 1f622c0..c73ed06 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -11,10 +11,10 @@ symbian: { isEmpty(QT_LIBINFIX) { TARGET.UID3 = 0x2001E61C - + # Sqlite3 is expected to be already found on phone if infixed configuration is built. # It is also expected that devices newer than those based on S60 5.0 all have sqlite3.dll. - contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { BLD_INF_RULES.prj_exports += \ "sqlite3.sis /epoc32/data/qt/sis/sqlite3.sis" \ "sqlite3_selfsigned.sis /epoc32/data/qt/sis/sqlite3_selfsigned.sis" @@ -35,15 +35,6 @@ symbian: { } VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} - symbian-abld|symbian-sbsv2 { - qtresources.sources = $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/s60main$${QT_LIBINFIX}.rsc - } else { - qtresources.sources = $$QMAKE_LIBDIR_QT/s60main$${QT_LIBINFIX}.rsc - DESTDIR = $$QMAKE_LIBDIR_QT - } - qtresources.path = c:$$APP_RESOURCE_DIR - DEPLOYMENT += qtresources - qtlibraries.sources = \ $$QMAKE_LIBDIR_QT/QtCore$${QT_LIBINFIX}.dll \ $$QMAKE_LIBDIR_QT/QtXml$${QT_LIBINFIX}.dll \ @@ -109,9 +100,9 @@ symbian: { qtlibraries.pkg_prerules = vendorinfo qtlibraries.pkg_prerules += "; Dependencies of Qt libraries" - + # It is expected that Symbian^3 and newer phones will have sufficiently new OpenC already installed - contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { + contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) { qtlibraries.pkg_prerules += "(0x20013851), 1, 5, 1, {\"PIPS Installer\"}" contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { qtlibraries.pkg_prerules += "(0x200110CB), 1, 5, 1, {\"Open C LIBSSL Common\"}" diff --git a/src/s60main/s60main.rsg b/src/s60main/s60main.rsg deleted file mode 100644 index 8cdf3ba..0000000 --- a/src/s60main/s60main.rsg +++ /dev/null @@ -1,3 +0,0 @@ -#define R_DEFAULT_DOCUMENT_NAME 0x55567002 -#define R_QT_WRAPPERAPP_MENUBAR 0x55567004 -#define R_QT_WRAPPERAPP_MENU 0x55567005 -- cgit v0.12 From 7f875312dcc09a4b2dcc5030e813e921b1dc7ee4 Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Thu, 7 Oct 2010 15:52:27 +0200 Subject: Fix crash when using Q_GLOBAL_STATIC(QWidget...) If Q_GLOBAL_STATIC is used with a QWidget (or subclass) then the destructor of QWidget will be executed after the destructor of QApplication. Since ~QApplication() destroys the S60 environment and the trap handler, we need to be sure that if QApplication is destroyed, we do not attempt to use anything from the S60 environment. This includes RWsSession and the trap handler. The fix is to avoid flushing the WSERV buffer if QApplication has been deleted already. Reviewed-by: axis --- src/gui/kernel/qwidget_s60.cpp | 3 ++- tests/auto/qapplication/tst_qapplication.cpp | 40 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 49d2ffc..9a451ce 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -1252,7 +1252,8 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows) // At this point the backing store should already be destroyed // so we flush the command buffer to ensure that the freeing of // those resources and deleting the window can happen "atomically" - S60->wsSession().Flush(); + if (qApp) + S60->wsSession().Flush(); } } diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp index 91ae921..a198d7f 100644 --- a/tests/auto/qapplication/tst_qapplication.cpp +++ b/tests/auto/qapplication/tst_qapplication.cpp @@ -147,6 +147,10 @@ private slots: void symbianNeedForTraps(); void symbianLeaveThroughMain(); void qtbug_12673(); + + + + void globalStaticObjectDestruction(); // run this last }; class EventSpy : public QObject @@ -2257,6 +2261,42 @@ void tst_QApplication::qtbug_12673() #endif // Q_OS_SYMBIAN } +/* + This test is meant to ensure that certain objects (public & commonly used) + can safely be used in a Q_GLOBAL_STATIC such that their destructors are + executed *after* the destruction of QApplication. + */ +Q_GLOBAL_STATIC(QLocale, tst_qapp_locale); +Q_GLOBAL_STATIC(QProcess, tst_qapp_process); +Q_GLOBAL_STATIC(QFileSystemWatcher, tst_qapp_fileSystemWatcher); +Q_GLOBAL_STATIC(QSharedMemory, tst_qapp_sharedMemory); +Q_GLOBAL_STATIC(QElapsedTimer, tst_qapp_elapsedTimer); +Q_GLOBAL_STATIC(QMutex, tst_qapp_mutex); +Q_GLOBAL_STATIC(QWidget, tst_qapp_widget); +Q_GLOBAL_STATIC(QPixmap, tst_qapp_pixmap); +Q_GLOBAL_STATIC(QFont, tst_qapp_font); +Q_GLOBAL_STATIC(QRegion, tst_qapp_region); +Q_GLOBAL_STATIC(QFontDatabase, tst_qapp_fontDatabase); +Q_GLOBAL_STATIC(QCursor, tst_qapp_cursor); + +void tst_QApplication::globalStaticObjectDestruction() +{ + int argc = 1; + QApplication app(argc, &argv0, QApplication::GuiServer); + QVERIFY(tst_qapp_locale()); + QVERIFY(tst_qapp_process()); + QVERIFY(tst_qapp_fileSystemWatcher()); + QVERIFY(tst_qapp_sharedMemory()); + QVERIFY(tst_qapp_elapsedTimer()); + QVERIFY(tst_qapp_mutex()); + QVERIFY(tst_qapp_widget()); + QVERIFY(tst_qapp_pixmap()); + QVERIFY(tst_qapp_font()); + QVERIFY(tst_qapp_region()); + QVERIFY(tst_qapp_fontDatabase()); + QVERIFY(tst_qapp_cursor()); +} + //QTEST_APPLESS_MAIN(tst_QApplication) int main(int argc, char *argv[]) { -- cgit v0.12 From e7db6cd0bddb7203c5460e97e2b8164bbaf420b8 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 7 Oct 2010 18:51:49 +0200 Subject: Live texture updates to meegographicssystem plugin. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 848 Reviewed-by: Samuel Rødal --- src/gui/image/qpixmap_x11_p.h | 1 + .../graphicssystems/meego/qmeegoextensions.cpp | 32 ++++ .../graphicssystems/meego/qmeegoextensions.h | 15 ++ .../graphicssystems/meego/qmeegographicssystem.cpp | 203 +++++++++++++++++++++ .../graphicssystems/meego/qmeegographicssystem.h | 21 +++ .../graphicssystems/meego/qmeegopixmapdata.cpp | 30 +++ .../graphicssystems/meego/qmeegopixmapdata.h | 1 + 7 files changed, 303 insertions(+) diff --git a/src/gui/image/qpixmap_x11_p.h b/src/gui/image/qpixmap_x11_p.h index 821fb69..f171281 100644 --- a/src/gui/image/qpixmap_x11_p.h +++ b/src/gui/image/qpixmap_x11_p.h @@ -115,6 +115,7 @@ private: friend class QEglContext; // Needs gl_surface friend class QGLContext; // Needs gl_surface friend class QX11GLPixmapData; // Needs gl_surface + friend class QMeeGoGraphicsSystem; // Needs gl_surface and flags friend bool qt_createEGLSurfaceForPixmap(QPixmapData*, bool); // Needs gl_surface void release(); diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp index e7f6439..611c962 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp @@ -46,6 +46,7 @@ bool QMeeGoExtensions::initialized = false; bool QMeeGoExtensions::hasImageShared = false; bool QMeeGoExtensions::hasSurfaceScaling = false; +bool QMeeGoExtensions::hasLockSurface = false; /* Extension funcs */ @@ -53,11 +54,15 @@ typedef EGLBoolean (EGLAPIENTRY *eglQueryImageNOKFunc)(EGLDisplay, EGLImageKHR, typedef EGLNativeSharedImageTypeNOK (EGLAPIENTRY *eglCreateSharedImageNOKFunc)(EGLDisplay, EGLImageKHR, EGLint*); typedef EGLBoolean (EGLAPIENTRY *eglDestroySharedImageNOKFunc)(EGLDisplay, EGLNativeSharedImageTypeNOK); typedef EGLBoolean (EGLAPIENTRY *eglSetSurfaceScalingNOKFunc)(EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint); +typedef EGLBoolean (EGLAPIENTRY *eglLockSurfaceKHRFunc)(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRY *eglUnlockSurfaceKHRFunc)(EGLDisplay display, EGLSurface surface); static eglQueryImageNOKFunc _eglQueryImageNOK = 0; static eglCreateSharedImageNOKFunc _eglCreateSharedImageNOK = 0; static eglDestroySharedImageNOKFunc _eglDestroySharedImageNOK = 0; static eglSetSurfaceScalingNOKFunc _eglSetSurfaceScalingNOK = 0; +static eglLockSurfaceKHRFunc _eglLockSurfaceKHR = 0; +static eglUnlockSurfaceKHRFunc _eglUnlockSurfaceKHR = 0; /* Public */ @@ -101,6 +106,22 @@ bool QMeeGoExtensions::eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surfac return _eglSetSurfaceScalingNOK(dpy, surface, x, y, width, height); } +bool QMeeGoExtensions::eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list) +{ + if (! hasLockSurface) + qFatal("EGL_KHR_lock_surface2 not found but trying to use capability!"); + + return _eglLockSurfaceKHR(display, surface, attrib_list); +} + +bool QMeeGoExtensions::eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface) +{ + if (! hasLockSurface) + qFatal("EGL_KHR_lock_surface2 not found but trying to use capability!"); + + return _eglUnlockSurfaceKHR(display, surface); +} + /* Private */ void QMeeGoExtensions::initialize() @@ -113,6 +134,8 @@ void QMeeGoExtensions::initialize() _eglQueryImageNOK = (eglQueryImageNOKFunc) eglGetProcAddress("eglQueryImageNOK"); _eglCreateSharedImageNOK = (eglCreateSharedImageNOKFunc) eglGetProcAddress("eglCreateSharedImageNOK"); _eglDestroySharedImageNOK = (eglDestroySharedImageNOKFunc) eglGetProcAddress("eglDestroySharedImageNOK"); + _eglLockSurfaceKHR = (eglLockSurfaceKHRFunc) eglGetProcAddress("eglLockSurfaceKHR"); + _eglUnlockSurfaceKHR = (eglUnlockSurfaceKHRFunc) eglGetProcAddress("eglUnlockSurfaceKHR"); Q_ASSERT(_eglQueryImageNOK && _eglCreateSharedImageNOK && _eglDestroySharedImageNOK); hasImageShared = true; @@ -125,5 +148,14 @@ void QMeeGoExtensions::initialize() Q_ASSERT(_eglSetSurfaceScalingNOK); hasSurfaceScaling = true; } + + if (QEgl::hasExtension("EGL_KHR_lock_surface2")) { + qDebug("MeegoGraphics: found EGL_KHR_lock_surface2"); + _eglLockSurfaceKHR = (eglLockSurfaceKHRFunc) eglGetProcAddress("eglLockSurfaceKHR"); + _eglUnlockSurfaceKHR = (eglUnlockSurfaceKHRFunc) eglGetProcAddress("eglUnlockSurfaceKHR"); + + Q_ASSERT(_eglLockSurfaceKHR && _eglUnlockSurfaceKHR); + hasLockSurface = true; + } } diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.h b/src/plugins/graphicssystems/meego/qmeegoextensions.h index ee20bd8..9e78caf 100644 --- a/src/plugins/graphicssystems/meego/qmeegoextensions.h +++ b/src/plugins/graphicssystems/meego/qmeegoextensions.h @@ -65,6 +65,18 @@ typedef void* EGLNativeSharedImageTypeNOK; #define EGL_FIXED_HEIGHT_NOK 0x30DC #endif +#ifndef EGL_BITMAP_POINTER_KHR +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#endif + +#ifndef EGL_MAP_PRESERVE_PIXELS_KHR +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#endif + /* Class */ class QMeeGoExtensions @@ -76,6 +88,8 @@ public: static bool eglQueryImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint prop, EGLint *v); static bool eglDestroySharedImageNOK(EGLDisplay dpy, EGLNativeSharedImageTypeNOK img); static bool eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surface, int x, int y, int width, int height); + static bool eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); + static bool eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface); private: static void initialize(); @@ -83,6 +97,7 @@ private: static bool initialized; static bool hasImageShared; static bool hasSurfaceScaling; + static bool hasLockSurface; }; #endif diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 2a64d49..f8b228c 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include "qmeegopixmapdata.h" #include "qmeegographicssystem.h" @@ -58,6 +59,8 @@ bool QMeeGoGraphicsSystem::surfaceWasCreated = false; +QHash QMeeGoGraphicsSystem::liveTexturePixmaps; + QMeeGoGraphicsSystem::QMeeGoGraphicsSystem() { qDebug("Using the meego graphics system"); @@ -170,6 +173,22 @@ QPixmapData *QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(Qt::HANDLE handl } } +QPixmapData *QMeeGoGraphicsSystem::pixmapDataFromEGLImage(Qt::HANDLE handle) +{ + if (QMeeGoGraphicsSystem::meeGoRunning()) { + QMeeGoPixmapData *pmd = new QMeeGoPixmapData; + pmd->fromEGLImage(handle); + + // FIXME Ok. This is a bit BAD BAD BAD. We're abusing here the fact that we KNOW + // that this function is used for the live pixmap... + pmd->texture()->options &= ~QGLContext::InvertedYBindOption; + return QMeeGoGraphicsSystem::wrapPixmapData(pmd); + } else { + qFatal("Can't create from EGL image when not running meego graphics system!"); + return NULL; + } +} + void QMeeGoGraphicsSystem::updateEGLSharedImagePixmap(QPixmap *pixmap) { QMeeGoPixmapData *pmd = (QMeeGoPixmapData *) pixmap->pixmapData(); @@ -188,6 +207,109 @@ QPixmapData *QMeeGoGraphicsSystem::pixmapDataWithGLTexture(int w, int h) return QMeeGoGraphicsSystem::wrapPixmapData(pmd); } +Qt::HANDLE QMeeGoGraphicsSystem::createLiveTexture(int w, int h, QImage::Format format) +{ + // No need to wrap the QPixmapData here. This QPixmap(Data) is a + // internal implementation and we don't migrate it between + // graphics system switching. + + // We use a bit ugly way of enforcing a color format on the X pixmap -- we create + // a local QImage and fromImage from there. This is quite redundant (extra overhead of creating + // the useless image only to delete it) but shouldn't be too bad for now... you're not expected + // to call createLiveTexture too often anyways. Would be great if QX11PixmapData had a way to + // force the X format upon creation or resize. + + QImage image(w, h, format); + QX11PixmapData *pmd = new QX11PixmapData(QPixmapData::PixmapType); + pmd->fromImage(image, Qt::NoOpaqueDetection); + QPixmap *p = new QPixmap(pmd); + + liveTexturePixmaps.insert(p->handle(), p); + return p->handle(); +} + +void QMeeGoGraphicsSystem::destroyLiveTexture(Qt::HANDLE h) +{ + if (liveTexturePixmaps.contains(h)) { + QPixmap *p = liveTexturePixmaps.value(h); + delete p; + liveTexturePixmaps.remove(h); + } else + qWarning("Trying to destroy live texture %ld which was not found!", h); +} + +bool QMeeGoGraphicsSystem::lockLiveTexture(Qt::HANDLE h) +{ + if (! liveTexturePixmaps.contains(h)) { + qWarning("Trying to lock live texture %ld which was not found!", h); + return false; + } + + EGLint attribs[] = { + EGL_MAP_PRESERVE_PIXELS_KHR, EGL_TRUE, + EGL_LOCK_USAGE_HINT_KHR, EGL_READ_SURFACE_BIT_KHR | EGL_WRITE_SURFACE_BIT_KHR, + EGL_NONE + }; + + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + EGLSurface surface = getSurfaceForLiveTexturePixmap(liveTexturePixmaps.value(h)); + return QMeeGoExtensions::eglLockSurfaceKHR(QEgl::display(), surface, attribs); +} + +bool QMeeGoGraphicsSystem::unlockLiveTexture(Qt::HANDLE h) +{ + if (! liveTexturePixmaps.contains(h)) { + qWarning("Trying to lock live texture %ld which was not found!", h); + return false; + } + + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + + EGLSurface surface = getSurfaceForLiveTexturePixmap(liveTexturePixmaps.value(h)); + if (QMeeGoExtensions::eglUnlockSurfaceKHR(QEgl::display(), surface)) { + glFinish(); + return true; + } else { + return false; + } +} + +void QMeeGoGraphicsSystem::queryLiveTexture(Qt::HANDLE h, void **data, int *pitch) +{ + // FIXME Only allow this on locked surfaces + if (! liveTexturePixmaps.contains(h)) { + qWarning("Trying to query live texture %ld which was not found!", h); + return; + } + + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + + EGLSurface surface = getSurfaceForLiveTexturePixmap(liveTexturePixmaps.value(h)); + eglQuerySurface(QEgl::display(), surface, EGL_BITMAP_POINTER_KHR, (EGLint*) data); + eglQuerySurface(QEgl::display(), surface, EGL_BITMAP_PITCH_KHR, (EGLint*) pitch); +} + +Qt::HANDLE QMeeGoGraphicsSystem::liveTextureToEGLImage(Qt::HANDLE h) +{ + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + + EGLint attribs[] = { + EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, + EGL_NONE + }; + + EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(), EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, + (EGLClientBuffer) h, attribs); + + if (eglImage == EGL_NO_IMAGE_KHR) + qWarning("eglCreateImageKHR failed!"); + + return (Qt::HANDLE) eglImage; +} + bool QMeeGoGraphicsSystem::meeGoRunning() { if (! QApplicationPrivate::instance()) { @@ -204,6 +326,52 @@ bool QMeeGoGraphicsSystem::meeGoRunning() return (name == "meego"); } +void QMeeGoGraphicsSystem::destroySurfaceForLiveTexturePixmap(QPixmapData* pmd) +{ + Q_ASSERT(pmd->classId() == QPixmapData::X11Class); + QX11PixmapData *pixmapData = static_cast(pmd); + if (pixmapData->gl_surface) { + eglDestroySurface(QEgl::display(), (EGLSurface)pixmapData->gl_surface); + pixmapData->gl_surface = 0; + } +} + +EGLSurface QMeeGoGraphicsSystem::getSurfaceForLiveTexturePixmap(QPixmap *pixmap) +{ + // This code is a crative remix of the stuff that can be found in the + // Qt's TFP implementation in /src/opengl/qgl_x11egl.cpp ::bindiTextureFromNativePixmap + QX11PixmapData *pixmapData = static_cast(pixmap->data_ptr().data()); + Q_ASSERT(pixmapData->classId() == QPixmapData::X11Class); + bool hasAlpha = pixmapData->hasAlphaChannel(); + + if (pixmapData->gl_surface && + hasAlpha == (pixmapData->flags & QX11PixmapData::GlSurfaceCreatedWithAlpha)) + return pixmapData->gl_surface; + + // Check to see if the surface is still valid + if (pixmapData->gl_surface && + hasAlpha != ((pixmapData->flags & QX11PixmapData::GlSurfaceCreatedWithAlpha) > 0)) { + // Surface is invalid! + QMeeGoGraphicsSystem::destroySurfaceForLiveTexturePixmap(pixmapData); + } + + if (pixmapData->gl_surface == 0) { + EGLConfig config = QEgl::defaultConfig(QInternal::Pixmap, + QEgl::OpenGL, + hasAlpha ? QEgl::Translucent : QEgl::NoOptions); + + pixmapData->gl_surface = (void*)QEgl::createSurface(pixmap, config); + + if (hasAlpha) + pixmapData->flags = pixmapData->flags | QX11PixmapData::GlSurfaceCreatedWithAlpha; + + if (pixmapData->gl_surface == (void*)EGL_NO_SURFACE) + return NULL; + } + + return pixmapData->gl_surface; +} + /* C API */ int qt_meego_image_to_egl_shared_image(const QImage &image) @@ -216,6 +384,11 @@ QPixmapData* qt_meego_pixmapdata_from_egl_shared_image(Qt::HANDLE handle, const return QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(handle, softImage); } +QPixmapData* qt_meego_pixmapdata_from_egl_image(Qt::HANDLE handle) +{ + return QMeeGoGraphicsSystem::pixmapDataFromEGLImage(handle); +} + QPixmapData* qt_meego_pixmapdata_with_gl_texture(int w, int h) { return QMeeGoGraphicsSystem::pixmapDataWithGLTexture(w, h); @@ -245,3 +418,33 @@ void qt_meego_update_egl_shared_image_pixmap(QPixmap *pixmap) { QMeeGoGraphicsSystem::updateEGLSharedImagePixmap(pixmap); } + +Qt::HANDLE qt_meego_live_texture_create(int w, int h, QImage::Format format) +{ + return QMeeGoGraphicsSystem::createLiveTexture(w, h, format); +} + +void qt_meego_live_texture_destroy(Qt::HANDLE h) +{ + QMeeGoGraphicsSystem::destroyLiveTexture(h); +} + +bool qt_meego_live_texture_lock(Qt::HANDLE h) +{ + return QMeeGoGraphicsSystem::lockLiveTexture(h); +} + +bool qt_meego_live_texture_unlock(Qt::HANDLE h) +{ + return QMeeGoGraphicsSystem::unlockLiveTexture(h); +} + +void qt_meego_live_texture_query(Qt::HANDLE h, void **data, int *pitch) +{ + return QMeeGoGraphicsSystem::queryLiveTexture(h, data, pitch); +} + +Qt::HANDLE qt_meego_live_texture_to_egl_image(Qt::HANDLE h) +{ + return QMeeGoGraphicsSystem::liveTextureToEGLImage(h); +} diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.h b/src/plugins/graphicssystems/meego/qmeegographicssystem.h index 905f0c3..934d32d 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.h +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.h @@ -43,6 +43,9 @@ #define MGRAPHICSSYSTEM_H #include +#include +#include +#include class QMeeGoGraphicsSystem : public QGraphicsSystem { @@ -60,13 +63,24 @@ public: static void setTranslucent(bool translucent); static QPixmapData *pixmapDataFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage); + static QPixmapData *pixmapDataFromEGLImage(Qt::HANDLE handle); static QPixmapData *pixmapDataWithGLTexture(int w, int h); static void updateEGLSharedImagePixmap(QPixmap *pixmap); + static Qt::HANDLE createLiveTexture(int w, int h, QImage::Format format); + static void destroyLiveTexture(Qt::HANDLE h); + static bool lockLiveTexture(Qt::HANDLE h); + static bool unlockLiveTexture(Qt::HANDLE h); + static void queryLiveTexture(Qt::HANDLE h, void **data, int *pitch); + static Qt::HANDLE liveTextureToEGLImage(Qt::HANDLE h); + private: static bool meeGoRunning(); + static EGLSurface getSurfaceForLiveTexturePixmap(QPixmap *pixmap); + static void destroySurfaceForLiveTexturePixmap(QPixmapData* pmd); static bool surfaceWasCreated; + static QHash liveTexturePixmaps; }; /* C api */ @@ -74,12 +88,19 @@ private: extern "C" { Q_DECL_EXPORT int qt_meego_image_to_egl_shared_image(const QImage &image); Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_from_egl_shared_image(Qt::HANDLE handle, const QImage &softImage); + Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_from_egl_image(Qt::HANDLE handle); Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_with_gl_texture(int w, int h); Q_DECL_EXPORT void qt_meego_update_egl_shared_image_pixmap(QPixmap *pixmap); Q_DECL_EXPORT bool qt_meego_destroy_egl_shared_image(Qt::HANDLE handle); Q_DECL_EXPORT void qt_meego_set_surface_fixed_size(int width, int height); Q_DECL_EXPORT void qt_meego_set_surface_scaling(int x, int y, int width, int height); Q_DECL_EXPORT void qt_meego_set_translucent(bool translucent); + Q_DECL_EXPORT Qt::HANDLE m_live_texture_create(int w, int h, QImage::Format format); + Q_DECL_EXPORT void m_live_texture_destroy(Qt::HANDLE h); + Q_DECL_EXPORT bool m_live_texture_lock(Qt::HANDLE h); + Q_DECL_EXPORT bool m_live_texture_unlock(Qt::HANDLE h); + Q_DECL_EXPORT void m_live_texture_query(Qt::HANDLE h, void **data, int *pitch); + Q_DECL_EXPORT Qt::HANDLE m_live_texture_to_egl_image(Qt::HANDLE h); } #endif diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp index 33611dc..84fc593 100644 --- a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp +++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp @@ -87,6 +87,36 @@ void QMeeGoPixmapData::fromImage(const QImage &image, } } +void QMeeGoPixmapData::fromEGLImage(Qt::HANDLE handle) +{ + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoExtensions::ensureInitialized(); + + bool textureIsBound = false; + GLuint newTextureId; + GLint newWidth, newHeight; + + glGenTextures(1, &newTextureId); + glBindTexture(GL_TEXTURE_2D, newTextureId); + + glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, (EGLImageKHR) handle); + GLint err = glGetError(); + if (err == GL_NO_ERROR) + textureIsBound = true; + + QMeeGoExtensions::eglQueryImageNOK(QEgl::display(), (EGLImageKHR) handle, EGL_WIDTH, &newWidth); + QMeeGoExtensions::eglQueryImageNOK(QEgl::display(), (EGLImageKHR) handle, EGL_HEIGHT, &newHeight); + + if (textureIsBound) { + // FIXME Remove this ugly hasAlphaChannel check when Qt lands the NoOpaqueCheck flag fix + // for QGLPixmapData. + fromTexture(newTextureId, newWidth, newHeight, true); + } else { + qWarning("Failed to create a texture from an egl image!"); + glDeleteTextures(1, &newTextureId); + } +} + void QMeeGoPixmapData::fromEGLSharedImage(Qt::HANDLE handle, const QImage &si) { if (si.isNull()) diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.h b/src/plugins/graphicssystems/meego/qmeegopixmapdata.h index 8af33bd..8b1ae14 100644 --- a/src/plugins/graphicssystems/meego/qmeegopixmapdata.h +++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.h @@ -56,6 +56,7 @@ public: QMeeGoPixmapData(); void fromTexture(GLuint textureId, int w, int h, bool alpha); + virtual void fromEGLImage(Qt::HANDLE handle); virtual void fromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage); virtual void fromImage (const QImage &image, Qt::ImageConversionFlags flags); virtual QImage toImage() const; -- cgit v0.12 From df61814c228e6f2badf378e25b69daf9941c646b Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Thu, 7 Oct 2010 18:51:50 +0200 Subject: Live texture updates to meegographicssystem helper. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 848 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper.cpp | 9 +- .../qmeegographicssystemhelper.h | 7 + .../qmeegographicssystemhelper.pro | 4 +- .../qmeegographicssystemhelper/qmeegoliveimage.cpp | 115 ---------------- tools/qmeegographicssystemhelper/qmeegoliveimage.h | 106 --------------- .../qmeegographicssystemhelper/qmeegoliveimage_p.h | 63 --------- .../qmeegolivepixmap.cpp | 150 +++++++++------------ .../qmeegographicssystemhelper/qmeegolivepixmap.h | 35 +++-- .../qmeegolivepixmap_p.h | 11 +- tools/qmeegographicssystemhelper/qmeegoruntime.cpp | 92 +++++++++++-- tools/qmeegographicssystemhelper/qmeegoruntime.h | 11 +- 11 files changed, 197 insertions(+), 406 deletions(-) delete mode 100644 tools/qmeegographicssystemhelper/qmeegoliveimage.cpp delete mode 100644 tools/qmeegographicssystemhelper/qmeegoliveimage.h delete mode 100644 tools/qmeegographicssystemhelper/qmeegoliveimage_p.h diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp index 0670ac4..d348e70 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp @@ -68,6 +68,11 @@ bool QMeeGoGraphicsSystemHelper::isRunningMeeGo() return (runningGraphicsSystemName() == QLatin1String("meego")); } +bool QMeeGoGraphicsSystemHelper::isRunningRuntime() +{ + return (QApplicationPrivate::instance()->graphics_system_name == QLatin1String("runtime")); +} + void QMeeGoGraphicsSystemHelper::switchToMeeGo() { if (isRunningMeeGo()) @@ -105,13 +110,13 @@ QPixmap QMeeGoGraphicsSystemHelper::pixmapFromEGLSharedImage(Qt::HANDLE handle, // This function is supported when not running meego too. A raster-backed // pixmap will be created... but when you switch back to 'meego', it'll // be replaced with a EGL shared image backing. - return QMeeGoRuntime::pixmapFromEGLSharedImage(handle, softImage); + return QPixmap(QMeeGoRuntime::pixmapDataFromEGLSharedImage(handle, softImage)); } QPixmap QMeeGoGraphicsSystemHelper::pixmapWithGLTexture(int w, int h) { ENSURE_RUNNING_MEEGO; - return QMeeGoRuntime::pixmapWithGLTexture(w, h); + return QPixmap(QMeeGoRuntime::pixmapDataWithGLTexture(w, h)); } bool QMeeGoGraphicsSystemHelper::destroyEGLSharedImage(Qt::HANDLE handle) diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h index 02f2fa2..2bb75eb 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h @@ -89,6 +89,13 @@ public: switching is 'meego'. */ static bool isRunningMeeGo(); + + //! Returns true if running with a 'runtime' graphicssystem. + /*! + This function can be used in combination with ::runningGraphicsSystemName to figure out + the existing situation. + */ + static bool isRunningRuntime(); //! Switches to meego graphics system. /*! diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro index 1e6e233..4d69fac 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro @@ -6,5 +6,5 @@ include(../../src/qbase.pri) QT += gui INCLUDEPATH += '../../src/plugins/graphicssystems/meego' -HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoliveimage.h qmeegoruntime.h qmeegoliveimage_p.h qmeegolivepixmap_p.h -SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegoliveimage.cpp +HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h +SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp b/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp deleted file mode 100644 index 83a1e28..0000000 --- a/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins 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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmeegoliveimage.h" -#include "qmeegoliveimage_p.h" -#include "qmeegolivepixmap.h" -#include "qmeegolivepixmap_p.h" - -/* QMeeGoLiveImagePrivate */ - -QMeeGoLiveImagePrivate::QMeeGoLiveImagePrivate() -{ -} - -QMeeGoLiveImagePrivate::~QMeeGoLiveImagePrivate() -{ - if (attachedPixmaps.length() > 0) - qWarning("Destroying QMeeGoLiveImage but it still has QMeeGoLivePixmaps attached!"); -} - -void QMeeGoLiveImagePrivate::attachPixmap(QMeeGoLivePixmap* pixmap) -{ - attachedPixmaps << pixmap; -} - -void QMeeGoLiveImagePrivate::detachPixmap(QMeeGoLivePixmap* pixmap) -{ - attachedPixmaps.removeAll(pixmap); -} - -/* QMeeGoLiveImage */ - -QMeeGoLiveImage* QMeeGoLiveImage::liveImageWithSize(int w, int h, Format format, int buffers) -{ - if (format != Format_ARGB32_Premultiplied) { - qWarning("Only _ARGB32_Premultiplied format is supported for live images now!"); - return 0; - } - - if (buffers != 1) { - qWarning("Only single-buffer streams are supported at the moment"); - return 0; - } - - QMeeGoLiveImage *liveImage = new QMeeGoLiveImage(w, h); - return liveImage; -} - -QMeeGoLiveImage::QMeeGoLiveImage(int w, int h) : QImage(w, h, QImage::Format_ARGB32_Premultiplied), d_ptr(new QMeeGoLiveImagePrivate()) -{ - Q_D(QMeeGoLiveImage); - d->q_ptr = this; -} - -QMeeGoLiveImage::~QMeeGoLiveImage() -{ -} - -void QMeeGoLiveImage::lock(int buffer) -{ - if (buffer != 0) - qWarning("Only locking 0 buffer is supported at the moment!"); -} - -void QMeeGoLiveImage::release(int buffer) -{ - Q_D(QMeeGoLiveImage); - - if (buffer != 0) { - qWarning("Only locking 0 buffer is supported at the moment!"); - return; - } - - // We need to copy the update image to all the client QMeeGoLivePixmap's - foreach (QMeeGoLivePixmap* livePixmap, d->attachedPixmaps) - livePixmap->d_ptr->copyBackFrom((const void *) bits()); -} diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage.h b/tools/qmeegographicssystemhelper/qmeegoliveimage.h deleted file mode 100644 index 1e21e7b..0000000 --- a/tools/qmeegographicssystemhelper/qmeegoliveimage.h +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins 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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMEEGOLIVEIMAGE_H -#define QMEEGOLIVEIMAGE_H - -#include - -class QMeeGoLivePixmap; -class QMeeGoLiveImagePrivate; - -//! A streamable QImage subclass. -/*! -*/ - -class QMeeGoLiveImage : public QImage -{ -public: - //! Format specifier. - /*! - Used to specify the format of the underlying image data for QMeeGoLiveImage. - */ - enum Format { - Format_ARGB32_Premultiplied //! 32bit, AARRGGBB format. The typical Qt format. - }; - - //! Locks the access to the image. - /*! - All drawing/access to the underlying image data needs to happen between - ::lock() and ::unlock() pairs. - */ - void lock(int buffer = 0); - - //! Unlocks the access to the image. - /*! - All drawing/access to the underlying image data needs to happen between - ::lock() and ::unlock() pairs. - */ - void release(int buffer = 0); - - //! Destroys the image. - /*! - It's a mistake to destroy an image before destroying all the QMeeGoLivePixmaps - built on top of it. You should first destroy all the QMeeGoLivePixmaps. - */ - virtual ~QMeeGoLiveImage(); - - //! Creates and returns a new live image with the given parameters. - /*! - The new image is created with the given width w and the given height h. - The format specifies the color format used by the image. Optionally, a - number of buffers can be specfied for a stream-like behavior. - */ - static QMeeGoLiveImage* liveImageWithSize(int w, int h, Format format, int buffers = 1); - -private: - QMeeGoLiveImage(int w, int h); //! Private bits. - Q_DISABLE_COPY(QMeeGoLiveImage) - Q_DECLARE_PRIVATE(QMeeGoLiveImage) - -protected: - QScopedPointer d_ptr; - - friend class QMeeGoLivePixmap; - friend class QMeeGoLivePixmapPrivate; -}; - -#endif diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h b/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h deleted file mode 100644 index 085fed4..0000000 --- a/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins 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 Technology Preview License Agreement accompanying -** this package. -** -** 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.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmeegoliveimage.h" - -#ifndef QMEEGOLIVEIMAGE_P_H -#define QMEEGOLIVEIMAGE_P_H - -class QMeeGoLiveImagePrivate -{ -public: - Q_DECLARE_PUBLIC(QMeeGoLiveImage); - QMeeGoLiveImagePrivate(); - virtual ~QMeeGoLiveImagePrivate(); - void attachPixmap(QMeeGoLivePixmap* pixmap); - void detachPixmap(QMeeGoLivePixmap* pixmap); - - QList attachedPixmaps; - QMeeGoLiveImage *q_ptr; - - friend class QMeeGoLivePixmap; - friend class QMeeGoLivePixmapPrivate; -}; - -#endif diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp index 2a1c04b..b9dbb2b 100644 --- a/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp +++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp @@ -43,121 +43,101 @@ #include #include #include "qmeegolivepixmap_p.h" -#include "qmeegoliveimage_p.h" +#include "qmeegoruntime.h" #include /* QMeeGoLivePixmapPrivate */ -QMeeGoLivePixmapPrivate::QMeeGoLivePixmapPrivate() : shm(0), shmSerial(0), owns(true), parentImage(0) +QMeeGoLivePixmapPrivate::QMeeGoLivePixmapPrivate(Qt::HANDLE h) : handle(h) { } -void QMeeGoLivePixmapPrivate::copyBackFrom(const void *raw) +QMeeGoLivePixmapPrivate::~QMeeGoLivePixmapPrivate() { - Q_Q(QMeeGoLivePixmap); - - q->detach(); - shm->lock(); - uchar *dest = ((uchar *) shm->data()) + (2 * sizeof(int)); - memcpy(dest, raw, q->width() * q->height() * 4); - shm->unlock(); } -QMeeGoLivePixmapPrivate::~QMeeGoLivePixmapPrivate() +/* QMeeGoLivePixmap */ + +QMeeGoLivePixmap* QMeeGoLivePixmap::livePixmapWithSize(int w, int h, Format format) { - Q_Q(QMeeGoLivePixmap); + QImage::Format qtFormat; + if (format == Format_RGB16) + qtFormat = QImage::Format_RGB16; + else if (format == Format_ARGB32_Premultiplied) + qtFormat = QImage::Format_ARGB32_Premultiplied; + else { + qWarning("Unsupported live pixmap format!"); + return 0; + } - if (parentImage) - parentImage->d_ptr->detachPixmap(q); - - if (shm) - shm->detach(); - - if (owns) - delete shm; -} + Qt::HANDLE liveTextureHandle = QMeeGoRuntime::createLiveTexture(w, h, qtFormat); + if (! liveTextureHandle) { + qWarning("Failed to create a live texture with given size!"); + return NULL; + } -/* QMeeGoLivePixmap */ + return QMeeGoLivePixmap::fromHandle(liveTextureHandle); +} -QMeeGoLivePixmap::QMeeGoLivePixmap(QPixmapData *p) : QPixmap(p), d_ptr(new QMeeGoLivePixmapPrivate()) +QMeeGoLivePixmap::QMeeGoLivePixmap(QPixmapData *p, Qt::HANDLE h) : QPixmap(p), d_ptr(new QMeeGoLivePixmapPrivate(h)) { Q_D(QMeeGoLivePixmap); d->q_ptr = this; } -QMeeGoLivePixmap* QMeeGoLivePixmap::fromLiveImage(QMeeGoLiveImage *liveImage) +QMeeGoLivePixmap* QMeeGoLivePixmap::fromHandle(Qt::HANDLE liveTextureHandle) { - static int counter = 100; - QSharedMemory *shm = NULL; - uchar* imgData = NULL; - int *header = NULL; - int w = liveImage->width(); - int h = liveImage->height(); - - counter++; - shm = new QSharedMemory(QString(QLatin1String("QMeeGoLivePixmap%1")).arg(counter)); - shm->create((w * h * 4) + 2 * sizeof(int)); // +2 to store width & height - shm->attach(); - - imgData = ((uchar *) shm->data()) + (2 * sizeof(int)); - header = (int *) shm->data(); - - header[0] = w; - header[1] = h; - - QImage img(imgData, w, h, QImage::Format_ARGB32_Premultiplied); - - QPixmapData *pmd = new QRasterPixmapData(QPixmapData::PixmapType); - pmd->fromImage(img, Qt::NoOpaqueDetection); - - QMeeGoLivePixmap *livePixmap = new QMeeGoLivePixmap(pmd); - livePixmap->d_ptr->shm = shm; - livePixmap->d_ptr->owns = true; - livePixmap->d_ptr->shmSerial = counter; - livePixmap->d_ptr->parentImage = liveImage; - - liveImage->d_ptr->attachPixmap(livePixmap); + Qt::HANDLE eglImage = QMeeGoRuntime::liveTextureToEGLImage(liveTextureHandle); + if (! eglImage) { + qWarning("Failed to bind the live texture as an egl image!"); + return NULL; + } - return livePixmap; + QPixmapData *pmd = QMeeGoRuntime::pixmapDataFromEGLImage(eglImage); + if (! pmd) { + qWarning("Failed to allocate a pixmap data from a given live texture egl image!"); + return NULL; + } + + return new QMeeGoLivePixmap(pmd, liveTextureHandle); } -QMeeGoLivePixmap* QMeeGoLivePixmap::fromHandle(Qt::HANDLE handle) +Qt::HANDLE QMeeGoLivePixmap::handle() { - QSharedMemory *shm = NULL; - int *header; - int width; - int height; - uchar* imgData; - - shm = new QSharedMemory(QString(QLatin1String("QMeeGoLivePixmap%1")).arg(handle)); - shm->attach(); - - shm->lock(); - header = (int *) shm->data(); - width = header[0]; - height = header[1]; - shm->unlock(); - - imgData = ((uchar *) shm->data()) + (2 * sizeof(int)); - QImage img(imgData, width, height, QImage::Format_ARGB32_Premultiplied); - - QPixmapData *pmd = new QRasterPixmapData(QPixmapData::PixmapType); - pmd->fromImage(img, Qt::NoOpaqueDetection); - - QMeeGoLivePixmap *livePixmap = new QMeeGoLivePixmap(pmd); - livePixmap->d_ptr->shm = shm; - livePixmap->d_ptr->owns = false; - livePixmap->d_ptr->shmSerial = handle; - - return livePixmap; + Q_D(QMeeGoLivePixmap); + return d->handle; } QMeeGoLivePixmap::~QMeeGoLivePixmap() { } -Qt::HANDLE QMeeGoLivePixmap::handle() +QImage* QMeeGoLivePixmap::lock() +{ + Q_D(QMeeGoLivePixmap); + + void *data = NULL; + int pitch = 0; + + if (! QMeeGoRuntime::lockLiveTexture(d->handle)) { + qWarning("Failed to lock a live texture!"); + return new QImage(); + } + + QMeeGoRuntime::queryLiveTexture(d->handle, &data, &pitch); + if (data == NULL || pitch == 0) { + qWarning("Failed to query the live texture!"); + return new QImage(); + } + + // FIXME Bug here! FIX FIX FIX FIX FIX FIX + return new QImage((uchar *) data, width(), height(), QImage::Format_RGB16); +} + +void QMeeGoLivePixmap::release(QImage *img) { Q_D(QMeeGoLivePixmap); - return d->shmSerial; + // FIXME Make sure we're locked! + QMeeGoRuntime::unlockLiveTexture(d->handle); + delete img; } diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.h b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h index 2fa9db2..12fe994 100644 --- a/tools/qmeegographicssystemhelper/qmeegolivepixmap.h +++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h @@ -43,7 +43,6 @@ #define QMEEGOLIVEPIXMAP_H #include -#include "qmeegoliveimage.h" class QMeeGoLivePixmapPrivate; class QSharedMemory; @@ -56,13 +55,17 @@ class QImage; class QMeeGoLivePixmap : public QPixmap { public: - //! Creates new pixmap from the given QMeeGoLiveImage. - /*! - The created QMeeGoLivePixmap will be attached to the given QMeeGoLiveImage. - Updates to the QMeeGoLiveImage will be represented on this newly created - QMeeGoLivePixmap. + enum Format { + Format_RGB16, //! 16bit, 5-6-5 RGB format. + Format_ARGB32_Premultiplied //! 32bit, AARRGGBB format. The typical Qt format. + }; + + //! Creates and returns a new live pixmap with the given parameters. + /*! + The new pixmap is created with the given width w and the given height h. + The format specifies the color format used by the pixmap. */ - static QMeeGoLivePixmap* fromLiveImage(QMeeGoLiveImage *liveImage); + static QMeeGoLivePixmap* livePixmapWithSize(int w, int h, Format format); //! Creates a new QMeeGoLivePixmap from the specified handle. /*! @@ -75,24 +78,30 @@ public: The handle can be used to share QMeeGoLivePixmap cross-process. */ Qt::HANDLE handle(); + + //! Locks the access to the pixmap. + /*! + The returned image can be used for direct access. + */ + QImage* lock(); + + //! Unlocks the access to the pixmap. + /*! + */ + void release(QImage *img); //! Destroys the QMeeGoLivePixmap. /*! - All QMeeGoLivePixmaps attached to a given QMeeGoLiveImage have to be destroyed - before the QMeeGoLiveImage itself is destroyed. */ virtual ~QMeeGoLivePixmap(); private: - QMeeGoLivePixmap(QPixmapData *p); + QMeeGoLivePixmap(QPixmapData *p, Qt::HANDLE h); Q_DISABLE_COPY(QMeeGoLivePixmap) Q_DECLARE_PRIVATE(QMeeGoLivePixmap) protected: QScopedPointer d_ptr; //! Private bits. - - friend class QMeeGoLiveImage; - friend class QMeeGoLiveImagePrivate; }; #endif diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h b/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h index c2591dc..22347d6 100644 --- a/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h +++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h @@ -48,19 +48,12 @@ class QMeeGoLivePixmapPrivate { public: Q_DECLARE_PUBLIC(QMeeGoLivePixmap); - QMeeGoLivePixmapPrivate(); - void copyBackFrom(const void *raw); + QMeeGoLivePixmapPrivate(Qt::HANDLE handle); virtual ~QMeeGoLivePixmapPrivate(); - QSharedMemory *shm; - int shmSerial; - bool owns; - QMeeGoLiveImage *parentImage; + Qt::HANDLE handle; QMeeGoLivePixmap *q_ptr; - - friend class QMeeGoLiveImage; - friend class QMeeGoLiveImagePrivate; }; #endif diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.cpp b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp index 70b5dc1..44f9f58 100644 --- a/tools/qmeegographicssystemhelper/qmeegoruntime.cpp +++ b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp @@ -51,21 +51,36 @@ bool QMeeGoRuntime::initialized = false; typedef int (*QMeeGoImageToEglSharedImageFunc) (const QImage&); typedef QPixmapData* (*QMeeGoPixmapDataFromEglSharedImageFunc) (Qt::HANDLE handle, const QImage&); +typedef QPixmapData* (*QMeeGoPixmapDataFromEglImageFunc) (Qt::HANDLE handle); typedef QPixmapData* (*QMeeGoPixmapDataWithGLTextureFunc) (int w, int h); typedef bool (*QMeeGoDestroyEGLSharedImageFunc) (Qt::HANDLE handle); typedef void (*QMeeGoUpdateEglSharedImagePixmapFunc) (QPixmap*); typedef void (*QMeeGoSetSurfaceFixedSizeFunc) (int w, int h); typedef void (*QMeeGoSetSurfaceScalingFunc) (int x, int y, int w, int h); typedef void (*QMeeGoSetTranslucentFunc) (bool translucent); +typedef Qt::HANDLE (*QMeeGoLiveTextureCreateFunc) (int w, int h, QImage::Format format); +typedef bool (*QMeeGoLiveTextureLockFunc) (Qt::HANDLE h); +typedef bool (*QMeeGoLiveTextureUnlockFunc) (Qt::HANDLE h); +typedef void (*QMeeGoLiveTextureDestroyFunc) (Qt::HANDLE h); +typedef void (*QMeeGoLiveTextureQueryFunc) (Qt::HANDLE h, void **data, int *pitch); +typedef Qt::HANDLE (*QMeeGoLiveTextureToEglImageFunc) (Qt::HANDLE h); static QMeeGoImageToEglSharedImageFunc qt_meego_image_to_egl_shared_image = NULL; static QMeeGoPixmapDataFromEglSharedImageFunc qt_meego_pixmapdata_from_egl_shared_image = NULL; +static QMeeGoPixmapDataFromEglImageFunc qt_meego_pixmapdata_from_egl_image = NULL; static QMeeGoPixmapDataWithGLTextureFunc qt_meego_pixmapdata_with_gl_texture = NULL; static QMeeGoDestroyEGLSharedImageFunc qt_meego_destroy_egl_shared_image = NULL; static QMeeGoUpdateEglSharedImagePixmapFunc qt_meego_update_egl_shared_image_pixmap = NULL; static QMeeGoSetSurfaceFixedSizeFunc qt_meego_set_surface_fixed_size = NULL; static QMeeGoSetSurfaceScalingFunc qt_meego_set_surface_scaling = NULL; static QMeeGoSetTranslucentFunc qt_meego_set_translucent = NULL; +static QMeeGoLiveTextureCreateFunc qt_meego_live_texture_create = NULL; +static QMeeGoLiveTextureLockFunc qt_meego_live_texture_lock = NULL; +static QMeeGoLiveTextureUnlockFunc qt_meego_live_texture_unlock = NULL; +static QMeeGoLiveTextureDestroyFunc qt_meego_live_texture_destroy = NULL; +static QMeeGoLiveTextureQueryFunc qt_meego_live_texture_query = NULL; +static QMeeGoLiveTextureToEglImageFunc qt_meego_live_texture_to_egl_image = NULL; + void QMeeGoRuntime::initialize() { @@ -80,17 +95,26 @@ void QMeeGoRuntime::initialize() if (success) { qt_meego_image_to_egl_shared_image = (QMeeGoImageToEglSharedImageFunc) library.resolve("qt_meego_image_to_egl_shared_image"); - qt_meego_pixmapdata_from_egl_shared_image = (QMeeGoPixmapDataFromEglSharedImageFunc) library.resolve("qt_meego_pixmapdata_from_egl_shared_image"); + qt_meego_pixmapdata_from_egl_shared_image = (QMeeGoPixmapDataFromEglSharedImageFunc) library.resolve("qt_meego_pixmapdata_from_egl_shared_image"); + qt_meego_pixmapdata_from_egl_image = (QMeeGoPixmapDataFromEglImageFunc) library.resolve("qt_meego_pixmapdata_from_egl_image"); qt_meego_pixmapdata_with_gl_texture = (QMeeGoPixmapDataWithGLTextureFunc) library.resolve("qt_meego_pixmapdata_with_gl_texture"); qt_meego_destroy_egl_shared_image = (QMeeGoDestroyEGLSharedImageFunc) library.resolve("qt_meego_destroy_egl_shared_image"); qt_meego_update_egl_shared_image_pixmap = (QMeeGoUpdateEglSharedImagePixmapFunc) library.resolve("qt_meego_update_egl_shared_image_pixmap"); qt_meego_set_surface_fixed_size = (QMeeGoSetSurfaceFixedSizeFunc) library.resolve("qt_meego_set_surface_fixed_size"); qt_meego_set_surface_scaling = (QMeeGoSetSurfaceScalingFunc) library.resolve("qt_meego_set_surface_scaling"); qt_meego_set_translucent = (QMeeGoSetTranslucentFunc) library.resolve("qt_meego_set_translucent"); - - if (qt_meego_image_to_egl_shared_image && qt_meego_pixmapdata_from_egl_shared_image && qt_meego_pixmapdata_with_gl_texture - && qt_meego_destroy_egl_shared_image && qt_meego_update_egl_shared_image_pixmap && qt_meego_set_surface_fixed_size - && qt_meego_set_surface_scaling && qt_meego_set_translucent) + qt_meego_live_texture_create = (QMeeGoLiveTextureCreateFunc) library.resolve("qt_meego_live_texture_create"); + qt_meego_live_texture_lock = (QMeeGoLiveTextureLockFunc) library.resolve("qt_meego_live_texture_lock"); + qt_meego_live_texture_unlock = (QMeeGoLiveTextureUnlockFunc) library.resolve("qt_meego_live_texture_unlock"); + qt_meego_live_texture_destroy = (QMeeGoLiveTextureDestroyFunc) library.resolve("qt_meego_live_texture_destroy"); + qt_meego_live_texture_query = (QMeeGoLiveTextureQueryFunc) library.resolve("qt_meego_live_texture_query"); + qt_meego_live_texture_to_egl_image = (QMeeGoLiveTextureToEglImageFunc) library.resolve("qt_meego_live_texture_to_egl_image"); + + if (qt_meego_image_to_egl_shared_image && qt_meego_pixmapdata_from_egl_shared_image && qt_meego_pixmapdata_from_egl_image && + qt_meego_pixmapdata_with_gl_texture && qt_meego_destroy_egl_shared_image && qt_meego_update_egl_shared_image_pixmap && + qt_meego_set_surface_fixed_size && qt_meego_set_surface_scaling && qt_meego_set_translucent && + qt_meego_live_texture_create && qt_meego_live_texture_lock && qt_meego_live_texture_unlock && + qt_meego_live_texture_destroy && qt_meego_live_texture_query && qt_meego_live_texture_to_egl_image) { qDebug("Successfully resolved MeeGo graphics system: %s %s\n", qPrintable(libraryPrivate->fileName), qPrintable(libraryPrivate->fullVersion)); } @@ -108,18 +132,25 @@ Qt::HANDLE QMeeGoRuntime::imageToEGLSharedImage(const QImage &image) return qt_meego_image_to_egl_shared_image(image); } -QPixmap QMeeGoRuntime::pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage) +QPixmapData* QMeeGoRuntime::pixmapDataFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage) { ENSURE_INITIALIZED; Q_ASSERT(qt_meego_pixmapdata_from_egl_shared_image); - return QPixmap(qt_meego_pixmapdata_from_egl_shared_image(handle, softImage)); + return qt_meego_pixmapdata_from_egl_shared_image(handle, softImage); +} + +QPixmapData* QMeeGoRuntime::pixmapDataFromEGLImage(Qt::HANDLE handle) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_pixmapdata_from_egl_image); + return qt_meego_pixmapdata_from_egl_image(handle); } -QPixmap QMeeGoRuntime::pixmapWithGLTexture(int w, int h) +QPixmapData* QMeeGoRuntime::pixmapDataWithGLTexture(int w, int h) { ENSURE_INITIALIZED; Q_ASSERT(qt_meego_pixmapdata_with_gl_texture); - return QPixmap(qt_meego_pixmapdata_with_gl_texture(w, h)); + return qt_meego_pixmapdata_with_gl_texture(w, h); } bool QMeeGoRuntime::destroyEGLSharedImage(Qt::HANDLE handle) @@ -156,3 +187,46 @@ void QMeeGoRuntime::setTranslucent(bool translucent) Q_ASSERT(qt_meego_set_translucent); qt_meego_set_translucent(translucent); } + +Qt::HANDLE QMeeGoRuntime::createLiveTexture(int w, int h, QImage::Format format) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_create); + return qt_meego_live_texture_create(w, h, format); +} + +bool QMeeGoRuntime::lockLiveTexture(Qt::HANDLE h) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_lock); + return qt_meego_live_texture_lock(h); +} + +bool QMeeGoRuntime::unlockLiveTexture(Qt::HANDLE h) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_unlock); + return qt_meego_live_texture_unlock(h); +} + +void QMeeGoRuntime::destroyLiveTexture(Qt::HANDLE h) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_destroy); + qt_meego_live_texture_destroy(h); +} + +void QMeeGoRuntime::queryLiveTexture(Qt::HANDLE h, void **data, int *pitch) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_query); + qt_meego_live_texture_query(h, data, pitch); +} + +Qt::HANDLE QMeeGoRuntime::liveTextureToEGLImage(Qt::HANDLE handle) +{ + ENSURE_INITIALIZED; + Q_ASSERT(qt_meego_live_texture_to_egl_image); + return qt_meego_live_texture_to_egl_image(handle); +} + diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.h b/tools/qmeegographicssystemhelper/qmeegoruntime.h index 82fdb52..048b9be 100644 --- a/tools/qmeegographicssystemhelper/qmeegoruntime.h +++ b/tools/qmeegographicssystemhelper/qmeegoruntime.h @@ -48,13 +48,20 @@ public: static void initialize(); static Qt::HANDLE imageToEGLSharedImage(const QImage &image); - static QPixmap pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage); - static QPixmap pixmapWithGLTexture(int w, int h); + static QPixmapData* pixmapDataFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage); + static QPixmapData* pixmapDataFromEGLImage(Qt::HANDLE handle); + static QPixmapData* pixmapDataWithGLTexture(int w, int h); static bool destroyEGLSharedImage(Qt::HANDLE handle); static void updateEGLSharedImagePixmap(QPixmap *p); static void setSurfaceFixedSize(int w, int h); static void setSurfaceScaling(int x, int y, int w, int h); static void setTranslucent(bool translucent); + static Qt::HANDLE createLiveTexture(int w, int h, QImage::Format format); + static bool lockLiveTexture(Qt::HANDLE h); + static bool unlockLiveTexture(Qt::HANDLE h); + static void destroyLiveTexture(Qt::HANDLE h); + static void queryLiveTexture(Qt::HANDLE h, void **data, int *pitch); + static Qt::HANDLE liveTextureToEGLImage(Qt::HANDLE); private: static bool initialized; -- cgit v0.12 From 978416807b7e92d9317036cb4348ee172dde7d4e Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Fri, 8 Oct 2010 09:08:54 +0200 Subject: Fix memory leak in QPixmap::toSymbianRSgImage() when an error occurs. In the cases where an error occured while converting a QPixmap to a VGImage this function would return without deleting the RSgImage pointer that it created. Fix is to use a QScopedPointer instead. Also don't use q_check_ptr() since this isn't a CBase derived class. In case you are wondering why I didn't use a custom deleter here so that Close() was also called, we need to make sure that Close() is called on the RSgImage instance before calling Close() on the driver. Reviewed-by: mread --- src/openvg/qvg_symbian.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openvg/qvg_symbian.cpp b/src/openvg/qvg_symbian.cpp index ef0160c..a9625b2 100644 --- a/src/openvg/qvg_symbian.cpp +++ b/src/openvg/qvg_symbian.cpp @@ -228,7 +228,7 @@ void* QVGPixmapData::toNativeType(NativeType type) sgInfo.iSizeInPixels.SetSize(w, h); sgInfo.iUsage = ESgUsageBitOpenVgImage | ESgUsageBitOpenVgSurface; - RSgImage *sgImage = q_check_ptr(new RSgImage()); + QScopedPointer sgImage(new RSgImage()); err = sgImage->Create(sgInfo, NULL, NULL); if (err != KErrNone) { driver.Close(); @@ -239,7 +239,7 @@ void* QVGPixmapData::toNativeType(NativeType type) EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(), EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, - (EGLClientBuffer)sgImage, + (EGLClientBuffer)sgImage.data(), (EGLint*)KEglImageAttribs); if (!eglImage || eglGetError() != EGL_SUCCESS) { sgImage->Close(); @@ -261,13 +261,14 @@ void* QVGPixmapData::toNativeType(NativeType type) if (vgGetError() != VG_NO_ERROR) { sgImage->Close(); - sgImage = 0; + sgImage.reset(); } + // release stuff vgDestroyImage(dstVgImage); QEgl::eglDestroyImageKHR(QEgl::display(), eglImage); driver.Close(); - return reinterpret_cast(sgImage); + return reinterpret_cast(sgImage.take()); #endif } else if (type == QPixmapData::FbsBitmap) { CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); -- cgit v0.12