diff options
Diffstat (limited to 'tests/manual')
12 files changed, 504 insertions, 11 deletions
diff --git a/tests/manual/dialogs/filedialogpanel.cpp b/tests/manual/dialogs/filedialogpanel.cpp index 2ca9dccf1b..dbb2e379b2 100644 --- a/tests/manual/dialogs/filedialogpanel.cpp +++ b/tests/manual/dialogs/filedialogpanel.cpp @@ -154,9 +154,11 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) , m_nameFilterDetailsVisible(new QCheckBox(tr("Name filter details visible"))) , m_resolveSymLinks(new QCheckBox(tr("Resolve symlinks"))) , m_native(new QCheckBox(tr("Use native dialog"))) + , m_customDirIcons(new QCheckBox(tr("Don't use custom directory icons"))) , m_acceptMode(createCombo(this, acceptModeComboData, sizeof(acceptModeComboData)/sizeof(ComboData))) , m_fileMode(createCombo(this, fileModeComboData, sizeof(fileModeComboData)/sizeof(ComboData))) , m_viewMode(createCombo(this, viewModeComboData, sizeof(viewModeComboData)/sizeof(ComboData))) + , m_allowedSchemes(new QLineEdit(this)) , m_defaultSuffix(new QLineEdit(this)) , m_directory(new QLineEdit(this)) , m_selectedFileName(new QLineEdit(this)) @@ -171,11 +173,13 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) optionsLayout->addRow(tr("AcceptMode:"), m_acceptMode); optionsLayout->addRow(tr("FileMode:"), m_fileMode); optionsLayout->addRow(tr("ViewMode:"), m_viewMode); + optionsLayout->addRow(tr("Allowed Schemes:"), m_allowedSchemes); optionsLayout->addRow(m_native); optionsLayout->addRow(m_confirmOverWrite); optionsLayout->addRow(m_nameFilterDetailsVisible); optionsLayout->addRow(m_resolveSymLinks); optionsLayout->addRow(m_readOnly); + optionsLayout->addRow(m_customDirIcons); // Files QGroupBox *filesGroupBox = new QGroupBox(tr("Files / Filters")); @@ -216,9 +220,13 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) row = 0; column++; addButton(tr("getOpenFileName"), buttonLayout, row, column, this, SLOT(getOpenFileName())); + addButton(tr("getOpenFileUrl"), buttonLayout, row, column, this, SLOT(getOpenFileUrl())); addButton(tr("getOpenFileNames"), buttonLayout, row, column, this, SLOT(getOpenFileNames())); + addButton(tr("getOpenFileUrls"), buttonLayout, row, column, this, SLOT(getOpenFileUrls())); addButton(tr("getSaveFileName"), buttonLayout, row, column, this, SLOT(getSaveFileName())); + addButton(tr("getSaveFileUrl"), buttonLayout, row, column, this, SLOT(getSaveFileUrl())); addButton(tr("getExistingDirectory"), buttonLayout, row, column, this, SLOT(getExistingDirectory())); + addButton(tr("getExistingDirectoryUrl"), buttonLayout, row, column, this, SLOT(getExistingDirectoryUrl())); addButton(tr("Restore defaults"), buttonLayout, row, column, this, SLOT(restoreDefaults())); // Main layout @@ -316,9 +324,16 @@ QFileDialog::Options FileDialogPanel::options() const result |= QFileDialog::DontConfirmOverwrite; if (!m_native->isChecked()) result |= QFileDialog::DontUseNativeDialog; + if (!m_customDirIcons->isChecked()) + result |= QFileDialog::DontUseCustomDirectoryIcons; return result; } +QStringList FileDialogPanel::allowedSchemes() const +{ + return m_allowedSchemes->text().simplified().split(' ', QString::SkipEmptyParts); +} + void FileDialogPanel::getOpenFileNames() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -334,6 +349,22 @@ void FileDialogPanel::getOpenFileNames() } } +void FileDialogPanel::getOpenFileUrls() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QList<QUrl> files = + QFileDialog::getOpenFileUrls(this, tr("getOpenFileNames Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (!files.isEmpty()) { + QString result; + QDebug(&result).nospace() + << "Files: " << QUrl::toStringList(files) + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getOpenFileNames"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getOpenFileName() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -349,6 +380,22 @@ void FileDialogPanel::getOpenFileName() } } +void FileDialogPanel::getOpenFileUrl() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QUrl file = + QFileDialog::getOpenFileUrl(this, tr("getOpenFileUrl Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (file.isValid()) { + QString result; + QDebug(&result).nospace() + << "File: " << file.toString() + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getOpenFileName"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getSaveFileName() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -364,6 +411,22 @@ void FileDialogPanel::getSaveFileName() } } +void FileDialogPanel::getSaveFileUrl() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QUrl file = + QFileDialog::getSaveFileUrl(this, tr("getSaveFileName Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (file.isValid()) { + QString result; + QDebug(&result).nospace() + << "File: " << file.toString() + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getSaveFileNames"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getExistingDirectory() { const QString dir = @@ -373,17 +436,29 @@ void FileDialogPanel::getExistingDirectory() QMessageBox::information(this, tr("getExistingDirectory"), QLatin1String("Directory: ") + dir, QMessageBox::Ok); } +void FileDialogPanel::getExistingDirectoryUrl() +{ + const QUrl dir = + QFileDialog::getExistingDirectoryUrl(this, tr("getExistingDirectory Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), options() | QFileDialog::ShowDirsOnly, + allowedSchemes()); + if (!dir.isEmpty()) + QMessageBox::information(this, tr("getExistingDirectory"), QLatin1String("Directory: ") + dir.toString(), QMessageBox::Ok); +} + void FileDialogPanel::restoreDefaults() { QFileDialog d; setComboBoxValue(m_acceptMode, d.acceptMode()); setComboBoxValue(m_fileMode, d.fileMode()); setComboBoxValue(m_viewMode, d.viewMode()); + m_allowedSchemes->setText(QString()); m_confirmOverWrite->setChecked(d.confirmOverwrite()); m_nameFilterDetailsVisible->setChecked(d.isNameFilterDetailsVisible()); m_resolveSymLinks->setChecked(d.resolveSymlinks()); m_readOnly->setChecked(d.isReadOnly()); m_native->setChecked(true); + m_customDirIcons->setChecked(d.testOption(QFileDialog::DontUseCustomDirectoryIcons)); m_directory->setText(QDir::homePath()); m_defaultSuffix->setText(QLatin1String("txt")); m_nameFilters->setPlainText(QLatin1String("Any files (*)\nImage files (*.png *.xpm *.jpg)\nText files (*.txt)")); diff --git a/tests/manual/dialogs/filedialogpanel.h b/tests/manual/dialogs/filedialogpanel.h index 7ee7cb3f60..ce99836467 100644 --- a/tests/manual/dialogs/filedialogpanel.h +++ b/tests/manual/dialogs/filedialogpanel.h @@ -66,9 +66,13 @@ public slots: void deleteNonModalDialog(); void deleteModalDialog(); void getOpenFileNames(); + void getOpenFileUrls(); void getOpenFileName(); + void getOpenFileUrl(); void getSaveFileName(); + void getSaveFileUrl(); void getExistingDirectory(); + void getExistingDirectoryUrl(); void accepted(); void showAcceptedResult(); void restoreDefaults(); @@ -80,6 +84,7 @@ private slots: private: QString filterString() const; QFileDialog::Options options() const; + QStringList allowedSchemes() const; void applySettings(QFileDialog *d) const; QCheckBox *m_readOnly; @@ -87,9 +92,11 @@ private: QCheckBox *m_nameFilterDetailsVisible; QCheckBox *m_resolveSymLinks; QCheckBox *m_native; + QCheckBox *m_customDirIcons; QComboBox *m_acceptMode; QComboBox *m_fileMode; QComboBox *m_viewMode; + QLineEdit *m_allowedSchemes; QLineEdit *m_defaultSuffix; QLineEdit *m_directory; QLineEdit *m_selectedFileName; diff --git a/tests/manual/dialogs/fontdialogpanel.cpp b/tests/manual/dialogs/fontdialogpanel.cpp index 2bdbb0625a..5cc899b7d6 100644 --- a/tests/manual/dialogs/fontdialogpanel.cpp +++ b/tests/manual/dialogs/fontdialogpanel.cpp @@ -67,12 +67,20 @@ FontDialogPanel::FontDialogPanel(QWidget *parent) , m_fontSizeBox(new QDoubleSpinBox) , m_noButtons(new QCheckBox(tr("Don't display OK/Cancel buttons"))) , m_dontUseNativeDialog(new QCheckBox(tr("Don't use native dialog"))) + , m_scalableFilter(new QCheckBox(tr("Filter scalable fonts"))) + , m_nonScalableFilter(new QCheckBox(tr("Filter non scalable fonts"))) + , m_monospacedFilter(new QCheckBox(tr("Filter monospaced fonts"))) + , m_proportionalFilter(new QCheckBox(tr("Filter proportional fonts"))) { // Options QGroupBox *optionsGroupBox = new QGroupBox(tr("Options"), this); QVBoxLayout *optionsLayout = new QVBoxLayout(optionsGroupBox); optionsLayout->addWidget(m_noButtons); optionsLayout->addWidget(m_dontUseNativeDialog); + optionsLayout->addWidget(m_scalableFilter); + optionsLayout->addWidget(m_nonScalableFilter); + optionsLayout->addWidget(m_monospacedFilter); + optionsLayout->addWidget(m_proportionalFilter); // Font QGroupBox *fontGroupBox = new QGroupBox(tr("Font"), this); @@ -201,6 +209,10 @@ void FontDialogPanel::applySettings(QFontDialog *d) const { d->setOption(QFontDialog::NoButtons, m_noButtons->isChecked()); d->setOption(QFontDialog::DontUseNativeDialog, m_dontUseNativeDialog->isChecked()); + d->setOption(QFontDialog::ScalableFonts, m_scalableFilter->isChecked()); + d->setOption(QFontDialog::NonScalableFonts, m_nonScalableFilter->isChecked()); + d->setOption(QFontDialog::MonospacedFonts, m_monospacedFilter->isChecked()); + d->setOption(QFontDialog::ProportionalFonts, m_proportionalFilter->isChecked()); QFont font = m_fontFamilyBox->currentFont(); font.setPointSizeF(m_fontSizeBox->value()); diff --git a/tests/manual/dialogs/fontdialogpanel.h b/tests/manual/dialogs/fontdialogpanel.h index 92f2b7313f..13e9e9f93a 100644 --- a/tests/manual/dialogs/fontdialogpanel.h +++ b/tests/manual/dialogs/fontdialogpanel.h @@ -77,6 +77,10 @@ private: QDoubleSpinBox *m_fontSizeBox; QCheckBox *m_noButtons; QCheckBox *m_dontUseNativeDialog; + QCheckBox *m_scalableFilter; + QCheckBox *m_nonScalableFilter; + QCheckBox *m_monospacedFilter; + QCheckBox *m_proportionalFilter; QPushButton *m_deleteNonModalDialogButton; QPushButton *m_deleteModalDialogButton; QString m_result; diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.cpp b/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.cpp new file mode 100644 index 0000000000..463366433c --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.cpp @@ -0,0 +1,115 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Thorbjørn Lund Martsum - tmartsum[at]gmail.com +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtWidgets/QtWidgets> + +const int rowCount = 2000; + +class TableDialog : public QDialog +{ + Q_OBJECT +public: + TableDialog() : model(rowCount, 3) { create(); } + void create() + { + resize(1000, 233); + gridLayout = new QGridLayout(this); + tableView = new QTableView(this); + + gridLayout->addWidget(tableView, 0, 0, 2, 1); + spinPrecision = new QSpinBox(this); + gridLayout->addWidget(spinPrecision, 0, 1, 1, 1); + verticalSpacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); + gridLayout->addItem(verticalSpacer, 1, 1, 1, 1); + + QString ii = QString::fromLatin1("ii"); + QStringList is; + spinPrecision->setMinimum(-1); + spinPrecision->setMaximum(rowCount + 2); + for (int u = 0; u < rowCount; ++u) { + if (u % 25 == 0) + ii += QString::fromLatin1("i"); + else + ii[ii.length() - 1] = QChar::fromLatin1('a' + (u % 25)); + ii[ii.length() - 2] = QChar::fromLatin1('i'); + is.append(ii); + } + + for (int u = 0; u < rowCount; ++u) { + QString col1; + col1 = QString::fromLatin1("Row: %1").arg(u); + model.setData(model.index(u, 0), col1); + model.setData(model.index(u, 1), is[u]); + model.setData(model.index(u, 2), is[rowCount - u -1]); + } + tableView->setModel(&model); + + tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + tableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents); + tableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents); + spinPrecision->setValue(tableView->horizontalHeader()->resizeContentsPrecision()); + connect(spinPrecision, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int))); + } // setupUi +protected slots: + void slotValueChanged(int newval); +protected: + QGridLayout *gridLayout; + QTableView *tableView; + QSpinBox *spinPrecision; + QSpacerItem *verticalSpacer; + QStandardItemModel model; +}; + +void TableDialog::slotValueChanged(int newval) +{ + tableView->horizontalHeader()->setResizeContentsPrecision(newval, true); +} + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + TableDialog d1; + d1.show(); + app.exec(); +} + +#include "testtable1.moc" diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.pro b/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.pro new file mode 100644 index 0000000000..e07f40bc2f --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/tablehorz/testtable1.pro @@ -0,0 +1,2 @@ +SOURCES = testtable1.cpp +QT += widgets diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.cpp b/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.cpp new file mode 100644 index 0000000000..027801d528 --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Thorbjørn Lund Martsum - tmartsum[at]gmail.com +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtWidgets/QtWidgets> + +const int columnCount = 1500; + +class TableDialog : public QDialog +{ + Q_OBJECT +public: + TableDialog() : model(2, columnCount) { create(); } + void create() + { + resize(1200, 400); + gridLayout = new QGridLayout(this); + tableView = new QTableView(this); + + gridLayout->addWidget(tableView, 0, 0, 2, 1); + spinPrecision = new QSpinBox(this); + gridLayout->addWidget(spinPrecision, 0, 1, 1, 1); + verticalSpacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); + gridLayout->addItem(verticalSpacer, 1, 1, 1, 1); + + QString ii = QString::fromLatin1("ii"); + QStringList is; + spinPrecision->setMinimum(-1); + spinPrecision->setMaximum(columnCount + 2); + + QFont f = QApplication::font(); + for (int u = 0; u < columnCount; ++u) { + int size = 10 + (u % 63); + f.setPixelSize(size); + QString col; + if (u % 50 < 25) + col = QChar::fromLatin1('a' + (u % 25)); + else + col = QChar::fromLatin1('A' + (u % 25)); + + int v = columnCount - u - 1; + model.setData(model.index(0, u), col); + model.setData(model.index(1, v), col); + + model.setData(model.index(0, u), f, Qt::FontRole); + model.setData(model.index(1, v), f, Qt::FontRole); + } + tableView->setModel(&model); + + for (int u = 0; u < columnCount; ++ u) + tableView->horizontalHeader()->resizeSection(u, 60); + + // Make last index in first row a bit special + f.setPixelSize(96); + model.setData(model.index(0, columnCount - 1), f, Qt::FontRole); + model.setData(model.index(0, columnCount - 1), QString::fromLatin1("qI")); + tableView->horizontalHeader()->resizeSection(columnCount - 1, 140); + + tableView->verticalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + tableView->verticalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents); + spinPrecision->setValue(tableView->verticalHeader()->resizeContentsPrecision()); + connect(spinPrecision, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int))); + } // setupUi +protected slots: + void slotValueChanged(int newval); +protected: + QGridLayout *gridLayout; + QTableView *tableView; + QSpinBox *spinPrecision; + QSpacerItem *verticalSpacer; + QStandardItemModel model; +}; + +void TableDialog::slotValueChanged(int newval) +{ + tableView->verticalHeader()->setResizeContentsPrecision(newval, true); +} + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + TableDialog d1; + d1.show(); + app.exec(); +} + +#include "testtable2.moc" diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.pro b/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.pro new file mode 100644 index 0000000000..b887fcb14b --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/tablevert/testtable2.pro @@ -0,0 +1,2 @@ +SOURCES = testtable2.cpp +QT += widgets diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.cpp b/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.cpp new file mode 100644 index 0000000000..c48d933fcd --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.cpp @@ -0,0 +1,132 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Thorbjørn Lund Martsum - tmartsum[at]gmail.com +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtWidgets/QtWidgets> + +class TreeDialog : public QDialog +{ + Q_OBJECT +public: + TreeDialog() { create(); } +protected: + void create() + { + resize(1000, 233); + gridLayout = new QGridLayout(this); + treeWidget = new QTreeWidget(this); + + gridLayout->addWidget(treeWidget, 0, 0, 2, 1); + spinPrecision = new QSpinBox(this); + gridLayout->addWidget(spinPrecision, 0, 1, 1, 1); + verticalSpacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); + gridLayout->addItem(verticalSpacer, 1, 1, 1, 1); + + QStringList itemInfo("Col1"); + itemInfo.append("Col2"); + itemInfo.append("Col3"); + itemInfo.append("Dummy"); + // Developer no. could also have been social security number og some other id. + treeWidget->setHeaderLabels(itemInfo); + + QStringList sl1("This is Root Item"); + sl1.append("i"); + QTreeWidgetItem *rootitem = new QTreeWidgetItem(treeWidget, sl1); + + QStringList sl2("This is Child1 Item"); + sl2.append("WW"); + QTreeWidgetItem *child1 = new QTreeWidgetItem(rootitem, sl2); + + QString ii = QString::fromLatin1("ii"); + QStringList is; + const int rowCount = 3000; + spinPrecision->setMinimum(-1); + spinPrecision->setMaximum(rowCount + 5); + for (int u = 0; u < rowCount; ++u) { + if (u % 25 == 0) + ii += QString::fromLatin1("i"); + else + ii[ii.length() - 1] = QChar::fromLatin1('a' + (u % 25)); + ii[ii.length() - 2] = QChar::fromLatin1('i'); + is.append(ii); + } + + for (int u = 0; u < rowCount - 2; ++u) { // -2 since we have rootitem and child1 + QString col1; + col1 = QString::fromLatin1("This is child item %1").arg(u + 2); + + QStringList sl(col1); + sl.append(is[u]); + sl.append(is[rowCount - u - 1]); + + if (u > 500) + new QTreeWidgetItem(rootitem, sl); + else + new QTreeWidgetItem(child1, sl); + } + treeWidget->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + treeWidget->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); + treeWidget->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents); + spinPrecision->setValue(treeWidget->header()->resizeContentsPrecision()); + connect(spinPrecision, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int))); + } // setupUi +protected slots: + void slotValueChanged(int newval); +protected: + QGridLayout *gridLayout; + QTreeWidget *treeWidget; + QSpinBox *spinPrecision; + QSpacerItem *verticalSpacer; +}; + +void TreeDialog::slotValueChanged(int newval) +{ + treeWidget->header()->setResizeContentsPrecision(newval, true); +} + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + TreeDialog d1; + d1.show(); + app.exec(); +} + +#include "testtree.moc" diff --git a/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.pro b/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.pro new file mode 100644 index 0000000000..c062586eac --- /dev/null +++ b/tests/manual/widgets/itemviews/autoResizePrecision/treeview/testtree.pro @@ -0,0 +1,2 @@ +SOURCES = testtree.cpp +QT += widgets diff --git a/tests/manual/widgets/itemviews/qtreeview/main.cpp b/tests/manual/widgets/itemviews/qtreeview/main.cpp index 296ba6bcbf..22b4e07f75 100644 --- a/tests/manual/widgets/itemviews/qtreeview/main.cpp +++ b/tests/manual/widgets/itemviews/qtreeview/main.cpp @@ -39,17 +39,34 @@ ** ****************************************************************************/ - -#include <QtWidgets/QFileSystemModel> -#include <QtWidgets/QtWidgets> +#include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); - QFileSystemModel *model = new QFileSystemModel; - model->setRootPath(QDir::currentPath()); - QTreeView *tree = new QTreeView(); - tree->setModel(model); - tree->show(); - app.exec(); + QFileSystemModel model; + QWidget window; + QTreeView *tree = new QTreeView(&window); + tree->setMaximumSize(1000, 600); + + QHBoxLayout *layout = new QHBoxLayout; + layout->setSizeConstraint(QLayout::SetFixedSize); + layout->addWidget(tree); + + window.setLayout(layout); + model.setRootPath(""); + tree->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); + tree->setModel(&model); + + tree->setAnimated(false); + tree->setIndentation(20); + tree->setSortingEnabled(true); + tree->header()->setStretchLastSection(false); + + window.setWindowTitle(QObject::tr("Dir View")); + tree->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + + window.show(); + + return app.exec(); } diff --git a/tests/manual/widgets/qgraphicsview/rubberband/rubberbandtest.cpp b/tests/manual/widgets/qgraphicsview/rubberband/rubberbandtest.cpp index aec2479239..bb05570f18 100644 --- a/tests/manual/widgets/qgraphicsview/rubberband/rubberbandtest.cpp +++ b/tests/manual/widgets/qgraphicsview/rubberband/rubberbandtest.cpp @@ -49,7 +49,7 @@ public: setFlags(QGraphicsItem::ItemIsSelectable); } - void paint(QPainter *painter, const QStyleOptionGraphicsItem * /* option*/, QWidget * /*widget*/) + void paint(QPainter *painter, const QStyleOptionGraphicsItem * /* option*/, QWidget * /*widget*/) Q_DECL_OVERRIDE { if (isSelected()) painter->fillRect(rect(), QColor(255, 0, 0)); @@ -68,7 +68,7 @@ public: connect(this, SIGNAL(rubberBandChanged(QRect, QPointF, QPointF)), this, SLOT(updateRubberbandInfo(QRect, QPointF, QPointF))); } protected: - void mouseMoveEvent(QMouseEvent *event) + void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE { QGraphicsView::mouseMoveEvent(event); |