diff options
Diffstat (limited to 'src/widgets/dialogs')
27 files changed, 295 insertions, 225 deletions
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp index f3b198fdc2..896baed6c5 100644 --- a/src/widgets/dialogs/qcolordialog.cpp +++ b/src/widgets/dialogs/qcolordialog.cpp @@ -119,6 +119,7 @@ public: void retranslateStrings(); void _q_addCustom(); + void _q_setCustom(int index, QRgb color); void _q_newHsv(int h, int s, int v); void _q_newColorTypedIn(QRgb rgb); @@ -134,7 +135,7 @@ public: bool handleColorPickingMouseButtonRelease(QMouseEvent *e); bool handleColorPickingKeyPress(QKeyEvent *e); - bool canBeNativeDialog() const Q_DECL_OVERRIDE; + bool canBeNativeDialog() const override; QWellArray *custom; QWellArray *standard; @@ -167,8 +168,8 @@ public: #endif private: - virtual void initHelper(QPlatformDialogHelper *h) Q_DECL_OVERRIDE; - virtual void helperPrepareShow(QPlatformDialogHelper *h) Q_DECL_OVERRIDE; + virtual void initHelper(QPlatformDialogHelper *h) override; + virtual void helperPrepareShow(QPlatformDialogHelper *h) override; }; //////////// QWellArray BEGIN @@ -192,7 +193,7 @@ public: virtual void setCurrent(int row, int col); virtual void setSelected(int row, int col); - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize sizeHint() const override; inline int cellWidth() const { return cellw; } @@ -237,17 +238,18 @@ public: signals: void selected(int row, int col); void currentChanged(int row, int col); + void colorChanged(int index, QRgb color); protected: virtual void paintCell(QPainter *, int row, int col, const QRect&); virtual void paintCellContents(QPainter *, int row, int col, const QRect&); - void mousePressEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE; - void focusInEvent(QFocusEvent*) Q_DECL_OVERRIDE; - void focusOutEvent(QFocusEvent*) Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE; + void mousePressEvent(QMouseEvent*) override; + void mouseReleaseEvent(QMouseEvent*) override; + void keyPressEvent(QKeyEvent*) override; + void focusInEvent(QFocusEvent*) override; + void focusOutEvent(QFocusEvent*) override; + void paintEvent(QPaintEvent *) override; private: Q_DISABLE_COPY(QWellArray) @@ -495,7 +497,7 @@ class QColorPickingEventFilter : public QObject { public: explicit QColorPickingEventFilter(QColorDialogPrivate *dp, QObject *parent = 0) : QObject(parent), m_dp(dp) {} - bool eventFilter(QObject *, QEvent *event) Q_DECL_OVERRIDE + bool eventFilter(QObject *, QEvent *event) override { switch (event->type()) { case QEvent::MouseMove: @@ -581,24 +583,24 @@ namespace { class QColorWell : public QWellArray { public: - QColorWell(QWidget *parent, int r, int c, QRgb *vals) + QColorWell(QWidget *parent, int r, int c, const QRgb *vals) :QWellArray(r, c, parent), values(vals), mousePressed(false), oldCurrent(-1, -1) { setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); } protected: - void paintCellContents(QPainter *, int row, int col, const QRect&) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE; + void paintCellContents(QPainter *, int row, int col, const QRect&) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseMoveEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; #ifndef QT_NO_DRAGANDDROP - void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE; - void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE; - void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE; - void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE; + void dragEnterEvent(QDragEnterEvent *e) override; + void dragLeaveEvent(QDragLeaveEvent *e) override; + void dragMoveEvent(QDragMoveEvent *e) override; + void dropEvent(QDropEvent *e) override; #endif private: - QRgb *values; + const QRgb *values; bool mousePressed; QPoint pressPos; QPoint oldCurrent; @@ -675,8 +677,7 @@ void QColorWell::dropEvent(QDropEvent *e) QColor col = qvariant_cast<QColor>(e->mimeData()->colorData()); if (col.isValid()) { int i = rowAt(e->pos().y()) + columnAt(e->pos().x()) * numRows(); - values[i] = col.rgb(); - update(); + emit colorChanged(i, col.rgb()); e->accept(); } else { e->ignore(); @@ -708,11 +709,11 @@ signals: void newCol(int h, int s); protected: - QSize sizeHint() const Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE; + QSize sizeHint() const override; + void paintEvent(QPaintEvent*) override; + void mouseMoveEvent(QMouseEvent *) override; + void mousePressEvent(QMouseEvent *) override; + void resizeEvent(QResizeEvent *) override; private: int hue; @@ -745,9 +746,9 @@ signals: void newHsv(int h, int s, int v); protected: - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent*) override; + void mouseMoveEvent(QMouseEvent *) override; + void mousePressEvent(QMouseEvent *) override; private: enum { foff = 3, coff = 4 }; //frame and contents offset @@ -1067,14 +1068,14 @@ signals: void colorDropped(QRgb); protected: - void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseMoveEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; #ifndef QT_NO_DRAGANDDROP - void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE; - void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE; - void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE; + void dragEnterEvent(QDragEnterEvent *e) override; + void dragLeaveEvent(QDragLeaveEvent *e) override; + void dropEvent(QDropEvent *e) override; #endif private: @@ -1560,8 +1561,7 @@ bool QColorDialogPrivate::selectColor(const QColor &col) QColor QColorDialogPrivate::grabScreenColor(const QPoint &p) { const QDesktopWidget *desktop = QApplication::desktop(); - const QPixmap pixmap = QGuiApplication::screens().at(desktop->screenNumber())->grabWindow(desktop->winId(), - p.x(), p.y(), 1, 1); + const QPixmap pixmap = QGuiApplication::primaryScreen()->grabWindow(desktop->winId(), p.x(), p.y(), 1, 1); QImage i = pixmap.toImage(); return i.pixel(0, 0); } @@ -1734,6 +1734,13 @@ void QColorDialogPrivate::initWidgets() q->connect(custom, SIGNAL(selected(int,int)), SLOT(_q_newCustom(int,int))); q->connect(custom, SIGNAL(currentChanged(int,int)), SLOT(_q_nextCustom(int,int))); + + q->connect(custom, &QWellArray::colorChanged, [=] (int index, QRgb color) { + QColorDialogOptions::setCustomColor(index, color); + if (custom) + custom->update(); + }); + lblCustomColors = new QLabel(q); #ifndef QT_NO_SHORTCUT lblCustomColors->setBuddy(custom); diff --git a/src/widgets/dialogs/qcolordialog.h b/src/widgets/dialogs/qcolordialog.h index a27cfaf953..6451ff9bde 100644 --- a/src/widgets/dialogs/qcolordialog.h +++ b/src/widgets/dialogs/qcolordialog.h @@ -68,8 +68,8 @@ public: Q_DECLARE_FLAGS(ColorDialogOptions, ColorDialogOption) - explicit QColorDialog(QWidget *parent = Q_NULLPTR); - explicit QColorDialog(const QColor &initial, QWidget *parent = Q_NULLPTR); + explicit QColorDialog(QWidget *parent = nullptr); + explicit QColorDialog(const QColor &initial, QWidget *parent = nullptr); ~QColorDialog(); void setCurrentColor(const QColor &color); @@ -85,15 +85,15 @@ public: using QDialog::open; void open(QObject *receiver, const char *member); - void setVisible(bool visible) Q_DECL_OVERRIDE; + void setVisible(bool visible) override; static QColor getColor(const QColor &initial = Qt::white, - QWidget *parent = Q_NULLPTR, + QWidget *parent = nullptr, const QString &title = QString(), ColorDialogOptions options = ColorDialogOptions()); // obsolete - static QRgb getRgba(QRgb rgba = 0xffffffff, bool *ok = Q_NULLPTR, QWidget *parent = Q_NULLPTR); + static QRgb getRgba(QRgb rgba = 0xffffffff, bool *ok = nullptr, QWidget *parent = nullptr); static int customCount(); static QColor customColor(int index); @@ -106,8 +106,8 @@ Q_SIGNALS: void colorSelected(const QColor &color); protected: - void changeEvent(QEvent *event) Q_DECL_OVERRIDE; - void done(int result) Q_DECL_OVERRIDE; + void changeEvent(QEvent *event) override; + void done(int result) override; private: Q_DISABLE_COPY(QColorDialog) diff --git a/src/widgets/dialogs/qdialog.h b/src/widgets/dialogs/qdialog.h index 72250172d3..7f267dd939 100644 --- a/src/widgets/dialogs/qdialog.h +++ b/src/widgets/dialogs/qdialog.h @@ -60,7 +60,7 @@ class Q_WIDGETS_EXPORT QDialog : public QWidget Q_PROPERTY(bool modal READ isModal WRITE setModal) public: - explicit QDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags()); + explicit QDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); ~QDialog(); enum DialogCode { Rejected, Accepted }; diff --git a/src/widgets/dialogs/qdialog_p.h b/src/widgets/dialogs/qdialog_p.h index 2ed414bd45..99fff08e65 100644 --- a/src/widgets/dialogs/qdialog_p.h +++ b/src/widgets/dialogs/qdialog_p.h @@ -143,7 +143,7 @@ public: T *operator->() const Q_DECL_NOTHROW { return get(); } T *get() const Q_DECL_NOTHROW { return o; } T &operator*() const { return *get(); } - operator RestrictedBool() const Q_DECL_NOTHROW { return o ? &internal::func : Q_NULLPTR; } + operator RestrictedBool() const Q_DECL_NOTHROW { return o ? &internal::func : nullptr; } bool operator!() const Q_DECL_NOTHROW { return !o; } private: Q_DISABLE_COPY(QAutoPointer); diff --git a/src/widgets/dialogs/qerrormessage.cpp b/src/widgets/dialogs/qerrormessage.cpp index 39035b743d..fd68f19680 100644 --- a/src/widgets/dialogs/qerrormessage.cpp +++ b/src/widgets/dialogs/qerrormessage.cpp @@ -95,8 +95,8 @@ public: QErrorMessageTextView(QWidget *parent) : QTextEdit(parent) { setReadOnly(true); } - virtual QSize minimumSizeHint() const Q_DECL_OVERRIDE; - virtual QSize sizeHint() const Q_DECL_OVERRIDE; + virtual QSize minimumSizeHint() const override; + virtual QSize sizeHint() const override; }; } // unnamed namespace diff --git a/src/widgets/dialogs/qerrormessage.h b/src/widgets/dialogs/qerrormessage.h index 4cb1fad845..220694e54e 100644 --- a/src/widgets/dialogs/qerrormessage.h +++ b/src/widgets/dialogs/qerrormessage.h @@ -55,7 +55,7 @@ class Q_WIDGETS_EXPORT QErrorMessage: public QDialog Q_OBJECT Q_DECLARE_PRIVATE(QErrorMessage) public: - explicit QErrorMessage(QWidget* parent = Q_NULLPTR); + explicit QErrorMessage(QWidget* parent = nullptr); ~QErrorMessage(); static QErrorMessage * qtHandler(); @@ -65,8 +65,8 @@ public Q_SLOTS: void showMessage(const QString &message, const QString &type); protected: - void done(int) Q_DECL_OVERRIDE; - void changeEvent(QEvent *e) Q_DECL_OVERRIDE; + void done(int) override; + void changeEvent(QEvent *e) override; private: Q_DISABLE_COPY(QErrorMessage) diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index cb2c534b24..3d91bdef34 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -1994,7 +1994,7 @@ QFileIconProvider *QFileDialog::iconProvider() const { Q_D(const QFileDialog); if (!d->model) - return Q_NULLPTR; + return nullptr; return d->model->iconProvider(); } @@ -2953,10 +2953,10 @@ void QFileDialogPrivate::createWidgets() qFileDialogUi->treeView->setModel(model); QHeaderView *treeHeader = qFileDialogUi->treeView->header(); QFontMetrics fm(q->font()); - treeHeader->resizeSection(0, fm.width(QLatin1String("wwwwwwwwwwwwwwwwwwwwwwwwww"))); - treeHeader->resizeSection(1, fm.width(QLatin1String("128.88 GB"))); - treeHeader->resizeSection(2, fm.width(QLatin1String("mp3Folder"))); - treeHeader->resizeSection(3, fm.width(QLatin1String("10/29/81 02:02PM"))); + treeHeader->resizeSection(0, fm.horizontalAdvance(QLatin1String("wwwwwwwwwwwwwwwwwwwwwwwwww"))); + treeHeader->resizeSection(1, fm.horizontalAdvance(QLatin1String("128.88 GB"))); + treeHeader->resizeSection(2, fm.horizontalAdvance(QLatin1String("mp3Folder"))); + treeHeader->resizeSection(3, fm.horizontalAdvance(QLatin1String("10/29/81 02:02PM"))); treeHeader->setContextMenuPolicy(Qt::ActionsContextMenu); QActionGroup *showActionGroup = new QActionGroup(q); @@ -3624,7 +3624,7 @@ void QFileDialogPrivate::_q_enterDirectory(const QModelIndex &index) } } else { // Do not accept when shift-clicking to multi-select a file in environments with single-click-activation (KDE) - if (!q->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, Q_NULLPTR, qFileDialogUi->treeView) + if (!q->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, nullptr, qFileDialogUi->treeView) || q->fileMode() != QFileDialog::ExistingFiles || !(QGuiApplication::keyboardModifiers() & Qt::CTRL)) { q->accept(); } diff --git a/src/widgets/dialogs/qfiledialog.h b/src/widgets/dialogs/qfiledialog.h index b9092e036d..1cbd690f24 100644 --- a/src/widgets/dialogs/qfiledialog.h +++ b/src/widgets/dialogs/qfiledialog.h @@ -98,7 +98,7 @@ public: Q_FLAG(Options) QFileDialog(QWidget *parent, Qt::WindowFlags f); - explicit QFileDialog(QWidget *parent = Q_NULLPTR, + explicit QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString()); @@ -190,7 +190,7 @@ public: using QDialog::open; void open(QObject *receiver, const char *member); - void setVisible(bool visible) Q_DECL_OVERRIDE; + void setVisible(bool visible) override; Q_SIGNALS: void fileSelected(const QString &file); @@ -207,68 +207,68 @@ Q_SIGNALS: public: - static QString getOpenFileName(QWidget *parent = Q_NULLPTR, + static QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options()); - static QUrl getOpenFileUrl(QWidget *parent = Q_NULLPTR, + static QUrl getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options(), const QStringList &supportedSchemes = QStringList()); - static QString getSaveFileName(QWidget *parent = Q_NULLPTR, + static QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options()); - static QUrl getSaveFileUrl(QWidget *parent = Q_NULLPTR, + static QUrl getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options(), const QStringList &supportedSchemes = QStringList()); - static QString getExistingDirectory(QWidget *parent = Q_NULLPTR, + static QString getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnly); - static QUrl getExistingDirectoryUrl(QWidget *parent = Q_NULLPTR, + static QUrl getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList()); - static QStringList getOpenFileNames(QWidget *parent = Q_NULLPTR, + static QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options()); - static QList<QUrl> getOpenFileUrls(QWidget *parent = Q_NULLPTR, + static QList<QUrl> getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), - QString *selectedFilter = Q_NULLPTR, + QString *selectedFilter = nullptr, Options options = Options(), const QStringList &supportedSchemes = QStringList()); protected: QFileDialog(const QFileDialogArgs &args); - void done(int result) Q_DECL_OVERRIDE; - void accept() Q_DECL_OVERRIDE; - void changeEvent(QEvent *e) Q_DECL_OVERRIDE; + void done(int result) override; + void accept() override; + void changeEvent(QEvent *e) override; private: Q_DECLARE_PRIVATE(QFileDialog) diff --git a/src/widgets/dialogs/qfiledialog_p.h b/src/widgets/dialogs/qfiledialog_p.h index 371826eccc..17290381d3 100644 --- a/src/widgets/dialogs/qfiledialog_p.h +++ b/src/widgets/dialogs/qfiledialog_p.h @@ -254,7 +254,7 @@ public: // setVisible_sys returns true if it ends up showing a native // dialog. Returning false means that a non-native dialog must be // used instead. - bool canBeNativeDialog() const Q_DECL_OVERRIDE; + bool canBeNativeDialog() const override; inline bool usingWidgets() const; inline void setDirectory_sys(const QUrl &directory); @@ -286,9 +286,9 @@ public: ~QFileDialogPrivate(); private: - virtual void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE; - virtual void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE; - virtual void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) Q_DECL_OVERRIDE; + virtual void initHelper(QPlatformDialogHelper *) override; + virtual void helperPrepareShow(QPlatformDialogHelper *) override; + virtual void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) override; Q_DISABLE_COPY(QFileDialogPrivate) }; @@ -298,7 +298,7 @@ class QFileDialogLineEdit : public QLineEdit public: QFileDialogLineEdit(QWidget *parent = 0) : QLineEdit(parent), d_ptr(0){} void setFileDialogPrivate(QFileDialogPrivate *d_pointer) {d_ptr = d_pointer; } - void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE; + void keyPressEvent(QKeyEvent *e) override; bool hideOnEsc; private: QFileDialogPrivate *d_ptr; @@ -309,10 +309,10 @@ class QFileDialogComboBox : public QComboBox public: QFileDialogComboBox(QWidget *parent = 0) : QComboBox(parent), urlModel(0) {} void setFileDialogPrivate(QFileDialogPrivate *d_pointer); - void showPopup() Q_DECL_OVERRIDE; + void showPopup() override; void setHistory(const QStringList &paths); QStringList history() const { return m_history; } - void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *) override; private: QUrlModel *urlModel; @@ -325,9 +325,9 @@ class QFileDialogListView : public QListView public: QFileDialogListView(QWidget *parent = 0); void setFileDialogPrivate(QFileDialogPrivate *d_pointer); - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize sizeHint() const override; protected: - void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE; + void keyPressEvent(QKeyEvent *e) override; private: QFileDialogPrivate *d_ptr; }; @@ -337,10 +337,10 @@ class QFileDialogTreeView : public QTreeView public: QFileDialogTreeView(QWidget *parent); void setFileDialogPrivate(QFileDialogPrivate *d_pointer); - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize sizeHint() const override; protected: - void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE; + void keyPressEvent(QKeyEvent *e) override; private: QFileDialogPrivate *d_ptr; }; diff --git a/src/widgets/dialogs/qfileinfogatherer_p.h b/src/widgets/dialogs/qfileinfogatherer_p.h index 0cf2ed1f58..cc82f42850 100644 --- a/src/widgets/dialogs/qfileinfogatherer_p.h +++ b/src/widgets/dialogs/qfileinfogatherer_p.h @@ -167,6 +167,13 @@ public: explicit QFileInfoGatherer(QObject *parent = 0); ~QFileInfoGatherer(); +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) + QStringList watchedFiles() const { return watcher->files(); } + QStringList watchedDirectories() const { return watcher->directories(); } + void watchPaths(const QStringList &paths) { watcher->addPaths(paths); } + void unwatchPaths(const QStringList &paths) { watcher->removePaths(paths); } +#endif // filesystemwatcher && Q_OS_WIN + // only callable from this->thread(): void clear(); void removePath(const QString &path); @@ -186,7 +193,7 @@ private Q_SLOTS: void driveRemoved(); private: - void run() Q_DECL_OVERRIDE; + void run() override; // called by run(): void getFileInfos(const QString &path, const QStringList &files); void fetch(const QFileInfo &info, QElapsedTimer &base, bool &firstTime, QVector<QPair<QString, QFileInfo> > &updatedFiles, const QString &path); diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp index 14ac6ad31b..33b8b51216 100644 --- a/src/widgets/dialogs/qfilesystemmodel.cpp +++ b/src/widgets/dialogs/qfilesystemmodel.cpp @@ -207,14 +207,17 @@ bool QFileSystemModel::remove(const QModelIndex &aindex) const QString path = d->filePath(aindex); const QFileInfo fileInfo(path); +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) + // QTBUG-65683: Remove file system watchers prior to deletion to prevent + // failure due to locked files on Windows. + const QStringList watchedPaths = d->unwatchPathsAt(aindex); +#endif // filesystemwatcher && Q_OS_WIN const bool success = (fileInfo.isFile() || fileInfo.isSymLink()) ? QFile::remove(path) : QDir(path).removeRecursively(); -#ifndef QT_NO_FILESYSTEMWATCHER - if (success) { - QFileSystemModelPrivate * d = const_cast<QFileSystemModelPrivate*>(d_func()); - d->fileInfoGatherer.removePath(path); - } -#endif +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) + if (!success) + d->watchPaths(watchedPaths); +#endif // filesystemwatcher && Q_OS_WIN return success; } @@ -851,6 +854,20 @@ QIcon QFileSystemModelPrivate::icon(const QModelIndex &index) const return node(index)->icon(); } +static void displayRenameFailedMessage(const QString &newName) +{ +#if QT_CONFIG(messagebox) + const QString message = + QFileSystemModel::tr("<b>The name \"%1\" cannot be used.</b>" + "<p>Try using another name, with fewer characters or no punctuation marks.") + .arg(newName); + QMessageBox::information(nullptr, QFileSystemModel::tr("Invalid filename"), + message, QMessageBox::Ok); +#else + Q_UNUSED(newName) +#endif // QT_CONFIG(messagebox) +} + /*! \reimp */ @@ -871,15 +888,21 @@ bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, in const QString parentPath = filePath(parent(idx)); - if (newName.isEmpty() - || QDir::toNativeSeparators(newName).contains(QDir::separator()) - || !QDir(parentPath).rename(oldName, newName)) { -#if QT_CONFIG(messagebox) - QMessageBox::information(0, QFileSystemModel::tr("Invalid filename"), - QFileSystemModel::tr("<b>The name \"%1\" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.") - .arg(newName), - QMessageBox::Ok); -#endif // QT_CONFIG(messagebox) + if (newName.isEmpty() || QDir::toNativeSeparators(newName).contains(QDir::separator())) { + displayRenameFailedMessage(newName); + return false; + } + +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) + // QTBUG-65683: Remove file system watchers prior to renaming to prevent + // failure due to locked files on Windows. + const QStringList watchedPaths = d->unwatchPathsAt(idx); +#endif // filesystemwatcher && Q_OS_WIN + if (!QDir(parentPath).rename(oldName, newName)) { +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) + d->watchPaths(watchedPaths); +#endif + displayRenameFailedMessage(newName); return false; } else { /* @@ -1882,6 +1905,46 @@ void QFileSystemModelPrivate::_q_resolvedName(const QString &fileName, const QSt resolvedSymLinks[fileName] = resolvedName; } +#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) +// Remove file system watchers at/below the index and return a list of previously +// watched files. This should be called prior to operations like rename/remove +// which might fail due to watchers on platforms like Windows. The watchers +// should be restored on failure. +QStringList QFileSystemModelPrivate::unwatchPathsAt(const QModelIndex &index) +{ + const QFileSystemModelPrivate::QFileSystemNode *indexNode = node(index); + if (indexNode == nullptr) + return QStringList(); + const Qt::CaseSensitivity caseSensitivity = indexNode->caseSensitive() + ? Qt::CaseSensitive : Qt::CaseInsensitive; + const QString path = indexNode->fileInfo().absoluteFilePath(); + + QStringList result; + const auto filter = [path, caseSensitivity] (const QString &watchedPath) + { + const int pathSize = path.size(); + if (pathSize == watchedPath.size()) { + return path.compare(watchedPath, caseSensitivity) == 0; + } else if (watchedPath.size() > pathSize) { + return watchedPath.at(pathSize) == QLatin1Char('/') + && watchedPath.startsWith(path, caseSensitivity); + } + return false; + }; + + const QStringList &watchedFiles = fileInfoGatherer.watchedFiles(); + std::copy_if(watchedFiles.cbegin(), watchedFiles.cend(), + std::back_inserter(result), filter); + + const QStringList &watchedDirectories = fileInfoGatherer.watchedDirectories(); + std::copy_if(watchedDirectories.cbegin(), watchedDirectories.cend(), + std::back_inserter(result), filter); + + fileInfoGatherer.unwatchPaths(result); + return result; +} +#endif // filesystemwatcher && Q_OS_WIN + /*! \internal */ diff --git a/src/widgets/dialogs/qfilesystemmodel.h b/src/widgets/dialogs/qfilesystemmodel.h index a5f23c9220..c2c8b8818e 100644 --- a/src/widgets/dialogs/qfilesystemmodel.h +++ b/src/widgets/dialogs/qfilesystemmodel.h @@ -75,36 +75,36 @@ public: FilePermissions = Qt::UserRole + 3 }; - explicit QFileSystemModel(QObject *parent = Q_NULLPTR); + explicit QFileSystemModel(QObject *parent = nullptr); ~QFileSystemModel(); - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex index(const QString &path, int column = 0) const; - QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE; + QModelIndex parent(const QModelIndex &child) const override; using QObject::parent; - QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE; - bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; - bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE; - void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE; + QModelIndex sibling(int row, int column, const QModelIndex &idx) const override; + bool hasChildren(const QModelIndex &parent = QModelIndex()) const override; + bool canFetchMore(const QModelIndex &parent) const override; + void fetchMore(const QModelIndex &parent) override; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; - int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant myComputer(int role = Qt::DisplayRole) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; - Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE; + Qt::ItemFlags flags(const QModelIndex &index) const override; - void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE; + void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; - QStringList mimeTypes() const Q_DECL_OVERRIDE; - QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE; + QStringList mimeTypes() const override; + QMimeData *mimeData(const QModelIndexList &indexes) const override; bool dropMimeData(const QMimeData *data, Qt::DropAction action, - int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE; - Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE; + int row, int column, const QModelIndex &parent) override; + Qt::DropActions supportedDropActions() const override; // QFileSystemModel specific API QModelIndex setRootPath(const QString &path); @@ -144,9 +144,9 @@ public: bool remove(const QModelIndex &index); protected: - QFileSystemModel(QFileSystemModelPrivate &, QObject *parent = Q_NULLPTR); - void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE; - bool event(QEvent *event) Q_DECL_OVERRIDE; + QFileSystemModel(QFileSystemModelPrivate &, QObject *parent = nullptr); + void timerEvent(QTimerEvent *event) override; + bool event(QEvent *event) override; private: Q_DECLARE_PRIVATE(QFileSystemModel) diff --git a/src/widgets/dialogs/qfilesystemmodel_p.h b/src/widgets/dialogs/qfilesystemmodel_p.h index e8bae4f659..a2a02e2d41 100644 --- a/src/widgets/dialogs/qfilesystemmodel_p.h +++ b/src/widgets/dialogs/qfilesystemmodel_p.h @@ -297,9 +297,13 @@ public: static int naturalCompare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs); QDir rootDir; -#ifndef QT_NO_FILESYSTEMWATCHER +#if QT_CONFIG(filesystemwatcher) +# ifdef Q_OS_WIN + QStringList unwatchPathsAt(const QModelIndex &); + void watchPaths(const QStringList &paths) { fileInfoGatherer.watchPaths(paths); } +# endif // Q_OS_WIN QFileInfoGatherer fileInfoGatherer; -#endif +#endif // filesystemwatcher QTimer delayedSortTimer; bool forceSort; int sortColumn; diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp index 587e31d8c5..5f912c582f 100644 --- a/src/widgets/dialogs/qfontdialog.cpp +++ b/src/widgets/dialogs/qfontdialog.cpp @@ -84,7 +84,7 @@ public: int row = QListView::currentIndex().row(); return row < 0 ? QString() : model()->stringList().at(row); } - void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) Q_DECL_OVERRIDE { + void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override { QListView::currentChanged(current, previous); if (current.isValid()) emit highlighted(current.row()); diff --git a/src/widgets/dialogs/qfontdialog.h b/src/widgets/dialogs/qfontdialog.h index 3fb3997b85..ae1320e779 100644 --- a/src/widgets/dialogs/qfontdialog.h +++ b/src/widgets/dialogs/qfontdialog.h @@ -72,8 +72,8 @@ public: Q_DECLARE_FLAGS(FontDialogOptions, FontDialogOption) - explicit QFontDialog(QWidget *parent = Q_NULLPTR); - explicit QFontDialog(const QFont &initial, QWidget *parent = Q_NULLPTR); + explicit QFontDialog(QWidget *parent = nullptr); + explicit QFontDialog(const QFont &initial, QWidget *parent = nullptr); ~QFontDialog(); void setCurrentFont(const QFont &font); @@ -89,10 +89,10 @@ public: using QDialog::open; void open(QObject *receiver, const char *member); - void setVisible(bool visible) Q_DECL_OVERRIDE; + void setVisible(bool visible) override; - static QFont getFont(bool *ok, QWidget *parent = Q_NULLPTR); - static QFont getFont(bool *ok, const QFont &initial, QWidget *parent = Q_NULLPTR, const QString &title = QString(), + static QFont getFont(bool *ok, QWidget *parent = nullptr); + static QFont getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), FontDialogOptions options = FontDialogOptions()); Q_SIGNALS: @@ -100,9 +100,9 @@ Q_SIGNALS: void fontSelected(const QFont &font); protected: - void changeEvent(QEvent *event) Q_DECL_OVERRIDE; - void done(int result) Q_DECL_OVERRIDE; - bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE; + void changeEvent(QEvent *event) override; + void done(int result) override; + bool eventFilter(QObject *object, QEvent *event) override; private: Q_DISABLE_COPY(QFontDialog) diff --git a/src/widgets/dialogs/qfontdialog_p.h b/src/widgets/dialogs/qfontdialog_p.h index ae923d94ed..202247a3b4 100644 --- a/src/widgets/dialogs/qfontdialog_p.h +++ b/src/widgets/dialogs/qfontdialog_p.h @@ -141,12 +141,12 @@ public: QPointer<QObject> receiverToDisconnectOnClose; QByteArray memberToDisconnectOnClose; - bool canBeNativeDialog() const Q_DECL_OVERRIDE; + bool canBeNativeDialog() const override; void _q_runNativeAppModalPanel(); private: - virtual void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE; - virtual void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE; + virtual void initHelper(QPlatformDialogHelper *) override; + virtual void helperPrepareShow(QPlatformDialogHelper *) override; }; QT_END_NAMESPACE diff --git a/src/widgets/dialogs/qfscompleter_p.h b/src/widgets/dialogs/qfscompleter_p.h index ce0612f293..3b829d4a52 100644 --- a/src/widgets/dialogs/qfscompleter_p.h +++ b/src/widgets/dialogs/qfscompleter_p.h @@ -71,8 +71,8 @@ public: setCaseSensitivity(Qt::CaseInsensitive); #endif } - QString pathFromIndex(const QModelIndex &index) const Q_DECL_OVERRIDE; - QStringList splitPath(const QString& path) const Q_DECL_OVERRIDE; + QString pathFromIndex(const QModelIndex &index) const override; + QStringList splitPath(const QString& path) const override; QAbstractProxyModel *proxyModel; QFileSystemModel *sourceModel; diff --git a/src/widgets/dialogs/qinputdialog.cpp b/src/widgets/dialogs/qinputdialog.cpp index 4c0f22ae97..5c6e0f45a5 100644 --- a/src/widgets/dialogs/qinputdialog.cpp +++ b/src/widgets/dialogs/qinputdialog.cpp @@ -71,10 +71,11 @@ static const char *candidateSignal(int which) case IntValueSelectedSignal: return SIGNAL(intValueSelected(int)); case DoubleValueSelectedSignal: return SIGNAL(doubleValueSelected(double)); - case NumCandidateSignals: ; // fall through + case NumCandidateSignals: + break; }; Q_UNREACHABLE(); - return Q_NULLPTR; + return nullptr; } static const char *signalForMember(const char *member) @@ -115,7 +116,7 @@ private slots: void notifyTextChanged() { emit textChanged(hasAcceptableInput()); } private: - void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE { + void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { #ifndef QT_NO_PROPERTIES setProperty("value", property("value")); @@ -126,7 +127,7 @@ private: notifyTextChanged(); } - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE { + void mousePressEvent(QMouseEvent *event) override { QSpinBox::mousePressEvent(event); notifyTextChanged(); } @@ -150,7 +151,7 @@ private slots: void notifyTextChanged() { emit textChanged(hasAcceptableInput()); } private: - void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE { + void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { #ifndef QT_NO_PROPERTIES setProperty("value", property("value")); @@ -161,7 +162,7 @@ private: notifyTextChanged(); } - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE { + void mousePressEvent(QMouseEvent *event) override { QDoubleSpinBox::mousePressEvent(event); notifyTextChanged(); } @@ -239,7 +240,6 @@ void QInputDialogPrivate::ensureLayout() QObject::connect(buttonBox, SIGNAL(rejected()), q, SLOT(reject())); mainLayout = new QVBoxLayout(q); - //we want to let the input dialog grow to available size on Symbian. mainLayout->setSizeConstraint(QLayout::SetMinAndMaxSize); mainLayout->addWidget(label); mainLayout->addWidget(inputWidget); @@ -1312,7 +1312,7 @@ int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &l } /*! - \fn QInputDialog::getInteger(QWidget *parent, const QString &title, const QString &label, int value, int min, int max, int step, bool *ok, Qt::WindowFlags flags) + \fn int QInputDialog::getInteger(QWidget *parent, const QString &title, const QString &label, int value, int min, int max, int step, bool *ok, Qt::WindowFlags flags) \deprecated use getInt() Static convenience function to get an integer input from the user. diff --git a/src/widgets/dialogs/qinputdialog.h b/src/widgets/dialogs/qinputdialog.h index e41d442498..c3a5e59d53 100644 --- a/src/widgets/dialogs/qinputdialog.h +++ b/src/widgets/dialogs/qinputdialog.h @@ -91,7 +91,7 @@ public: DoubleInput }; - QInputDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); + QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~QInputDialog(); void setInputMode(InputMode mode); @@ -154,31 +154,31 @@ public: using QDialog::open; void open(QObject *receiver, const char *member); - QSize minimumSizeHint() const Q_DECL_OVERRIDE; - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize minimumSizeHint() const override; + QSize sizeHint() const override; - void setVisible(bool visible) Q_DECL_OVERRIDE; + void setVisible(bool visible) override; static QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode echo = QLineEdit::Normal, - const QString &text = QString(), bool *ok = Q_NULLPTR, + const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone); static QString getMultiLineText(QWidget *parent, const QString &title, const QString &label, - const QString &text = QString(), bool *ok = Q_NULLPTR, + const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone); static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, - bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), + bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone); static int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int minValue = -2147483647, int maxValue = 2147483647, - int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); + int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); static double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double minValue = -2147483647, double maxValue = 2147483647, - int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); + int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); // ### Qt 6: merge overloads static double getDouble(QWidget *parent, const QString &title, const QString &label, double value, double minValue, double maxValue, int decimals, bool *ok, Qt::WindowFlags flags, @@ -187,7 +187,7 @@ public: #if QT_DEPRECATED_SINCE(5, 0) QT_DEPRECATED static inline int getInteger(QWidget *parent, const QString &title, const QString &label, int value = 0, int minValue = -2147483647, int maxValue = 2147483647, - int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) + int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) { return getInt(parent, title, label, value, minValue, maxValue, step, ok, flags); } @@ -206,7 +206,7 @@ Q_SIGNALS: void doubleValueSelected(double value); public: - void done(int result) Q_DECL_OVERRIDE; + void done(int result) override; private: Q_DISABLE_COPY(QInputDialog) diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp index fdfffb45cf..cb8ac1ccbf 100644 --- a/src/widgets/dialogs/qmessagebox.cpp +++ b/src/widgets/dialogs/qmessagebox.cpp @@ -98,7 +98,7 @@ public: public: TextEdit(QWidget *parent=0) : QTextEdit(parent) { } #ifndef QT_NO_CONTEXTMENU - void contextMenuEvent(QContextMenuEvent * e) Q_DECL_OVERRIDE + void contextMenuEvent(QContextMenuEvent * e) override { QMenu *menu = createStandardContextMenu(); menu->setAttribute(Qt::WA_DeleteOnClose); @@ -173,7 +173,7 @@ public: void setLabel(DetailButtonLabel lbl) { setText(label(lbl)); } - QSize sizeHint() const Q_DECL_OVERRIDE + QSize sizeHint() const override { ensurePolished(); QStyleOptionButton opt; @@ -259,9 +259,9 @@ public: QByteArray signalToDisconnectOnClose; QSharedPointer<QMessageDialogOptions> options; private: - void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE; - void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE; - void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) Q_DECL_OVERRIDE; + void initHelper(QPlatformDialogHelper *) override; + void helperPrepareShow(QPlatformDialogHelper *) override; + void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) override; }; void QMessageBoxPrivate::init(const QString &title, const QString &text) @@ -415,7 +415,7 @@ void QMessageBoxPrivate::updateSize() } QFontMetrics fm(QApplication::font("QMdiSubWindowTitleBar")); - int windowTitleWidth = qMin(fm.width(q->windowTitle()) + 50, hardLimit); + int windowTitleWidth = qMin(fm.horizontalAdvance(q->windowTitle()) + 50, hardLimit); if (windowTitleWidth > width) width = windowTitleWidth; @@ -2608,7 +2608,7 @@ QPixmap QMessageBoxPrivate::standardIcon(QMessageBox::Icon icon, QMessageBox *mb break; } if (!tmpIcon.isNull()) { - QWindow *window = Q_NULLPTR; + QWindow *window = nullptr; if (mb) { window = mb->windowHandle(); if (!window) { diff --git a/src/widgets/dialogs/qmessagebox.h b/src/widgets/dialogs/qmessagebox.h index fd7d7936b6..4b993a9e65 100644 --- a/src/widgets/dialogs/qmessagebox.h +++ b/src/widgets/dialogs/qmessagebox.h @@ -132,9 +132,9 @@ public: Q_DECLARE_FLAGS(StandardButtons, StandardButton) Q_FLAG(StandardButtons) - explicit QMessageBox(QWidget *parent = Q_NULLPTR); + explicit QMessageBox(QWidget *parent = nullptr); QMessageBox(Icon icon, const QString &title, const QString &text, - StandardButtons buttons = NoButton, QWidget *parent = Q_NULLPTR, + StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); ~QMessageBox(); @@ -201,7 +201,7 @@ public: QMessageBox(const QString &title, const QString &text, Icon icon, int button0, int button1, int button2, - QWidget *parent = Q_NULLPTR, + QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); static int information(QWidget *parent, const QString &title, @@ -290,12 +290,12 @@ public Q_SLOTS: #endif protected: - bool event(QEvent *e) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; - void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; - void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; - void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE; - void changeEvent(QEvent *event) Q_DECL_OVERRIDE; + bool event(QEvent *e) override; + void resizeEvent(QResizeEvent *event) override; + void showEvent(QShowEvent *event) override; + void closeEvent(QCloseEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; + void changeEvent(QEvent *event) override; private: Q_PRIVATE_SLOT(d_func(), void _q_buttonClicked(QAbstractButton *)) diff --git a/src/widgets/dialogs/qprogressdialog.h b/src/widgets/dialogs/qprogressdialog.h index 902a4de5d2..74adb6bd84 100644 --- a/src/widgets/dialogs/qprogressdialog.h +++ b/src/widgets/dialogs/qprogressdialog.h @@ -68,9 +68,9 @@ class Q_WIDGETS_EXPORT QProgressDialog : public QDialog Q_PROPERTY(QString labelText READ labelText WRITE setLabelText) public: - explicit QProgressDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); + explicit QProgressDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); QProgressDialog(const QString &labelText, const QString &cancelButtonText, - int minimum, int maximum, QWidget *parent = Q_NULLPTR, + int minimum, int maximum, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~QProgressDialog(); @@ -85,7 +85,7 @@ public: int value() const; - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize sizeHint() const override; QString labelText() const; int minimumDuration() const; @@ -113,10 +113,10 @@ Q_SIGNALS: void canceled(); protected: - void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; - void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; - void changeEvent(QEvent *event) Q_DECL_OVERRIDE; - void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; + void resizeEvent(QResizeEvent *event) override; + void closeEvent(QCloseEvent *event) override; + void changeEvent(QEvent *event) override; + void showEvent(QShowEvent *event) override; protected Q_SLOTS: void forceShow(); diff --git a/src/widgets/dialogs/qsidebar_p.h b/src/widgets/dialogs/qsidebar_p.h index 1f27d477a8..07aaa5abd2 100644 --- a/src/widgets/dialogs/qsidebar_p.h +++ b/src/widgets/dialogs/qsidebar_p.h @@ -69,7 +69,7 @@ class QSideBarDelegate : public QStyledItemDelegate public: QSideBarDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {} void initStyleOption(QStyleOptionViewItem *option, - const QModelIndex &index) const Q_DECL_OVERRIDE; + const QModelIndex &index) const override; }; class Q_AUTOTEST_EXPORT QUrlModel : public QStandardItemModel @@ -84,14 +84,14 @@ public: QUrlModel(QObject *parent = 0); - QStringList mimeTypes() const Q_DECL_OVERRIDE; - QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE; + QStringList mimeTypes() const override; + QMimeData *mimeData(const QModelIndexList &indexes) const override; #ifndef QT_NO_DRAGANDDROP bool canDrop(QDragEnterEvent *event); - bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override; #endif - Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE; - bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) Q_DECL_OVERRIDE; + Qt::ItemFlags flags(const QModelIndex &index) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override; void setUrls(const QList<QUrl> &list); void addUrls(const QList<QUrl> &urls, int row = -1, bool move = true); @@ -131,7 +131,7 @@ public: void setModelAndUrls(QFileSystemModel *model, const QList<QUrl> &newUrls); ~QSidebar(); - QSize sizeHint() const Q_DECL_OVERRIDE; + QSize sizeHint() const override; void setUrls(const QList<QUrl> &list) { urlModel->setUrls(list); } void addUrls(const QList<QUrl> &list, int row) { urlModel->addUrls(list, row); } @@ -140,10 +140,10 @@ public: void selectUrl(const QUrl &url); protected: - bool event(QEvent * e) Q_DECL_OVERRIDE; - void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE; + bool event(QEvent * e) override; + void focusInEvent(QFocusEvent *event) override; #ifndef QT_NO_DRAGANDDROP - void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE; + void dragEnterEvent(QDragEnterEvent *event) override; #endif private Q_SLOTS: diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp index 890069ca1a..3876cf16c6 100644 --- a/src/widgets/dialogs/qwizard.cpp +++ b/src/widgets/dialogs/qwizard.cpp @@ -298,7 +298,7 @@ public: Qt::TextFormat titleFormat, Qt::TextFormat subTitleFormat); protected: - void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) override; #if QT_CONFIG(style_windowsvista) private: bool vistaDisabled() const; @@ -454,7 +454,7 @@ public: m_layout->addWidget(m_sideWidget); } - QSize minimumSizeHint() const Q_DECL_OVERRIDE { + QSize minimumSizeHint() const override { if (pixmap() && !pixmap()->isNull()) return pixmap()->size(); return QFrame::minimumSizeHint(); @@ -579,7 +579,7 @@ public: , bottomRuler(0) #if QT_CONFIG(style_windowsvista) , vistaHelper(0) - , vistaInitPending(false) + , vistaInitPending(true) , vistaState(QVistaHelper::Dirty) , vistaStateChanged(false) , inHandleAeroStyleChange(false) @@ -590,12 +590,6 @@ public: , maximumHeight(QWIDGETSIZE_MAX) { std::fill(btns, btns + QWizard::NButtons, static_cast<QAbstractButton *>(0)); - -#if QT_CONFIG(style_windowsvista) - if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA - && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based)) - vistaInitPending = true; -#endif } void init(); diff --git a/src/widgets/dialogs/qwizard.h b/src/widgets/dialogs/qwizard.h index 4d03bf91d4..0dd837b197 100644 --- a/src/widgets/dialogs/qwizard.h +++ b/src/widgets/dialogs/qwizard.h @@ -120,7 +120,7 @@ public: Q_DECLARE_FLAGS(WizardOptions, WizardOption) Q_FLAG(WizardOptions) - explicit QWizard(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()); + explicit QWizard(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~QWizard(); int addPage(QWizardPage *page); @@ -168,8 +168,8 @@ public: void setDefaultProperty(const char *className, const char *property, const char *changedSignal); - void setVisible(bool visible) Q_DECL_OVERRIDE; - QSize sizeHint() const Q_DECL_OVERRIDE; + void setVisible(bool visible) override; + QSize sizeHint() const override; Q_SIGNALS: void currentIdChanged(int id); @@ -184,13 +184,13 @@ public Q_SLOTS: void restart(); protected: - bool event(QEvent *event) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + bool event(QEvent *event) override; + void resizeEvent(QResizeEvent *event) override; + void paintEvent(QPaintEvent *event) override; #if defined(Q_OS_WIN) || defined(Q_CLANG_QDOC) - bool nativeEvent(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE; + bool nativeEvent(const QByteArray &eventType, void *message, long *result) override; #endif - void done(int result) Q_DECL_OVERRIDE; + void done(int result) override; virtual void initializePage(int id); virtual void cleanupPage(int id); @@ -215,7 +215,7 @@ class Q_WIDGETS_EXPORT QWizardPage : public QWidget Q_PROPERTY(QString subTitle READ subTitle WRITE setSubTitle) public: - explicit QWizardPage(QWidget *parent = Q_NULLPTR); + explicit QWizardPage(QWidget *parent = nullptr); ~QWizardPage(); void setTitle(const QString &title); @@ -243,8 +243,8 @@ Q_SIGNALS: protected: void setField(const QString &name, const QVariant &value); QVariant field(const QString &name) const; - void registerField(const QString &name, QWidget *widget, const char *property = Q_NULLPTR, - const char *changedSignal = Q_NULLPTR); + void registerField(const QString &name, QWidget *widget, const char *property = nullptr, + const char *changedSignal = nullptr); QWizard *wizard() const; private: diff --git a/src/widgets/dialogs/qwizard_win.cpp b/src/widgets/dialogs/qwizard_win.cpp index bedcd1b0c2..6f0e436ae0 100644 --- a/src/widgets/dialogs/qwizard_win.cpp +++ b/src/widgets/dialogs/qwizard_win.cpp @@ -154,10 +154,7 @@ QVistaHelper::QVistaHelper(QWizard *wizard) backButton_ = new QVistaBackButton(wizard); backButton_->hide(); - // Handle diff between Windows 7 and Vista iconSpacing = QStyleHelper::dpiScaled(7); - textSpacing = QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7 ? - iconSpacing : QStyleHelper::dpiScaled(20); } QVistaHelper::~QVistaHelper() @@ -666,12 +663,12 @@ bool QVistaHelper::drawBlackRect(const QRect &rect, HDC hdc) return value; } -#if !defined(_MSC_VER) || _MSC_VER < 1700 +#ifndef Q_CC_MSVC static inline int getWindowBottomMargin() { return GetSystemMetrics(SM_CYSIZEFRAME); } -#else // !_MSC_VER || _MSC_VER < 1700 +#else // QTBUG-36192, GetSystemMetrics(SM_CYSIZEFRAME) returns bogus values // for MSVC2012 which leads to the custom margin having no effect since // that only works when removing the entire margin. @@ -681,7 +678,7 @@ static inline int getWindowBottomMargin() AdjustWindowRectEx(&rect, WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_THICKFRAME | WS_DLGFRAME, FALSE, 0); return qAbs(rect.bottom); } -#endif // _MSC_VER >= 1700 +#endif // Q_CC_MSVC int QVistaHelper::frameSizeDp() { @@ -695,7 +692,7 @@ int QVistaHelper::captionSizeDp() int QVistaHelper::titleOffset() { - int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize() + textSpacing; + int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize() + iconSpacing; return leftMargin() + iconOffset; } diff --git a/src/widgets/dialogs/qwizard_win_p.h b/src/widgets/dialogs/qwizard_win_p.h index f9122865c2..7ca4899a1f 100644 --- a/src/widgets/dialogs/qwizard_win_p.h +++ b/src/widgets/dialogs/qwizard_win_p.h @@ -104,8 +104,7 @@ public: static int titleBarSize() { return QVistaHelper::titleBarSizeDp() / QVistaHelper::m_devicePixelRatio; } static int titleBarSizeDp() { return QVistaHelper::frameSizeDp() + QVistaHelper::captionSizeDp(); } static int topPadding() { // padding under text - return int(QStyleHelper::dpiScaled( - QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7 ? 4 : 6)); + return int(QStyleHelper::dpiScaled(4)); } static int topOffset(); @@ -150,7 +149,6 @@ private: int titleBarOffset; // Extra spacing above the text int iconSpacing; // Space between button and icon - int textSpacing; // Space between icon and text static int m_devicePixelRatio; }; |