diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2012-11-27 14:18:41 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-28 00:56:34 +0100 |
commit | cb961007c534b260b779ed513d33843a9dce01f4 (patch) | |
tree | d780db451451d51ab10aa114a6e01f813e32c852 /examples/tools/i18n/languagechooser.cpp | |
parent | 3d66b86cb7407201f091d16130b3da73e613cc5f (diff) |
Examples: move widgets specific "tools" examples to the correct place
examples/tools -> examples/widgets/tools
Change-Id: I8b9e23c45e07ce5cd9da8f24a9a9f7ae10b2b107
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'examples/tools/i18n/languagechooser.cpp')
-rw-r--r-- | examples/tools/i18n/languagechooser.cpp | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/examples/tools/i18n/languagechooser.cpp b/examples/tools/i18n/languagechooser.cpp deleted file mode 100644 index 0728e29547..0000000000 --- a/examples/tools/i18n/languagechooser.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtWidgets> - -#include "languagechooser.h" -#include "mainwindow.h" - -#ifdef Q_WS_MAC -QT_BEGIN_NAMESPACE -extern void qt_mac_set_menubar_merge(bool merge); -QT_END_NAMESPACE -#endif - -LanguageChooser::LanguageChooser(QWidget *parent) - : QDialog(parent, Qt::WindowStaysOnTopHint) -{ - groupBox = new QGroupBox("Languages"); - - QGridLayout *groupBoxLayout = new QGridLayout; - - QStringList qmFiles = findQmFiles(); - for (int i = 0; i < qmFiles.size(); ++i) { - QCheckBox *checkBox = new QCheckBox(languageName(qmFiles[i])); - qmFileForCheckBoxMap.insert(checkBox, qmFiles[i]); - connect(checkBox, SIGNAL(toggled(bool)), this, SLOT(checkBoxToggled())); - groupBoxLayout->addWidget(checkBox, i / 2, i % 2); - } - groupBox->setLayout(groupBoxLayout); - - buttonBox = new QDialogButtonBox; - - showAllButton = buttonBox->addButton("Show All", - QDialogButtonBox::ActionRole); - hideAllButton = buttonBox->addButton("Hide All", - QDialogButtonBox::ActionRole); - - connect(showAllButton, SIGNAL(clicked()), this, SLOT(showAll())); - connect(hideAllButton, SIGNAL(clicked()), this, SLOT(hideAll())); - - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(groupBox); - mainLayout->addWidget(buttonBox); - setLayout(mainLayout); - -#ifdef Q_WS_MAC - qt_mac_set_menubar_merge(false); -#endif - - setWindowTitle("I18N"); -} - -bool LanguageChooser::eventFilter(QObject *object, QEvent *event) -{ - if (event->type() == QEvent::Close) { - MainWindow *window = qobject_cast<MainWindow *>(object); - if (window) { - QCheckBox *checkBox = mainWindowForCheckBoxMap.key(window); - if (checkBox) - checkBox->setChecked(false); - } - } - return QWidget::eventFilter(object, event); -} - -void LanguageChooser::closeEvent(QCloseEvent * /* event */) -{ - qApp->quit(); -} - -void LanguageChooser::checkBoxToggled() -{ - QCheckBox *checkBox = qobject_cast<QCheckBox *>(sender()); - MainWindow *window = mainWindowForCheckBoxMap[checkBox]; - if (!window) { - QTranslator translator; - translator.load(qmFileForCheckBoxMap[checkBox]); - qApp->installTranslator(&translator); - - window = new MainWindow; - window->setPalette(colorForLanguage(checkBox->text())); - - window->installEventFilter(this); - mainWindowForCheckBoxMap.insert(checkBox, window); - } - window->setVisible(checkBox->isChecked()); -} - -void LanguageChooser::showAll() -{ - foreach (QCheckBox *checkBox, qmFileForCheckBoxMap.keys()) - checkBox->setChecked(true); -} - -void LanguageChooser::hideAll() -{ - foreach (QCheckBox *checkBox, qmFileForCheckBoxMap.keys()) - checkBox->setChecked(false); -} - -QStringList LanguageChooser::findQmFiles() -{ - QDir dir(":/translations"); - QStringList fileNames = dir.entryList(QStringList("*.qm"), QDir::Files, - QDir::Name); - QMutableStringListIterator i(fileNames); - while (i.hasNext()) { - i.next(); - i.setValue(dir.filePath(i.value())); - } - return fileNames; -} - -QString LanguageChooser::languageName(const QString &qmFile) -{ - QTranslator translator; - translator.load(qmFile); - - return translator.translate("MainWindow", "English"); -} - -QColor LanguageChooser::colorForLanguage(const QString &language) -{ - uint hashValue = qHash(language); - int red = 156 + (hashValue & 0x3F); - int green = 156 + ((hashValue >> 6) & 0x3F); - int blue = 156 + ((hashValue >> 12) & 0x3F); - return QColor(red, green, blue); -} |