Avoid some simple to fix deprecation warnings with Qt 5.14

Replace the deprecated functions with the new equivalents when this
doesn't really change the code semantics.

Also add new compat.h private header where more functions like
wxQtGetWidthFromMetrics() can be added in the future.

There are still quite a few of deprecation warnings requiring more
changes remaining.
This commit is contained in:
Vadim Zeitlin
2022-10-21 19:00:36 +02:00
parent 0a33da8058
commit e28ab8974d
9 changed files with 62 additions and 24 deletions
+26
View File
@@ -0,0 +1,26 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/qt/private/compat.h
// Purpose: Helpers for dealing with various Qt versions
// Author: Vadim Zeitlin
// Created: 2022-10-21
// Copyright: (c) 2022 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_QT_PRIVATE_COMPAT_H_
#define _WX_QT_PRIVATE_COMPAT_H_
#include <QtGui/QFontMetrics>
// Hide the difference in name of QFontMetrics::width() in various Qt versions.
inline int
wxQtGetWidthFromMetrics(const QFontMetrics& metrics, const QString& string)
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0))
return metrics.horizontalAdvance( string );
#else
return metrics.width( string );
#endif
}
#endif // _WX_QT_PRIVATE_COMPAT_H_
+1 -1
View File
@@ -212,7 +212,7 @@ wxBitmap::wxBitmap(const wxString &filename, wxBitmapType type )
void wxBitmap::InitFromImage(const wxImage& image, int depth, double WXUNUSED(scale) )
{
Qt::ImageConversionFlags flags = nullptr;
Qt::ImageConversionFlags flags;
if (depth == 1)
flags = Qt::MonoOnly;
m_refData = new wxBitmapRefData(QPixmap::fromImage(ConvertImage(image), flags));
+1 -1
View File
@@ -232,7 +232,7 @@ int wxChoice::DoInsertOneItem(const wxString& item, unsigned int pos)
void wxChoice::DoSetItemClientData(unsigned int n, void *clientData)
{
QVariant variant = qVariantFromValue(clientData);
QVariant variant = QVariant::fromValue(clientData);
m_qtComboBox->setItemData(n, variant);
}
+2 -1
View File
@@ -23,6 +23,7 @@
#include "wx/qt/dc.h"
#include "wx/qt/private/converter.h"
#include "wx/qt/private/utils.h"
#include "wx/qt/private/compat.h"
#include <QtGui/QScreen>
#include <QtWidgets/QApplication>
@@ -383,7 +384,7 @@ void wxQtDCImpl::DoGetTextExtent(const wxString& string,
{
// note that boundingRect doesn't return "advance width" for spaces
if (x != nullptr)
*x = metrics.width( wxQtConvertString(string) );
*x = wxQtGetWidthFromMetrics(metrics, wxQtConvertString(string));
if (y != nullptr)
*y = metrics.height();
}
+3 -3
View File
@@ -245,7 +245,7 @@ void wxListBox::DoSetSelection(int n, bool select)
return;
}
m_qtListWidget->setItemSelected( m_qtListWidget->item(n), select);
m_qtListWidget->item(n)->setSelected(select);
}
int wxListBox::DoInsertItems(const wxArrayStringsAdapter & items,
@@ -275,7 +275,7 @@ int wxListBox::DoInsertOneItem(const wxString& text, unsigned int pos)
void wxListBox::DoSetItemClientData(unsigned int n, void *clientData)
{
QListWidgetItem* item = m_qtListWidget->item(n);
QVariant variant = qVariantFromValue(clientData);
QVariant variant = QVariant::fromValue(clientData);
item->setData(Qt::UserRole, variant);
}
@@ -316,6 +316,6 @@ void wxListBox::UnSelectAll()
{
Q_FOREACH(QListWidgetItem* l, m_qtListWidget->selectedItems())
{
m_qtListWidget->setItemSelected( l, false );
l->setSelected(false);
}
}
+8 -3
View File
@@ -334,8 +334,8 @@ wxRegionIterator::wxRegionIterator()
wxRegionIterator::wxRegionIterator(const wxRegion& region)
{
m_qtRects = new QVector< QRect >( region.GetHandle().rects() );
m_pos = 0;
m_qtRects = nullptr;
Reset(region);
}
wxRegionIterator::wxRegionIterator(const wxRegionIterator& ri)
@@ -369,7 +369,12 @@ void wxRegionIterator::Reset(const wxRegion& region)
{
delete m_qtRects;
m_qtRects = new QVector< QRect >( region.GetHandle().rects() );
auto qtRegion = region.GetHandle();
m_qtRects = new QVector< QRect >();
m_qtRects->reserve(qtRegion.rectCount());
for (const auto& r : qtRegion)
m_qtRects->push_back(r);
m_pos = 0;
}
+6 -6
View File
@@ -671,7 +671,7 @@ wxColour wxTreeCtrl::GetItemTextColour(const wxTreeItemId& item) const
wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item");
const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxQtConvertColour(qTreeItem->textColor(0));
return wxQtConvertColour(qTreeItem->foreground(0).color());
}
wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
@@ -679,7 +679,7 @@ wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item");
const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxQtConvertColour(qTreeItem->backgroundColor(0));
return wxQtConvertColour(qTreeItem->background(0).color());
}
wxFont wxTreeCtrl::GetItemFont(const wxTreeItemId& item) const
@@ -760,8 +760,8 @@ void wxTreeCtrl::SetItemDropHighlight(const wxTreeItemId& item, bool highlight)
fg = GetForegroundColour();
}
qTreeItem->setBackgroundColor(0, wxQtConvertColour(bg));
qTreeItem->setTextColor(0, wxQtConvertColour(fg));
qTreeItem->setBackground(0, wxQtConvertColour(bg));
qTreeItem->setForeground(0, wxQtConvertColour(fg));
}
void wxTreeCtrl::SetItemTextColour(
@@ -772,7 +772,7 @@ void wxTreeCtrl::SetItemTextColour(
wxCHECK_RET(item.IsOk(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
qTreeItem->setTextColor(0, wxQtConvertColour(col));
qTreeItem->setForeground(0, wxQtConvertColour(col));
}
void wxTreeCtrl::SetItemBackgroundColour(
@@ -783,7 +783,7 @@ void wxTreeCtrl::SetItemBackgroundColour(
wxCHECK_RET(item.IsOk(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
qTreeItem->setBackgroundColor(0, wxQtConvertColour(col));
qTreeItem->setBackground(0, wxQtConvertColour(col));
}
void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font)
+1 -1
View File
@@ -38,7 +38,7 @@ void wxQtFillMouseButtons( Qt::MouseButtons buttons, wxMouseState *state )
{
state->SetLeftDown( buttons.testFlag( Qt::LeftButton ) );
state->SetRightDown( buttons.testFlag( Qt::RightButton ) );
state->SetMiddleDown( buttons.testFlag( Qt::MidButton ) );
state->SetMiddleDown( buttons.testFlag( Qt::MiddleButton ) );
state->SetAux1Down( buttons.testFlag( Qt::XButton1 ) );
state->SetAux2Down( buttons.testFlag( Qt::XButton2 ) );
}
+14 -8
View File
@@ -32,6 +32,7 @@
#include "wx/tooltip.h"
#include "wx/qt/private/utils.h"
#include "wx/qt/private/converter.h"
#include "wx/qt/private/compat.h"
#include "wx/qt/private/winevent.h"
#define VERT_SCROLLBAR_POSITION 0, 1
@@ -224,7 +225,7 @@ static const char WINDOW_POINTER_PROPERTY_NAME[] = "wxWindowPointer";
/* static */ void wxWindowQt::QtStoreWindowPointer( QWidget *widget, const wxWindowQt *window )
{
QVariant variant;
qVariantSetValue( variant, window );
variant.setValue( window );
widget->setProperty( WINDOW_POINTER_PROPERTY_NAME, variant );
}
@@ -413,8 +414,8 @@ void wxWindowQt::PostCreation(bool generic)
//
// Set the default color so Paint Event default handler clears the DC:
wxWindowBase::SetBackgroundColour(wxColour(GetHandle()->palette().background().color()));
wxWindowBase::SetForegroundColour(wxColour(GetHandle()->palette().foreground().color()));
wxWindowBase::SetBackgroundColour(wxColour(GetHandle()->palette().window().color()));
wxWindowBase::SetForegroundColour(wxColour(GetHandle()->palette().windowText().color()));
GetHandle()->setFont( wxWindowBase::GetFont().GetHandle() );
@@ -614,7 +615,7 @@ void wxWindowQt::DoGetTextExtent(const wxString& string, int *x, int *y, int *de
QFontMetrics fontMetrics( font != nullptr ? font->GetHandle() : GetHandle()->font() );
if ( x != nullptr )
*x = fontMetrics.width( wxQtConvertString( string ));
*x = wxQtGetWidthFromMetrics(fontMetrics, wxQtConvertString( string ));
if ( y != nullptr )
*y = fontMetrics.height();
@@ -1341,7 +1342,12 @@ bool wxWindowQt::QtHandleResizeEvent ( QWidget *WXUNUSED( handler ), QResizeEven
bool wxWindowQt::QtHandleWheelEvent ( QWidget *WXUNUSED( handler ), QWheelEvent *event )
{
wxMouseEvent e( wxEVT_MOUSEWHEEL );
e.SetPosition( wxQtConvertPoint( event->pos() ) );
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
QPoint qPt = event->position().toPoint();
#else
QPoint qPt = event->pos();
#endif
e.SetPosition( wxQtConvertPoint( qPt ) );
e.SetEventObject(this);
e.m_wheelAxis = ( event->orientation() == Qt::Vertical ) ? wxMOUSE_WHEEL_VERTICAL : wxMOUSE_WHEEL_HORIZONTAL;
@@ -1451,7 +1457,7 @@ bool wxWindowQt::QtHandleMouseEvent ( QWidget *handler, QMouseEvent *event )
case Qt::RightButton:
wxType = wxEVT_RIGHT_DCLICK;
break;
case Qt::MidButton:
case Qt::MiddleButton:
wxType = wxEVT_MIDDLE_DCLICK;
break;
case Qt::XButton1:
@@ -1475,7 +1481,7 @@ bool wxWindowQt::QtHandleMouseEvent ( QWidget *handler, QMouseEvent *event )
case Qt::RightButton:
wxType = wxEVT_RIGHT_DOWN;
break;
case Qt::MidButton:
case Qt::MiddleButton:
wxType = wxEVT_MIDDLE_DOWN;
break;
case Qt::XButton1:
@@ -1499,7 +1505,7 @@ bool wxWindowQt::QtHandleMouseEvent ( QWidget *handler, QMouseEvent *event )
case Qt::RightButton:
wxType = wxEVT_RIGHT_UP;
break;
case Qt::MidButton:
case Qt::MiddleButton:
wxType = wxEVT_MIDDLE_UP;
break;
case Qt::XButton1: