[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [calligra/kexi-frameworks7-staniek] kexi: Kexi: Fix crashes related to style proxies: just pass the
From: Jaroslaw Staniek <staniek () kde ! org>
Date: 2015-06-30 20:24:25
Message-ID: E1ZA24v-0006Ps-II () scm ! kde ! org
[Download RAW message or body]
Git commit cbbdacea471764fd7f443df5eb1a29f285c97cf0 by Jaroslaw Staniek.
Committed on 30/06/2015 at 20:16.
Pushed by staniek into branch 'kexi-frameworks7-staniek'.
Kexi: Fix crashes related to style proxies: just pass the style name instead of a \
pointer
M +2 -2 kexi/formeditor/form.cpp
M +2 -2 kexi/formeditor/form_p.cpp
M +1 -1 kexi/formeditor/form_p.h
M +4 -4 kexi/main/KexiMainWindow_p.cpp
M +1 -1 kexi/main/KexiMainWindow_p.h
M +3 -3 kexi/plugins/forms/widgets/kexidblineedit.cpp
M +4 -4 kexi/widget/tableview/KexiTableScrollAreaHeader.cpp
M +6 -3 kexi/widget/utils/kexicomboboxdropdownbutton.cpp
M +4 -3 kexi/widget/utils/kexidropdownbutton.cpp
http://commits.kde.org/calligra/cbbdacea471764fd7f443df5eb1a29f285c97cf0
diff --git a/kexi/formeditor/form.cpp b/kexi/formeditor/form.cpp
index 18167ff..e2c56bd 100644
--- a/kexi/formeditor/form.cpp
+++ b/kexi/formeditor/form.cpp
@@ -299,7 +299,7 @@ void Form::createToplevel(QWidget *container, FormWidget \
*formWidget, const QByt delete d->designModeStyle;
d->designModeStyle = 0;
if (d->mode == DesignMode) {
- d->designModeStyle = new DesignModeStyle(d->topTree->widget()->style());
+ d->designModeStyle = new \
DesignModeStyle(d->topTree->widget()->style()->objectName()); \
d->designModeStyle->setParent(this); \
d->topTree->widget()->setStyle(d->designModeStyle); }
@@ -365,7 +365,7 @@ void Form::setMode(Mode mode)
{
d->mode = mode;
if (d->mode == DesignMode) {
- d->designModeStyle = new DesignModeStyle(d->widget->style());
+ d->designModeStyle = new DesignModeStyle(d->widget->style()->objectName());
d->designModeStyle->setParent(this);
d->widget->setStyle(d->designModeStyle);
return;
diff --git a/kexi/formeditor/form_p.cpp b/kexi/formeditor/form_p.cpp
index b170db8..c09c453 100644
--- a/kexi/formeditor/form_p.cpp
+++ b/kexi/formeditor/form_p.cpp
@@ -28,8 +28,8 @@
using namespace KFormDesigner;
-DesignModeStyle::DesignModeStyle(QStyle* parentStyle)
- : QProxyStyle(parentStyle)
+DesignModeStyle::DesignModeStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName)
{
}
diff --git a/kexi/formeditor/form_p.h b/kexi/formeditor/form_p.h
index 50626b4..dcc174f 100644
--- a/kexi/formeditor/form_p.h
+++ b/kexi/formeditor/form_p.h
@@ -50,7 +50,7 @@ class ObjectTree;
class DesignModeStyle : public QProxyStyle
{
public:
- explicit DesignModeStyle(QStyle* parentStyle);
+ explicit DesignModeStyle(const QString &baseStyleName);
//! Reimplemented to remove handling of the State_MouseOver state.
virtual void drawControl(ControlElement element, const QStyleOption *option,
diff --git a/kexi/main/KexiMainWindow_p.cpp b/kexi/main/KexiMainWindow_p.cpp
index 6f8f0ce..e82eda1 100644
--- a/kexi/main/KexiMainWindow_p.cpp
+++ b/kexi/main/KexiMainWindow_p.cpp
@@ -231,7 +231,7 @@ void KexiMainMenu::showEvent(QShowEvent * event)
if (KDE::version() < KDE_MAKE_VERSION(4, 8, 0) // a fix is apparently needed \
for glitch in KDE < 4.8 && styleName == "oxygen")
{
- KexiMenuWidgetStyle *customStyle = new \
KexiMenuWidgetStyle(m_menuWidget->style(), this); + KexiMenuWidgetStyle \
*customStyle = new KexiMenuWidgetStyle(m_menuWidget->style()->objectName(), this); \
m_menuWidget->setStyle(customStyle); }
#endif
@@ -302,8 +302,8 @@ static bool isSpecificTabStyle(const QString &styleName)
return styleName == "oxygen" || styleName == "qtcurve" || styleName == "gtk+";
}
-KexiTabbedToolBarStyle::KexiTabbedToolBarStyle(QStyle *style)
- : QProxyStyle(style)
+KexiTabbedToolBarStyle::KexiTabbedToolBarStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName)
{
}
@@ -455,7 +455,7 @@ KexiTabbedToolBarTabBar::KexiTabbedToolBarTabBar(QWidget *parent)
: QTabBar(parent)
{
setObjectName("tabbar");
- customStyle = new KexiTabbedToolBarStyle(style());
+ customStyle = new KexiTabbedToolBarStyle(style()->objectName());
customStyle->setParent(this);
setStyle(customStyle);
installEventFilter(parent);
diff --git a/kexi/main/KexiMainWindow_p.h b/kexi/main/KexiMainWindow_p.h
index 2c302ec..d67b424 100644
--- a/kexi/main/KexiMainWindow_p.h
+++ b/kexi/main/KexiMainWindow_p.h
@@ -307,7 +307,7 @@ public:
class KexiTabbedToolBarStyle : public QProxyStyle
{
public:
- explicit KexiTabbedToolBarStyle(QStyle *style);
+ explicit KexiTabbedToolBarStyle(const QString &baseStyleName);
virtual ~KexiTabbedToolBarStyle();
diff --git a/kexi/plugins/forms/widgets/kexidblineedit.cpp \
b/kexi/plugins/forms/widgets/kexidblineedit.cpp index cdb8606..7332778 100644
--- a/kexi/plugins/forms/widgets/kexidblineedit.cpp
+++ b/kexi/plugins/forms/widgets/kexidblineedit.cpp
@@ -56,8 +56,8 @@ public:
class KexiDBLineEditStyle : public QProxyStyle
{
public:
- explicit KexiDBLineEditStyle(QStyle* parentStyle)
- : QProxyStyle(parentStyle), indent(0)
+ explicit KexiDBLineEditStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName), indent(0)
{
}
virtual ~KexiDBLineEditStyle() {
@@ -111,7 +111,7 @@ KexiDBLineEdit::KexiDBLineEdit(QWidget *parent)
connect(this, SIGNAL(cursorPositionChanged(int,int)),
this, SLOT(slotCursorPositionChanged(int,int)));
- m_internalStyle = new KexiDBLineEditStyle(style());
+ m_internalStyle = new KexiDBLineEditStyle(style()->objectName());
m_internalStyle->setParent(this);
m_internalStyle->setIndent(KexiFormUtils::dataSourceTagIcon().width());
m_inStyleChangeEvent = true; // do not allow QLineEdit::event() to touch the \
style
diff --git a/kexi/widget/tableview/KexiTableScrollAreaHeader.cpp \
b/kexi/widget/tableview/KexiTableScrollAreaHeader.cpp index 71d6f1c..b7a3e7e 100644
--- a/kexi/widget/tableview/KexiTableScrollAreaHeader.cpp
+++ b/kexi/widget/tableview/KexiTableScrollAreaHeader.cpp
@@ -38,8 +38,8 @@
class KexiTableScrollAreaHeaderStyle : public QProxyStyle
{
public:
- KexiTableScrollAreaHeaderStyle(QStyle *parentStyle)
- : QProxyStyle(parentStyle)
+ KexiTableScrollAreaHeaderStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName)
{
}
virtual ~KexiTableScrollAreaHeaderStyle() {}
@@ -123,9 +123,9 @@ KexiTableScrollAreaHeader::KexiTableScrollAreaHeader(Qt::Orientation \
orientation
KexiTableScrollAreaHeader::~KexiTableScrollAreaHeader()
{
+ setModel(0); // avoid referencing deleted model
setStyle(0);
delete d->privateStyle;
- setModel(0); // avoid referencing deleted model
delete d;
}
@@ -146,7 +146,7 @@ void KexiTableScrollAreaHeader::styleChanged()
setStyle(0);
delete static_cast<QStyle*>(d->privateStyle);
}
- setStyle(d->privateStyle = new KexiTableScrollAreaHeaderStyle(style()));
+ setStyle(d->privateStyle = new \
KexiTableScrollAreaHeaderStyle(style()->objectName())); \
d->privateStyle->setParent(this); d->styleChangeEnabled = true;
}
diff --git a/kexi/widget/utils/kexicomboboxdropdownbutton.cpp \
b/kexi/widget/utils/kexicomboboxdropdownbutton.cpp index 66004ff..9441a06 100644
--- a/kexi/widget/utils/kexicomboboxdropdownbutton.cpp
+++ b/kexi/widget/utils/kexicomboboxdropdownbutton.cpp
@@ -29,8 +29,8 @@
class KexiComboBoxDropDownButtonStyle : public QProxyStyle
{
public:
- explicit KexiComboBoxDropDownButtonStyle(QStyle *parentStyle)
- : QProxyStyle(parentStyle)
+ explicit KexiComboBoxDropDownButtonStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName)
{
}
virtual ~KexiComboBoxDropDownButtonStyle() {}
@@ -65,6 +65,9 @@ KexiComboBoxDropDownButton::KexiComboBoxDropDownButton(QWidget \
*parent)
KexiComboBoxDropDownButton::~KexiComboBoxDropDownButton()
{
+ setStyle(0);
+ delete d->privateStyle;
+ d->privateStyle = 0;
delete d;
}
@@ -77,7 +80,7 @@ void KexiComboBoxDropDownButton::styleChanged()
setStyle(0);
delete static_cast<QStyle*>(d->privateStyle);
}
- setStyle(d->privateStyle = new KexiComboBoxDropDownButtonStyle(style()));
+ setStyle(d->privateStyle = new \
KexiComboBoxDropDownButtonStyle(style()->objectName())); \
d->privateStyle->setParent(this); d->styleChangeEnabled = true;
}
diff --git a/kexi/widget/utils/kexidropdownbutton.cpp \
b/kexi/widget/utils/kexidropdownbutton.cpp index de0e27b..507335a 100644
--- a/kexi/widget/utils/kexidropdownbutton.cpp
+++ b/kexi/widget/utils/kexidropdownbutton.cpp
@@ -32,8 +32,8 @@
class KexiDropDownButtonStyle : public QProxyStyle
{
public:
- explicit KexiDropDownButtonStyle(QStyle *parentStyle)
- : QProxyStyle(parentStyle)
+ explicit KexiDropDownButtonStyle(const QString &baseStyleName)
+ : QProxyStyle(baseStyleName)
{
}
virtual ~KexiDropDownButtonStyle() {}
@@ -65,7 +65,7 @@ KexiDropDownButton::KexiDropDownButton(QWidget *parent)
: QToolButton(parent)
{
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
- KexiDropDownButtonStyle *s = new KexiDropDownButtonStyle(style());
+ KexiDropDownButtonStyle *s = new KexiDropDownButtonStyle(style()->objectName());
setStyle(s);
s->setParent(this);
//! @todo get this from a KStyle
@@ -82,6 +82,7 @@ KexiDropDownButton::KexiDropDownButton(QWidget *parent)
KexiDropDownButton::~KexiDropDownButton()
{
+ setStyle(0);
}
QSize KexiDropDownButton::sizeHint() const
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic