From 8ccc7f9aaa02e0898d456527fafd703d736eb93a3708b92f2055d4557e4d90b3 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 17 Dec 2014 13:01:27 +0000 Subject: [PATCH] wxQt compilation problem fixes OBS-URL: https://build.opensuse.org/package/show/X11:wxWidgets/wxWidgets-3_2?expand=0&rev=8 --- wxQt-3_2.spec | 3 +- wxqt-color.diff | 321 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 323 insertions(+), 1 deletion(-) create mode 100644 wxqt-color.diff diff --git a/wxQt-3_2.spec b/wxQt-3_2.spec index 5fabb41..fc040c8 100644 --- a/wxQt-3_2.spec +++ b/wxQt-3_2.spec @@ -43,6 +43,7 @@ Source6: wxpython-mkdiff.sh Source50: baselibs.conf Patch1: soversion.diff Patch2: wxqt-compile.diff +Patch3: wxqt-color.diff BuildRoot: %_tmppath/%name-%version-build BuildRequires: SDL-devel BuildRequires: autoconf @@ -205,7 +206,7 @@ read %_docdir/%name/README.SUSE to pick a correct variant. %prep echo "=== RPM build flags: WX_DEBUG=0%{?WX_DEBUG}" %setup -q -n %tarball_name-trunk -%patch -P 1 -P 2 -p1 +%patch -P 1 -P 2 -P 3 -p1 cp %{S:2} . %build diff --git a/wxqt-color.diff b/wxqt-color.diff new file mode 100644 index 0000000..2cba1de --- /dev/null +++ b/wxqt-color.diff @@ -0,0 +1,321 @@ +--- + include/wx/qt/colour.h | 29 +++++++++++++---------------- + src/qt/bitmap.cpp | 2 +- + src/qt/brush.cpp | 6 +++--- + src/qt/calctrl.cpp | 14 +++++++------- + src/qt/colordlg.cpp | 4 ++-- + src/qt/colour.cpp | 12 ++++++++++++ + src/qt/dc.cpp | 16 ++++++++-------- + src/qt/listctrl.cpp | 4 ++-- + src/qt/pen.cpp | 6 +++--- + 9 files changed, 51 insertions(+), 42 deletions(-) + +Index: wxWidgets-trunk/include/wx/qt/colour.h +=================================================================== +--- wxWidgets-trunk.orig/include/wx/qt/colour.h ++++ wxWidgets-trunk/include/wx/qt/colour.h +@@ -9,37 +9,34 @@ + #ifndef _WX_QT_COLOUR_H_ + #define _WX_QT_COLOUR_H_ + +-#include ++class QColor; + + class WXDLLIMPEXP_CORE wxColour : public wxColourBase + { + public: + DEFINE_STD_WXCOLOUR_CONSTRUCTORS +- wxColour(const QColor& color) : m_qtColor(color) {} ++ wxColour(const QColor &); + +- virtual bool IsOk() const { return m_qtColor.isValid(); } ++ virtual bool IsOk(void) const; + +- virtual ChannelType Red() const { return m_qtColor.red(); } +- virtual ChannelType Green() const { return m_qtColor.green(); } +- virtual ChannelType Blue() const { return m_qtColor.blue(); } +- virtual ChannelType Alpha() const { return m_qtColor.alpha(); } +- +- bool operator==(const wxColour& color) const +- { return m_qtColor == color.m_qtColor; } +- bool operator!=(const wxColour& color) const +- { return m_qtColor != color.m_qtColor; } ++ virtual ChannelType Red(void) const; ++ virtual ChannelType Green(void) const; ++ virtual ChannelType Blue(void) const; ++ virtual ChannelType Alpha(void) const; ++ ++ bool operator==(const wxColour &) const; ++ bool operator!=(const wxColour &) const; + + int GetPixel() const; + +- QColor GetHandle() const { return m_qtColor; }; ++ QColor *GetHandle(void) const; + + protected: + virtual void +- InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a) +- { m_qtColor.setRgb(r, g, b, a); } ++ InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a); + + private: +- QColor m_qtColor; ++ QColor *m_qtColor; + + DECLARE_DYNAMIC_CLASS(wxColour) + }; +Index: wxWidgets-trunk/src/qt/bitmap.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/bitmap.cpp ++++ wxWidgets-trunk/src/qt/bitmap.cpp +@@ -496,7 +496,7 @@ bool wxMask::Create(const wxBitmap& bitm + if (m_qtBitmap) + delete m_qtBitmap; + +- m_qtBitmap = new QBitmap(bitmap.GetHandle()->createMaskFromColor(colour.GetHandle())); ++ m_qtBitmap = new QBitmap(bitmap.GetHandle()->createMaskFromColor(*colour.GetHandle())); + return true; + } + +Index: wxWidgets-trunk/src/qt/brush.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/brush.cpp ++++ wxWidgets-trunk/src/qt/brush.cpp +@@ -95,7 +95,7 @@ wxBrush::wxBrush() + wxBrush::wxBrush(const wxColour& col, wxBrushStyle style ) + { + m_refData = new wxBrushRefData(); +- M_BRUSHDATA.setColor(col.GetHandle()); ++ M_BRUSHDATA.setColor(*col.GetHandle()); + M_BRUSHDATA.setStyle(ConvertBrushStyle(style)); + M_STYLEDATA = style; + } +@@ -103,7 +103,7 @@ wxBrush::wxBrush(const wxColour& col, wx + wxBrush::wxBrush(const wxColour& col, int style) + { + m_refData = new wxBrushRefData(); +- M_BRUSHDATA.setColor(col.GetHandle()); ++ M_BRUSHDATA.setColor(*col.GetHandle()); + M_BRUSHDATA.setStyle(ConvertBrushStyle((wxBrushStyle)style)); + M_STYLEDATA = (wxBrushStyle)style; + } +@@ -122,7 +122,7 @@ wxBrush::wxBrush(const wxBitmap& stipple + void wxBrush::SetColour(const wxColour& col) + { + AllocExclusive(); +- M_BRUSHDATA.setColor(col.GetHandle()); ++ M_BRUSHDATA.setColor(*col.GetHandle()); + } + + void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) +Index: wxWidgets-trunk/src/qt/calctrl.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/calctrl.cpp ++++ wxWidgets-trunk/src/qt/calctrl.cpp +@@ -228,7 +228,7 @@ void wxCalendarCtrl::SetHoliday(size_t d + date.setDate(date.year(), date.month(), day); + + QTextCharFormat format = m_qtCalendar->dateTextFormat(date); +- format.setForeground(m_colHolidayFg.GetHandle()); ++ format.setForeground(*m_colHolidayFg.GetHandle()); + m_qtCalendar->setDateTextFormat(date, format); + } + +@@ -248,9 +248,9 @@ void wxCalendarCtrl::RefreshHolidays() + if ( m_windowStyle & wxCAL_SHOW_HOLIDAYS ) + { + if ( m_colHolidayFg.IsOk() ) +- format.setForeground(m_colHolidayFg.GetHandle()); ++ format.setForeground(*m_colHolidayFg.GetHandle()); + if ( m_colHolidayBg.IsOk() ) +- format.setBackground(m_colHolidayBg.GetHandle()); ++ format.setBackground(*m_colHolidayBg.GetHandle()); + } + else + { +@@ -277,9 +277,9 @@ void wxCalendarCtrl::SetHeaderColours(co + + QTextCharFormat format = m_qtCalendar->headerTextFormat(); + if ( m_colHeaderFg.IsOk() ) +- format.setForeground(m_colHeaderFg.GetHandle()); ++ format.setForeground(*m_colHeaderFg.GetHandle()); + if ( m_colHeaderBg.IsOk() ) +- format.setBackground(m_colHeaderBg.GetHandle()); ++ format.setBackground(*m_colHeaderBg.GetHandle()); + m_qtCalendar->setHeaderTextFormat(format); + } + +@@ -302,9 +302,9 @@ void wxCalendarCtrl::SetAttr(size_t day, + + QTextCharFormat format = m_qtCalendar->dateTextFormat(date); + if ( attr->HasTextColour() ) +- format.setForeground(attr->GetTextColour().GetHandle()); ++ format.setForeground(*attr->GetTextColour().GetHandle()); + if ( attr->HasBackgroundColour() ) +- format.setBackground(attr->GetBackgroundColour().GetHandle()); ++ format.setBackground(*attr->GetBackgroundColour().GetHandle()); + + wxMISSING_IMPLEMENTATION( "Setting font" ); + +Index: wxWidgets-trunk/src/qt/colordlg.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/colordlg.cpp ++++ wxWidgets-trunk/src/qt/colordlg.cpp +@@ -29,10 +29,10 @@ bool wxColourDialog::Create(wxWindow *pa + if ( m_data.GetChooseFull() ) + { + for (int i=0; isetCurrentColor(m_data.GetColour().GetHandle()); ++ GetHandle()->setCurrentColor(*m_data.GetColour().GetHandle()); + + return wxTopLevelWindow::Create( parent, wxID_ANY, ""); + } +Index: wxWidgets-trunk/src/qt/colour.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/colour.cpp ++++ wxWidgets-trunk/src/qt/colour.cpp +@@ -11,11 +11,23 @@ + // For compilers that support precompilation, includes "wx.h". + #include "wx/wxprec.h" + #include "wx/qt/private/utils.h" ++#include "wx/colour.h" + + #ifdef __BORLANDC__ + #pragma hdrstop + #endif + ++wxColour::wxColour(const QColor &color) : m_qtColor(new QColor(color)) {} ++bool wxColour::IsOk(void) const { return m_qtColor->isValid(); } ++unsigned char wxColour::Red(void) const { return m_qtColor->red(); } ++unsigned char wxColour::Green(void) const { return m_qtColor->green(); } ++unsigned char wxColour::Blue(void) const { return m_qtColor->blue(); } ++unsigned char wxColour::Alpha(void) const { return m_qtColor->alpha(); } ++bool wxColour::operator==(const wxColour &color) const { return *m_qtColor == *color.m_qtColor; } ++bool wxColour::operator!=(const wxColour &color) const { return *m_qtColor != *color.m_qtColor; } ++QColor *wxColour::GetHandle(void) const { return m_qtColor; } ++void wxColour::InitRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { m_qtColor->setRgb(r, g, b, a); } ++ + int wxColour::GetPixel() const + { + wxMISSING_IMPLEMENTATION( "wxColour::GetPixel" ); +Index: wxWidgets-trunk/src/qt/dc.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/dc.cpp ++++ wxWidgets-trunk/src/qt/dc.cpp +@@ -128,7 +128,7 @@ void wxQtDCImpl::SetBrush(const wxBrush& + { + // Use a monochrome mask: use foreground color for the mask + QBrush b(brush.GetHandle()); +- b.setColor(m_textForegroundColour.GetHandle()); ++ b.setColor(*m_textForegroundColour.GetHandle()); + b.setTexture(b.texture().mask()); + m_qtPainter->setBrush(b); + } +@@ -553,7 +553,7 @@ void wxQtDCImpl::DoDrawEllipse(wxCoord x + // Save pen/brush + savedBrush = m_qtPainter->brush(); + // Fill with text background color ("no fill" like in wxGTK): +- m_qtPainter->setBrush(QBrush(m_textBackgroundColour.GetHandle())); ++ m_qtPainter->setBrush(QBrush(*m_textBackgroundColour.GetHandle())); + } + + // Draw +@@ -598,8 +598,8 @@ void wxQtDCImpl::DoDrawBitmap(const wxBi + QPen savedPen = m_qtPainter->pen(); + + //Use text colors +- m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); +- m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); ++ m_qtPainter->setBackground(QBrush(*m_textBackgroundColour.GetHandle())); ++ m_qtPainter->setPen(QPen(*m_textForegroundColour.GetHandle())); + + //Draw + m_qtPainter->drawPixmap(x, y, pix); +@@ -629,7 +629,7 @@ void wxQtDCImpl::DoDrawBitmap(const wxBi + void wxQtDCImpl::DoDrawText(const wxString& text, wxCoord x, wxCoord y) + { + QPen savedPen = m_qtPainter->pen(); +- m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); ++ m_qtPainter->setPen(QPen(*m_textForegroundColour.GetHandle())); + + // Disable logical function + QPainter::CompositionMode savedOp = m_qtPainter->compositionMode(); +@@ -643,7 +643,7 @@ void wxQtDCImpl::DoDrawText(const wxStri + QBrush savedBrush = m_qtPainter->background(); + + //Use text colors +- m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); ++ m_qtPainter->setBackground(QBrush(*m_textBackgroundColour.GetHandle())); + + //Draw + m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text)); +@@ -672,7 +672,7 @@ void wxQtDCImpl::DoDrawRotatedText(const + m_qtPainter->rotate(-angle); + + QPen savedPen = m_qtPainter->pen(); +- m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); ++ m_qtPainter->setPen(QPen(*m_textForegroundColour.GetHandle())); + + // Disable logical function + QPainter::CompositionMode savedOp = m_qtPainter->compositionMode(); +@@ -686,7 +686,7 @@ void wxQtDCImpl::DoDrawRotatedText(const + QBrush savedBrush = m_qtPainter->background(); + + //Use text colors +- m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); ++ m_qtPainter->setBackground(QBrush(*m_textBackgroundColour.GetHandle())); + + //Draw + m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text)); +Index: wxWidgets-trunk/src/qt/listctrl.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/listctrl.cpp ++++ wxWidgets-trunk/src/qt/listctrl.cpp +@@ -336,9 +336,9 @@ bool wxListCtrl::SetItem(wxListItem& inf + if ( info.GetFont().IsOk() ) + qitem->setFont(col, info.GetFont().GetHandle() ); + if ( info.GetTextColour().IsOk() ) +- qitem->setTextColor(col, info.GetTextColour().GetHandle()); ++ qitem->setTextColor(col, *info.GetTextColour().GetHandle()); + if ( info.GetBackgroundColour().IsOk() ) +- qitem->setBackgroundColor(col, info.GetBackgroundColour().GetHandle()); ++ qitem->setBackgroundColor(col, *info.GetBackgroundColour().GetHandle()); + } + return true; + } +Index: wxWidgets-trunk/src/qt/pen.cpp +=================================================================== +--- wxWidgets-trunk.orig/src/qt/pen.cpp ++++ wxWidgets-trunk/src/qt/pen.cpp +@@ -247,7 +247,7 @@ wxPen::wxPen( const wxColour &colour, in + m_refData = new wxPenRefData(); + M_PENDATA.setWidth(width); + M_PENDATA.setStyle(ConvertPenStyle(style)); +- M_PENDATA.setColor(colour.GetHandle()); ++ M_PENDATA.setColor(*colour.GetHandle()); + } + + wxPen::wxPen(const wxColour& col, int width, int style) +@@ -255,7 +255,7 @@ wxPen::wxPen(const wxColour& col, int wi + m_refData = new wxPenRefData(); + M_PENDATA.setWidth(width); + M_PENDATA.setStyle(ConvertPenStyle((wxPenStyle)style)); +- M_PENDATA.setColor(col.GetHandle()); ++ M_PENDATA.setColor(*col.GetHandle()); + } + + +@@ -276,7 +276,7 @@ bool wxPen::operator!=(const wxPen& pen) + void wxPen::SetColour(const wxColour& col) + { + AllocExclusive(); +- M_PENDATA.setColor(col.GetHandle()); ++ M_PENDATA.setColor(*col.GetHandle()); + } + + void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b)