From f58e47c2f34c6a703115c9b4486040ba12bd97e9 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 27 Feb 2019 14:33:10 +0100 Subject: QtWidgets: Fix deprecation warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix deprecation warnings where possible or add warnings scopes, fixing: dialogs/qdialog.cpp:783:41: warning: ‘void QDialog::showExtension(bool)’ is deprecated [-Wdeprecated-declarations] ^~~~~~~~~~~~~ widgets/qcombobox.cpp:1386:37: warning: ‘void QComboBox::currentIndexChanged(const QString&)’ is deprecated: Use currentTextChanged() instead [-Wdeprecated-declarations]= dialogs/qfiledialog_p.h:168:38: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:590:38: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:617:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:617:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:645:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:1730:17: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:2637:43: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:2750:10: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:2786:49: warning: ‘bool QFileDialog::confirmOverwrite() const’ is deprecated: Use !testOption(DontConfirmOverwrite) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:3654:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:3843:48: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] dialogs/qfiledialog.cpp:3895:72: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations] styles/qwindowsstyle.cpp:836:19: warning: ‘PE_IndicatorViewItemCheck’ is deprecated [-Wdeprecated-declarations] graphicsview/qgraphicswidget.cpp:2309:51: warning: ‘PM_MDIFrameWidth’ is deprecated [-Wdeprecated-declarations] styles/qstylesheetstyle.cpp:4302:10: warning: ‘PE_FrameStatusBar’ is deprecated [-Wdeprecated-declarations] styles/qfusionstyle.cpp:3676:10: warning: ‘SH_ScrollBar_StopMouseOverSlider’ is deprecated [-Wdeprecated-declarations] Change-Id: I9e15f4a0996476ec88d8823b72f0c537dce97b9c Reviewed-by: Christian Ehrlicher --- src/widgets/dialogs/qdialog.cpp | 3 +++ src/widgets/dialogs/qfiledialog.cpp | 35 +++++++++++++++++++++++++++- src/widgets/dialogs/qfiledialog_p.h | 8 ++----- src/widgets/graphicsview/qgraphicswidget.cpp | 2 +- src/widgets/itemviews/qitemdelegate.cpp | 2 +- src/widgets/styles/qcommonstyle.cpp | 4 ++-- src/widgets/styles/qfusionstyle.cpp | 4 ++-- src/widgets/styles/qstylesheetstyle.cpp | 4 ++-- src/widgets/styles/qwindowsstyle.cpp | 6 ++--- src/widgets/widgets/qcombobox.cpp | 3 +++ 10 files changed, 53 insertions(+), 18 deletions(-) diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp index 3c49016e2c..e7b526445e 100644 --- a/src/widgets/dialogs/qdialog.cpp +++ b/src/widgets/dialogs/qdialog.cpp @@ -780,7 +780,10 @@ void QDialog::setVisible(bool visible) QWidget::setVisible(visible); #if QT_DEPRECATED_SINCE(5, 13) +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED showExtension(d->doShowExtension); +QT_WARNING_POP #endif QWidget *fw = window()->focusWidget(); if (!fw) diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index 625da78794..f772eb1241 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -587,10 +587,13 @@ void QFileDialogPrivate::retranslateWindowTitle() return; if (q->acceptMode() == QFileDialog::AcceptOpen) { const QFileDialog::FileMode fileMode = q->fileMode(); +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED if (fileMode == QFileDialog::DirectoryOnly || fileMode == QFileDialog::Directory) q->setWindowTitle(QFileDialog::tr("Find Directory")); else q->setWindowTitle(QFileDialog::tr("Open")); +QT_WARNING_POP } else q->setWindowTitle(QFileDialog::tr("Save As")); @@ -614,7 +617,10 @@ void QFileDialogPrivate::updateFileNameLabel() setLabelTextControl(QFileDialog::FileName, options->labelText(QFileDialogOptions::FileName)); } else { switch (q_func()->fileMode()) { +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED case QFileDialog::DirectoryOnly: +QT_WARNING_POP case QFileDialog::Directory: setLabelTextControl(QFileDialog::FileName, QFileDialog::tr("Directory:")); break; @@ -642,7 +648,10 @@ void QFileDialogPrivate::updateOkButtonText(bool saveAsOnFolder) return; } else { switch (q->fileMode()) { +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED case QFileDialog::DirectoryOnly: +QT_WARNING_POP case QFileDialog::Directory: setLabelTextControl(QFileDialog::Accept, QFileDialog::tr("&Choose")); break; @@ -1709,7 +1718,10 @@ void QFileDialog::setFileMode(QFileDialog::FileMode mode) d->options->setFileMode(static_cast(mode)); // keep ShowDirsOnly option in sync with fileMode (BTW, DirectoryOnly is obsolete) +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED setOption(ShowDirsOnly, mode == DirectoryOnly); +QT_WARNING_POP if (!d->usingWidgets()) return; @@ -1727,11 +1739,14 @@ void QFileDialog::setFileMode(QFileDialog::FileMode mode) // set filter d->model->setFilter(d->filterForMode(filter())); // setup file type for directory +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED if (mode == DirectoryOnly || mode == Directory) { d->qFileDialogUi->fileTypeCombo->clear(); d->qFileDialogUi->fileTypeCombo->addItem(tr("Directories")); d->qFileDialogUi->fileTypeCombo->setEnabled(false); } +QT_WARNING_POP d->updateFileNameLabel(); d->updateOkButtonText(); d->qFileDialogUi->fileTypeCombo->setEnabled(!testOption(ShowDirsOnly)); @@ -2634,7 +2649,10 @@ QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent, args.parent = parent; args.caption = caption; args.directory = QFileDialogPrivate::workingDirectory(dir); +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED args.mode = (options & ShowDirsOnly ? DirectoryOnly : Directory); +QT_WARNING_POP args.options = options; QFileDialog dialog(args); @@ -2747,7 +2765,10 @@ void QFileDialog::accept() } switch (fileMode()) { +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED case DirectoryOnly: +QT_WARNING_POP case Directory: { QString fn = files.first(); QFileInfo info(fn); @@ -2783,7 +2804,7 @@ void QFileDialog::accept() } // check if we have to ask for permission to overwrite the file - if (!info.exists() || !confirmOverwrite() || acceptMode() == AcceptOpen) { + if (!info.exists() || testOption(DontConfirmOverwrite) || acceptMode() == AcceptOpen) { d->emitFilesSelected(QStringList(fn)); QDialog::accept(); #if QT_CONFIG(messagebox) @@ -3651,7 +3672,10 @@ void QFileDialogPrivate::_q_updateOkButton() isOpenDirectory = true; } else { switch (fileMode) { +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED case QFileDialog::DirectoryOnly: +QT_WARNING_POP case QFileDialog::Directory: { QString fn = files.first(); QModelIndex idx = model->index(fn); @@ -3743,12 +3767,15 @@ void QFileDialogPrivate::_q_enterDirectory(const QModelIndex &index) const QFileDialog::FileMode fileMode = q->fileMode(); q->setDirectory(path); emit q->directoryEntered(path); +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED if (fileMode == QFileDialog::Directory || fileMode == QFileDialog::DirectoryOnly) { // ### find out why you have to do both of these. lineEdit()->setText(QString()); lineEdit()->clear(); } +QT_WARNING_POP } 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, nullptr, qFileDialogUi->treeView) @@ -3840,7 +3867,10 @@ void QFileDialogPrivate::_q_selectionChanged() { const QFileDialog::FileMode fileMode = q_func()->fileMode(); const QModelIndexList indexes = qFileDialogUi->listView->selectionModel()->selectedRows(); +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED bool stripDirs = (fileMode != QFileDialog::DirectoryOnly && fileMode != QFileDialog::Directory); +QT_WARNING_POP QStringList allFiles; for (const auto &index : indexes) { @@ -3892,10 +3922,13 @@ void QFileDialogPrivate::_q_rowsInserted(const QModelIndex &parent) void QFileDialogPrivate::_q_fileRenamed(const QString &path, const QString &oldName, const QString &newName) { const QFileDialog::FileMode fileMode = q_func()->fileMode(); +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED if (fileMode == QFileDialog::Directory || fileMode == QFileDialog::DirectoryOnly) { if (path == rootPath() && lineEdit()->text() == oldName) lineEdit()->setText(newName); } +QT_WARNING_POP } void QFileDialogPrivate::_q_emitUrlSelected(const QUrl &file) diff --git a/src/widgets/dialogs/qfiledialog_p.h b/src/widgets/dialogs/qfiledialog_p.h index 96d0c1190e..463c77aa23 100644 --- a/src/widgets/dialogs/qfiledialog_p.h +++ b/src/widgets/dialogs/qfiledialog_p.h @@ -164,13 +164,9 @@ public: QDir::Filters filterForMode(QDir::Filters filters) const { - const QFileDialog::FileMode fileMode = q_func()->fileMode(); - if (fileMode == QFileDialog::DirectoryOnly) { - filters |= QDir::Drives | QDir::AllDirs | QDir::Dirs; + filters |= QDir::Drives | QDir::AllDirs | QDir::Dirs | QDir::Files; + if (q_func()->testOption(QFileDialog::ShowDirsOnly)) filters &= ~QDir::Files; - } else { - filters |= QDir::Drives | QDir::AllDirs | QDir::Files | QDir::Dirs; - } return filters; } diff --git a/src/widgets/graphicsview/qgraphicswidget.cpp b/src/widgets/graphicsview/qgraphicswidget.cpp index c994136091..f69faa7572 100644 --- a/src/widgets/graphicsview/qgraphicswidget.cpp +++ b/src/widgets/graphicsview/qgraphicswidget.cpp @@ -2306,7 +2306,7 @@ void QGraphicsWidget::paintWindowFrame(QPainter *painter, const QStyleOptionGrap QStyleHintReturnMask mask; bool setMask = style()->styleHint(QStyle::SH_WindowFrame_Mask, &bar, widget, &mask) && !mask.region.isEmpty(); bool hasBorder = !style()->styleHint(QStyle::SH_TitleBar_NoBorder, &bar, widget); - int frameWidth = style()->pixelMetric(QStyle::PM_MDIFrameWidth, &bar, widget); + int frameWidth = style()->pixelMetric(QStyle::PM_MdiSubWindowFrameWidth, &bar, widget); if (setMask) { painter->save(); painter->setClipRegion(mask.region, Qt::IntersectClip); diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp index 6e57e0c32b..460764f1b8 100644 --- a/src/widgets/itemviews/qitemdelegate.cpp +++ b/src/widgets/itemviews/qitemdelegate.cpp @@ -789,7 +789,7 @@ void QItemDelegate::drawCheck(QPainter *painter, const QWidget *widget = d->widget(option); QStyle *style = widget ? widget->style() : QApplication::style(); - style->drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &opt, painter, widget); + style->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck, &opt, painter, widget); } /*! diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp index 56bc329827..b064b2eff2 100644 --- a/src/widgets/styles/qcommonstyle.cpp +++ b/src/widgets/styles/qcommonstyle.cpp @@ -194,7 +194,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q opt->state & (State_Sunken | State_On), 1, &opt->palette.brush(QPalette::Button)); break; - case PE_IndicatorViewItemCheck: + case PE_IndicatorItemViewItemCheck: proxy()->drawPrimitive(PE_IndicatorCheckBox, opt, p, widget); break; case PE_IndicatorCheckBox: @@ -2283,7 +2283,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt, option.state |= QStyle::State_On; break; } - proxy()->drawPrimitive(QStyle::PE_IndicatorViewItemCheck, &option, p, widget); + proxy()->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck, &option, p, widget); } // draw the icon diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 0e95d6efa4..f3961b2a99 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -558,7 +558,7 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, qt_fusion_draw_arrow(arrow, painter, option, option->rect, arrowColor); } break; - case PE_IndicatorViewItemCheck: + case PE_IndicatorItemViewItemCheck: { QStyleOptionButton button; button.QStyleOption::operator=(*option); @@ -3673,7 +3673,7 @@ int QFusionStyle::styleHint(StyleHint hint, const QStyleOption *option, const QW case SH_FontDialog_SelectAssociatedText: case SH_MenuBar_AltKeyNavigation: case SH_ComboBox_ListMouseTracking: - case SH_ScrollBar_StopMouseOverSlider: + case SH_Slider_StopMouseOverSlider: case SH_ScrollBar_MiddleClickAbsolutePosition: case SH_EtchDisabledText: case SH_TitleBar_AutoRaise: diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index b058d4c557..c104ac2498 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -4299,7 +4299,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op switch (pe) { - case PE_FrameStatusBar: { + case PE_FrameStatusBarItem: { QRenderRule subRule = renderRule(w ? w->parentWidget() : nullptr, opt, PseudoElement_Item); if (subRule.hasDrawable()) { subRule.drawRule(p, opt->rect); @@ -4320,7 +4320,7 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op pseudoElement = PseudoElement_ExclusiveIndicator; break; - case PE_IndicatorViewItemCheck: + case PE_IndicatorItemViewItemCheck: pseudoElement = PseudoElement_ViewItemIndicator; break; diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index c0a8228e42..4e450813cb 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -554,7 +554,7 @@ int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWid case SH_MenuBar_MouseTracking: case SH_Menu_MouseTracking: case SH_ComboBox_ListMouseTracking: - case SH_ScrollBar_StopMouseOverSlider: + case SH_Slider_StopMouseOverSlider: case SH_MainWindow_SpaceBelowMenuBar: ret = 1; @@ -827,13 +827,13 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, p->setPen(opt->palette.text().color()); } Q_FALLTHROUGH(); - case PE_IndicatorViewItemCheck: + case PE_IndicatorItemViewItemCheck: if (!doRestore) { p->save(); doRestore = true; } #if QT_CONFIG(itemviews) - if (pe == PE_IndicatorViewItemCheck) { + if (pe == PE_IndicatorItemViewItemCheck) { const QStyleOptionViewItem *itemViewOpt = qstyleoption_cast(opt); p->setPen(itemViewOpt && itemViewOpt->showDecorationSelected diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 1ad43fffb4..a24c9d350f 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -1383,7 +1383,10 @@ void QComboBoxPrivate::_q_emitCurrentIndexChanged(const QModelIndex &index) const QString text = itemText(index); emit q->currentIndexChanged(index.row()); #if QT_DEPRECATED_SINCE(5, 13) + QT_WARNING_PUSH + QT_WARNING_DISABLE_DEPRECATED emit q->currentIndexChanged(text); + QT_WARNING_POP #endif // signal lineEdit.textChanged already connected to signal currentTextChanged, so don't emit double here if (!lineEdit) -- cgit v1.2.3