summaryrefslogtreecommitdiffstats
path: root/examples/StandardDialogs.js
diff options
context:
space:
mode:
Diffstat (limited to 'examples/StandardDialogs.js')
-rw-r--r--examples/StandardDialogs.js379
1 files changed, 379 insertions, 0 deletions
diff --git a/examples/StandardDialogs.js b/examples/StandardDialogs.js
new file mode 100644
index 0000000..f36b53c
--- /dev/null
+++ b/examples/StandardDialogs.js
@@ -0,0 +1,379 @@
+/****************************************************************************
+**
+** Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Script Generator project on Qt Labs.
+**
+** $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$
+**
+****************************************************************************/
+
+function tr(s) { return s; }
+
+
+function Dialog(parent)
+{
+ QDialog.call(this, parent);
+
+ this.errorMessageDialog = new QErrorMessage(this);
+
+ var frameStyle = QFrame.Sunken | QFrame.Panel;
+
+ this.integerLabel = new QLabel;
+ this.integerLabel.setFrameStyle(frameStyle);
+ var integerButton =
+ new QPushButton(tr("QInputDialog::get&Integer()"));
+
+ this.doubleLabel = new QLabel;
+ this.doubleLabel.setFrameStyle(frameStyle);
+ var doubleButton =
+ new QPushButton(tr("QInputDialog::get&Double()"));
+
+ this.itemLabel = new QLabel;
+ this.itemLabel.setFrameStyle(frameStyle);
+ var itemButton = new QPushButton(tr("QInputDialog::getIte&m()"));
+
+ this.textLabel = new QLabel;
+ this.textLabel.setFrameStyle(frameStyle);
+ var textButton = new QPushButton(tr("QInputDialog::get&Text()"));
+
+ this.colorLabel = new QLabel;
+ this.colorLabel.setFrameStyle(frameStyle);
+ var colorButton = new QPushButton(tr("QColorDialog::get&Color()"));
+
+ this.fontLabel = new QLabel;
+ this.fontLabel.setFrameStyle(frameStyle);
+ var fontButton = new QPushButton(tr("QFontDialog::get&Font()"));
+
+ this.directoryLabel = new QLabel;
+ this.directoryLabel.setFrameStyle(frameStyle);
+ var directoryButton =
+ new QPushButton(tr("QFileDialog::getE&xistingDirectory()"));
+
+ this.openFilePaths = ".";
+ this.openFileNameLabel = new QLabel;
+ this.openFileNameLabel.setFrameStyle(frameStyle);
+ var openFileNameButton =
+ new QPushButton(tr("QFileDialog::get&OpenFileName()"));
+
+ this.openFileNamesLabel = new QLabel;
+ this.openFileNamesLabel.setFrameStyle(frameStyle);
+ var openFileNamesButton =
+ new QPushButton(tr("QFileDialog::&getOpenFileNames()"));
+
+ this.saveFileNameLabel = new QLabel;
+ this.saveFileNameLabel.setFrameStyle(frameStyle);
+ var saveFileNameButton =
+ new QPushButton(tr("QFileDialog::get&SaveFileName()"));
+
+ this.criticalLabel = new QLabel;
+ this.criticalLabel.setFrameStyle(frameStyle);
+ var criticalButton =
+ new QPushButton(tr("QMessageBox::critica&l()"));
+
+ this.informationLabel = new QLabel;
+ this.informationLabel.setFrameStyle(frameStyle);
+ var informationButton =
+ new QPushButton(tr("QMessageBox::i&nformation()"));
+
+ this.questionLabel = new QLabel;
+ this.questionLabel.setFrameStyle(frameStyle);
+ var questionButton =
+ new QPushButton(tr("QMessageBox::&question()"));
+
+ this.warningLabel = new QLabel;
+ this.warningLabel.setFrameStyle(frameStyle);
+ var warningButton = new QPushButton(tr("QMessageBox::&warning()"));
+
+ this.errorLabel = new QLabel;
+ this.errorLabel.setFrameStyle(frameStyle);
+ var errorButton =
+ new QPushButton(tr("QErrorMessage::show&M&essage()"));
+
+ integerButton["clicked()"].connect(this, this.setInteger);
+ doubleButton["clicked()"].connect(this, this.setDouble);
+ itemButton["clicked()"].connect(this, this.setItem);
+ textButton["clicked()"].connect(this, this.setText);
+ colorButton["clicked()"].connect(this, this.setColor);
+ fontButton["clicked()"].connect(this, this.setFont);
+ directoryButton["clicked()"].connect(
+ this, this.setExistingDirectory);
+ openFileNameButton["clicked()"].connect(
+ this, this.setOpenFileName);
+ openFileNamesButton["clicked()"].connect(
+ this, this.setOpenFileNames);
+ saveFileNameButton["clicked()"].connect(
+ this, this.setSaveFileName);
+ criticalButton["clicked()"].connect(this, this.criticalMessage);
+ informationButton["clicked()"].connect(
+ this, this.informationMessage);
+ questionButton["clicked()"].connect(this, this.questionMessage);
+ warningButton["clicked()"].connect(this, this.warningMessage);
+ errorButton["clicked()"].connect(this, this.errorMessage);
+
+ this.useNative = new QCheckBox(this);
+ this.useNative.text = tr("Use native file dialog");
+ this.useNative.checked = true;
+
+ var layout = new QGridLayout;
+ layout.setColumnStretch(1, 1);
+ layout.setColumnMinimumWidth(1, 250);
+ layout.addWidget(integerButton, 0, 0);
+ layout.addWidget(this.integerLabel, 0, 1);
+ layout.addWidget(doubleButton, 1, 0);
+ layout.addWidget(this.doubleLabel, 1, 1);
+ layout.addWidget(itemButton, 2, 0);
+ layout.addWidget(this.itemLabel, 2, 1);
+ layout.addWidget(textButton, 3, 0);
+ layout.addWidget(this.textLabel, 3, 1);
+ layout.addWidget(colorButton, 4, 0);
+ layout.addWidget(this.colorLabel, 4, 1);
+ layout.addWidget(fontButton, 5, 0);
+ layout.addWidget(this.fontLabel, 5, 1);
+ layout.addWidget(directoryButton, 6, 0);
+ layout.addWidget(this.directoryLabel, 6, 1);
+ layout.addWidget(openFileNameButton, 7, 0);
+ layout.addWidget(this.openFileNameLabel, 7, 1);
+ layout.addWidget(openFileNamesButton, 8, 0);
+ layout.addWidget(this.openFileNamesLabel, 8, 1);
+ layout.addWidget(saveFileNameButton, 9, 0);
+ layout.addWidget(this.saveFileNameLabel, 9, 1);
+ layout.addWidget(criticalButton, 10, 0);
+ layout.addWidget(this.criticalLabel, 10, 1);
+ layout.addWidget(informationButton, 11, 0);
+ layout.addWidget(this.informationLabel, 11, 1);
+ layout.addWidget(questionButton, 12, 0);
+ layout.addWidget(this.questionLabel, 12, 1);
+ layout.addWidget(warningButton, 13, 0);
+ layout.addWidget(this.warningLabel, 13, 1);
+ layout.addWidget(errorButton, 14, 0);
+ layout.addWidget(this.errorLabel, 14, 1);
+ layout.addWidget(this.useNative, 15, 0);
+ this.setLayout(layout);
+
+ this.windowTitle = tr("Standard Dialogs");
+}
+
+Dialog.MESSAGE = tr("<p>Message boxes have a caption, a text, "
+ + "and any number of buttons, each with standard or custom texts."
+ + "<p>Click a button to close the message box. Pressing the Esc button "
+ + "will activate the detected escape button (if any).");
+
+Dialog.prototype = new QDialog();
+
+Dialog.prototype.setInteger = function()
+{
+ var i = QInputDialog.getInteger(this, tr("QInputDialog::getInteger()"),
+ tr("Percentage:"), 25, 0, 100, 1, Qt.WindowFlags(0));
+ if (i != null)
+ this.integerLabel.text = i;
+}
+
+Dialog.prototype.setDouble = function()
+{
+ var d = QInputDialog.getDouble(this, tr("QInputDialog::getDouble()"),
+ tr("Amount:"), 37.56, -10000, 10000, 2, Qt.WindowFlags(0));
+ if (d != null)
+ this.doubleLabel.text = d;
+}
+
+Dialog.prototype.setItem = function()
+{
+ var items = new Array(tr("Spring"), tr("Summer"), tr("Fall"), tr("Winter"));
+
+ var item = QInputDialog.getItem(this, tr("QInputDialog::getItem()"),
+ tr("Season:"), items, 0, false, Qt.WindowFlags(0));
+ if (item != null & item.length != 0)
+ this.itemLabel.text = item;
+}
+
+Dialog.prototype.setText = function()
+{
+ var text = QInputDialog.getText(this, tr("QInputDialog::getText()"),
+ tr("User name:"), QLineEdit.Normal,
+ QDir.home().dirName(), Qt.WindowFlags(0));
+ if (text != null && text.length != 0)
+ this.textLabel.text = text;
+}
+
+Dialog.prototype.setColor = function()
+{
+ var color = QColorDialog.getColor(new QColor(Qt.green), this);
+ if (color.isValid()) {
+ this.colorLabel.text = color.name();
+ this.colorLabel.palette = new QPalette(color);
+ this.colorLabel.autoFillBackground = true;
+ }
+}
+
+Dialog.prototype.setFont = function()
+{
+ var font = QFontDialog.getFont(new QFont(this.fontLabel.text), this);
+ if (font != null) {
+ this.fontLabel.text = font.key();
+ this.fontLabel.font = font;
+ }
+}
+
+Dialog.prototype.setExistingDirectory = function()
+{
+ var options = QFileDialog.DontResolveSymlinks | QFileDialog.ShowDirsOnly;
+ if (!this.useNative.checked)
+ options |= QFileDialog.DontUseNativeDialog;
+ var directory = QFileDialog.getExistingDirectory(this,
+ tr("QFileDialog::getExistingDirectory()"),
+ this.directoryLabel.text,
+ QFileDialog.Options(options));
+ if (directory.length != 0)
+ this.directoryLabel.text = directory;
+}
+
+Dialog.prototype.setOpenFileName = function()
+{
+ var options = 0;
+ if (!this.useNative.checked)
+ options |= QFileDialog.DontUseNativeDialog;
+ var selectedFilter;
+ var fileName = QFileDialog.getOpenFileName(this,
+ tr("QFileDialog::getOpenFileName()"),
+ this.openFileNameLabel.text,
+ tr("All Files (*);;Text Files (*.txt)"),
+ selectedFilter,
+ QFileDialog.Options(options));
+ if (fileName.length != 0)
+ this.openFileNameLabel.text = fileName;
+}
+
+Dialog.prototype.setOpenFileNames = function()
+{
+ var options = 0;
+ if (!this.useNative.checked)
+ options |= QFileDialog.DontUseNativeDialog;
+ var selectedFilter;
+ var files = QFileDialog.getOpenFileNames(
+ this, tr("QFileDialog::getOpenFileNames()"),
+ this.openFilesPath,
+ tr("All Files (*);;Text Files (*.txt)"),
+ selectedFilter,
+ options);
+ if (files.length != 0) {
+ this.openFilesPath = files[0];
+ this.openFileNamesLabel.text = "[" + files.join(", ") + "]";
+ }
+}
+
+Dialog.prototype.setSaveFileName = function()
+{
+ var options = 0;
+ if (!this.useNative.checked)
+ options |= QFileDialog.DontUseNativeDialog;
+ var selectedFilter;
+ var fileName = QFileDialog.getSaveFileName(this,
+ tr("QFileDialog::getSaveFileName()"),
+ this.saveFileNameLabel.text,
+ tr("All Files (*);;Text Files (*.txt)"),
+ selectedFilter,
+ options);
+ if (fileName.length != 0)
+ this.saveFileNameLabel.text = fileName;
+}
+
+Dialog.prototype.criticalMessage = function()
+{
+ var reply = QMessageBox.critical(this, tr("QMessageBox::critical()"),
+ Dialog.MESSAGE, QMessageBox.StandardButtons(QMessageBox.Abort, QMessageBox.Retry, QMessageBox.Ignore));
+ if (reply == QMessageBox.Abort)
+ this.criticalLabel.text = tr("Abort");
+ else if (reply == QMessageBox.Retry)
+ this.criticalLabel.text = tr("Retry");
+ else
+ this.criticalLabel.text = tr("Ignore");
+}
+
+Dialog.prototype.informationMessage = function()
+{
+ var reply = QMessageBox.information(this, tr("QMessageBox::information()"), Dialog.MESSAGE);
+ if (reply == QMessageBox.Ok)
+ this.informationLabel.text = tr("OK");
+ else
+ this.informationLabel.text = tr("Escape");
+}
+
+Dialog.prototype.questionMessage = function()
+{
+ var reply = QMessageBox.question(this, tr("QMessageBox::question()"),
+ Dialog.MESSAGE, QMessageBox.StandardButtons(QMessageBox.Yes, QMessageBox.No, QMessageBox.Cancel));
+ if (reply == QMessageBox.Yes)
+ this.questionLabel.text = tr("Yes");
+ else if (reply == QMessageBox.No)
+ this.questionLabel.text = tr("No");
+ else
+ this.questionLabel.text = tr("Cancel");
+}
+
+Dialog.prototype.warningMessage = function()
+{
+ var msgBox = new QMessageBox(QMessageBox.Warning, tr("QMessageBox::warning()"),
+ Dialog.MESSAGE, 0, this);
+ msgBox.addButton(tr("Save &Again"), QMessageBox.AcceptRole);
+ msgBox.addButton(tr("&Continue"), QMessageBox.RejectRole);
+ if (msgBox.exec() == QMessageBox.AcceptRole)
+ this.warningLabel.text = tr("Save Again");
+ else
+ this.warningLabel.text = tr("Continue");
+}
+
+Dialog.prototype.errorMessage = function()
+{
+ this.errorMessageDialog.showMessage(
+ tr("This dialog shows and remembers error messages. "
+ + "If the checkbox is checked (as it is by default), "
+ + "the shown message will be shown again, "
+ + "but if the user unchecks the box the message "
+ + "will not appear again if QErrorMessage::showMessage() "
+ + "is called with the same message."));
+ this.errorLabel.text = tr("If the box is unchecked, the message "
+ + "won't appear again.");
+};
+
+(function() {
+ var translatorFileName = "qt_";
+ translatorFileName += QLocale.system().name();
+ var translator = new QTranslator(qApp);
+ if (translator.load(translatorFileName, QLibraryInfo.location(QLibraryInfo.TranslationsPath)))
+ qApp.installTranslator(translator);
+
+ var dialog = new Dialog();
+ return dialog.exec();
+})();