[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kexi] src: Check results of dynamic_cast, add missing initializations, remove unused variables
From:       Jaroslaw Staniek <staniek () kde ! org>
Date:       2016-02-29 23:12:16
Message-ID: E1aaWzA-0000sv-EG () scm ! kde ! org
[Download RAW message or body]

Git commit ec6f42db870c911637bfc4c022c8b062e0feef7f by Jaroslaw Staniek.
Committed on 29/02/2016 at 23:07.
Pushed by staniek into branch 'master'.

Check results of dynamic_cast, add missing initializations, remove unused variables

(from Coverity reports)

M  +3    -2    src/formeditor/commands.cpp
M  +2    -2    src/formeditor/form.cpp
M  +3    -2    src/formeditor/formIO.cpp
M  +2    -1    src/formeditor/form_p.cpp
M  +3    -3    src/formeditor/widgetwithsubpropertiesinterface.cpp
M  +0    -1    src/kexiutils/KexiFadeWidgetEffect.cpp
M  +1    -2    src/kexiutils/KexiFadeWidgetEffect_p.h
M  +10   -3    src/main/KexiMainWindow.cpp
M  +3    -0    src/main/KexiMainWindow_p.cpp
M  +9    -8    src/plugins/forms/kexiformmanager.cpp
M  +16   -13   src/plugins/forms/kexiformscrollview.cpp
M  +17   -7    src/plugins/forms/widgets/kexidbform.cpp
M  +2    -2    src/plugins/forms/widgets/kexidblineedit.cpp
M  +6    -2    src/plugins/importexport/csv/kexicsvimportdialog.cpp
M  +0    -1    src/plugins/importexport/csv/kexicsvwidgets.cpp
M  +16   -8    src/plugins/queries/kexiqueryview.cpp
M  +0    -2    src/plugins/reports/kexireportdesignview.h
M  +2    -2    src/plugins/reports/kexireportview.cpp
M  +5    -1    src/widget/dataviewcommon/kexiformdataiteminterface.cpp
M  +2    -2    src/widget/kexislider.cpp
M  +3    -2    src/widget/tableview/KexiDataTableView.cpp
M  +11   -9    src/widget/tableview/KexiTableScrollAreaHeader.cpp

http://commits.kde.org/kexi/ec6f42db870c911637bfc4c022c8b062e0feef7f

diff --git a/src/formeditor/commands.cpp b/src/formeditor/commands.cpp
index 0c93364..0402a4d 100644
--- a/src/formeditor/commands.cpp
+++ b/src/formeditor/commands.cpp
@@ -1003,8 +1003,9 @@ void InsertWidgetCommand::execute()
     }
     //assign item for its widget if it supports DesignTimeDynamicChildWidgetHandler \
interface  //(e.g. KexiDBAutoField)
-    if (d->form->mode() == Form::DesignMode && \
                dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w)) {
-        dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w)->assignItem(item);
+    DesignTimeDynamicChildWidgetHandler *childHandler = \
dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w); +    if (d->form->mode() == \
Form::DesignMode && childHandler) { +        childHandler->assignItem(item);
     }
 
     // We add the autoSaveProperties in the modifProp list of the ObjectTreeItem, so \
                that they are saved later
diff --git a/src/formeditor/form.cpp b/src/formeditor/form.cpp
index 4088eaa..6d198d3 100644
--- a/src/formeditor/form.cpp
+++ b/src/formeditor/form.cpp
@@ -1520,8 +1520,8 @@ void Form::createPropertiesForWidget(QWidget *w)
         const char* propertyName = meta.name();
         QWidget *subwidget = subMeta.isValid()//subpropIface
                              ? subpropIface->subwidget() : w;
-        WidgetInfo *subwinfo = library()->widgetInfoForClassName(
-                                   subwidget->metaObject()->className());
+        WidgetInfo *subwinfo = subwidget ? library()->widgetInfoForClassName(
+                                   subwidget->metaObject()->className()) : 0;
 //  qDebug() << "$$$ " << subwidget->className();
 
         if (   subwinfo
diff --git a/src/formeditor/formIO.cpp b/src/formeditor/formIO.cpp
index a064deb..61b193a 100644
--- a/src/formeditor/formIO.cpp
+++ b/src/formeditor/formIO.cpp
@@ -1141,8 +1141,9 @@ void FormIO::loadWidget(Container *container, const QDomElement \
&el, QWidget *pa  }
     //assign item for its widget if it supports DesignTimeDynamicChildWidgetHandler \
interface  //(e.g. KexiDBAutoField)
-    if (container->form()->mode() == Form::DesignMode && \
                dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w)) {
-        dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w)->assignItem(item);
+    DesignTimeDynamicChildWidgetHandler *childHandler = \
dynamic_cast<DesignTimeDynamicChildWidgetHandler*>(w); +    if \
(container->form()->mode() == Form::DesignMode && childHandler) { +        \
childHandler->assignItem(item);  }
 
     // if we are inside a Grid, we need to insert the widget in the good cell
diff --git a/src/formeditor/form_p.cpp b/src/formeditor/form_p.cpp
index c09c453..445afbb 100644
--- a/src/formeditor/form_p.cpp
+++ b/src/formeditor/form_p.cpp
@@ -45,7 +45,8 @@ void DesignModeStyle::drawControl(ControlElement element, const \
QStyleOption *op  template <class StyleOptionClass>
 static StyleOptionClass *cloneStyleOption(const QStyleOption *option)
 {
-    return new StyleOptionClass( *qstyleoption_cast<const StyleOptionClass*>(option) \
); +    const StyleOptionClass *o = qstyleoption_cast<const \
StyleOptionClass*>(option); +    return o ? new StyleOptionClass(*o) : new \
StyleOptionClass();  }
 
 QStyleOption* DesignModeStyle::alterOption(ControlElement element, const \
                QStyleOption *option) const
diff --git a/src/formeditor/widgetwithsubpropertiesinterface.cpp \
b/src/formeditor/widgetwithsubpropertiesinterface.cpp index 903fa0c..0bfb841 100644
--- a/src/formeditor/widgetwithsubpropertiesinterface.cpp
+++ b/src/formeditor/widgetwithsubpropertiesinterface.cpp
@@ -56,15 +56,15 @@ void WidgetWithSubpropertiesInterface::setSubwidget(QWidget \
*widget)  d->subwidget = widget;
     d->subproperties.clear();
     QSet<QByteArray> addedSubproperties;
-    if (d->subwidget) {
+    const QObject *thisObject = dynamic_cast<const QObject*>(this);
+    if (thisObject && d->subwidget) {
         //remember properties in the subwidget that are not present in the parent
         for (const QMetaObject *metaObject = d->subwidget->metaObject(); metaObject;
                 metaObject = metaObject->superClass()) {
             QList<QMetaProperty> properties(
                 KexiUtils::propertiesForMetaObjectWithInherited(metaObject));
             foreach(const QMetaProperty &property, properties) {
-                if (dynamic_cast<QObject*>(this)
-                    && -1 != \
dynamic_cast<QObject*>(this)->metaObject()->indexOfProperty(property.name()) +        \
if (-1 != thisObject->metaObject()->indexOfProperty(property.name())  && \
!addedSubproperties.contains(property.name()))  {
                     d->subproperties.insert(property.name());
diff --git a/src/kexiutils/KexiFadeWidgetEffect.cpp \
b/src/kexiutils/KexiFadeWidgetEffect.cpp index 660c5f8..7e792f9 100644
--- a/src/kexiutils/KexiFadeWidgetEffect.cpp
+++ b/src/kexiutils/KexiFadeWidgetEffect.cpp
@@ -97,7 +97,6 @@ KexiFadeWidgetEffect::KexiFadeWidgetEffect(QWidget *destWidget, int \
defaultDurat  : QWidget(destWidget ? destWidget->parentWidget() : 0),
       d(new KexiFadeWidgetEffectPrivate(destWidget))
 {
-    d->q = this;
     d->defaultDuration = defaultDuration;
     Q_ASSERT(destWidget && destWidget->parentWidget());
     if (!destWidget || !destWidget->parentWidget() || !destWidget->isVisible() ||
diff --git a/src/kexiutils/KexiFadeWidgetEffect_p.h \
b/src/kexiutils/KexiFadeWidgetEffect_p.h index 268b396..d99ae64 100644
--- a/src/kexiutils/KexiFadeWidgetEffect_p.h
+++ b/src/kexiutils/KexiFadeWidgetEffect_p.h
@@ -29,8 +29,7 @@
 class KexiFadeWidgetEffectPrivate
 {
 public:
-    KexiFadeWidgetEffectPrivate(QWidget *_destWidget);
-    KexiFadeWidgetEffect *q;
+    explicit KexiFadeWidgetEffectPrivate(QWidget *_destWidget);
 
     QPixmap transition(const QPixmap &from, const QPixmap &to, qreal amount) const;
     void finished();
diff --git a/src/main/KexiMainWindow.cpp b/src/main/KexiMainWindow.cpp
index 83c4c53..101e13b 100644
--- a/src/main/KexiMainWindow.cpp
+++ b/src/main/KexiMainWindow.cpp
@@ -250,21 +250,28 @@ void KexiMainWindowTabWidget::mousePressEvent(QMouseEvent \
*event)  
 void KexiMainWindowTabWidget::closeTab()
 {
-    dynamic_cast<KexiMainWindow*>(KexiMainWindowIface::global())->closeWindowForTab(m_tabIndex);
 +    KexiMainWindow *main = \
dynamic_cast<KexiMainWindow*>(KexiMainWindowIface::global()); +    if (main) {
+        main->closeWindowForTab(m_tabIndex);
+    }
 }
 
 tristate KexiMainWindowTabWidget::closeAllTabs()
 {
     tristate alternateResult = true;
     QList<KexiWindow*> windowList;
+    KexiMainWindow *main = \
dynamic_cast<KexiMainWindow*>(KexiMainWindowIface::global()); +    if (!main) {
+        return alternateResult;
+    }
     for (int i = 0; i < count(); i++) {
-        KexiWindow *window = \
dynamic_cast<KexiMainWindow*>(KexiMainWindowIface::global())->windowForTab(i); +      \
KexiWindow *window = main->windowForTab(i);  if (window) {
             windowList.append(window);
         }
     }
     foreach (KexiWindow *window, windowList) {
-        tristate result = \
dynamic_cast<KexiMainWindow*>(KexiMainWindowIface::global())->closeWindow(window); +  \
tristate result = main->closeWindow(window);  if (result != true && result != false) \
{  return result;
         }
diff --git a/src/main/KexiMainWindow_p.cpp b/src/main/KexiMainWindow_p.cpp
index d89cc19..d72e2a0 100644
--- a/src/main/KexiMainWindow_p.cpp
+++ b/src/main/KexiMainWindow_p.cpp
@@ -1345,6 +1345,9 @@ void \
                KexiMainWindow::Private::setTabBarVisible(KMultiTabBar::KMultiTabBarPositio
                
                                                KexiDockWidget *dockWidget, bool \
visible)  {
     KMultiTabBar *mtbar = multiTabBars.value(position);
+    if (!mtbar) {
+        return;
+    }
     if (!visible) {
         mtbar->removeTab(id);
     }
diff --git a/src/plugins/forms/kexiformmanager.cpp \
b/src/plugins/forms/kexiformmanager.cpp index d7fc7ce..7b5e089 100644
--- a/src/plugins/forms/kexiformmanager.cpp
+++ b/src/plugins/forms/kexiformmanager.cpp
@@ -345,17 +345,18 @@ KexiFormView* KexiFormManager::activeFormViewWidget() const
     KexiWindow *currentWindow = KexiMainWindowIface::global()->currentWindow();
     if (!currentWindow)
         return 0;
-    KexiView *currentView = currentWindow->selectedView();
-    KFormDesigner::Form *form;
-    if (!currentView
-        || currentView->viewMode()!=Kexi::DesignViewMode
-        || !dynamic_cast<KexiFormView*>(currentView)
-        || !(form = dynamic_cast<KexiFormView*>(currentView)->form())
-       )
-    {
+    KexiFormView *currentView = \
dynamic_cast<KexiFormView*>(currentWindow->selectedView()); +    if (!currentView || \
currentView->viewMode()!=Kexi::DesignViewMode) { +        return 0;
+    }
+    KFormDesigner::Form *form = currentView->form();
+    if (!form) {
         return 0;
     }
     KexiDBForm *dbform = dynamic_cast<KexiDBForm*>(form->formWidget());
+    if (!dbform) {
+        return 0;
+    }
     KexiFormScrollView *scrollViewWidget = \
dynamic_cast<KexiFormScrollView*>(dbform->dataAwareObject());  if (!scrollViewWidget)
         return 0;
diff --git a/src/plugins/forms/kexiformscrollview.cpp \
b/src/plugins/forms/kexiformscrollview.cpp index 931567d..c8d3fbe 100644
--- a/src/plugins/forms/kexiformscrollview.cpp
+++ b/src/plugins/forms/kexiformscrollview.cpp
@@ -447,10 +447,15 @@ void KexiFormScrollView::valueChanged(KexiDataItemInterface* \
                item)
         dbFormWidget()->editedItem = dynamic_cast<KexiFormDataItemInterface*>(item);
         startEditCurrentCell();
     }
-    fillDuplicatedDataItems(dynamic_cast<KexiFormDataItemInterface*>(item), \
                item->value());
-
-    //value changed: clear 'default value' mode (e.g. a blue italic text)
-    dynamic_cast<KexiFormDataItemInterface*>(item)->setDisplayDefaultValue(dynamic_cast<QWidget*>(item), \
false); +    KexiFormDataItemInterface *formItem = \
dynamic_cast<KexiFormDataItemInterface*>(item); +    if (formItem) {
+        fillDuplicatedDataItems(formItem, item->value());
+        QWidget *widget = dynamic_cast<QWidget*>(item);
+        if (widget) {
+            //value changed: clear 'default value' mode (e.g. a blue italic text)
+            formItem->setDisplayDefaultValue(widget, false);
+        }
+    }
 }
 
 bool KexiFormScrollView::cursorAtNewRecord() const
@@ -524,16 +529,14 @@ bool KexiFormScrollView::cancelEditor()
 void KexiFormScrollView::updateAfterCancelRecordEditing()
 {
     foreach(KexiFormDataItemInterface *dataItemIface, m_dataItems) {
-        if (dynamic_cast<QWidget*>(dataItemIface)) {
-            qDebug()
-                << dynamic_cast<QWidget*>(dataItemIface)->metaObject()->className() \
                << " "
-                << dynamic_cast<QWidget*>(dataItemIface)->objectName();
+        QWidget *w = dynamic_cast<QWidget*>(dataItemIface);
+        if (w) {
+            qDebug() << w->metaObject()->className() << w->objectName();
+            const bool displayDefaultValue = \
shouldDisplayDefaultValueForItem(dataItemIface); +            \
dataItemIface->undoChanges(); +            if \
(dataItemIface->hasDisplayedDefaultValue() != displayDefaultValue) +                \
dataItemIface->setDisplayDefaultValue(w, displayDefaultValue);  }
-        const bool displayDefaultValue = \
                shouldDisplayDefaultValueForItem(dataItemIface);
-        dataItemIface->undoChanges();
-        if (dataItemIface->hasDisplayedDefaultValue() != displayDefaultValue)
-            dataItemIface->setDisplayDefaultValue(
-                dynamic_cast<QWidget*>(dataItemIface), displayDefaultValue);
     }
     recordNavigator()->showEditingIndicator(false);
     dbFormWidget()->editedItem = 0;
diff --git a/src/plugins/forms/widgets/kexidbform.cpp \
b/src/plugins/forms/widgets/kexidbform.cpp index 8e445f8..4f8196d 100644
--- a/src/plugins/forms/widgets/kexidbform.cpp
+++ b/src/plugins/forms/widgets/kexidbform.cpp
@@ -319,8 +319,10 @@ bool KexiDBForm::eventFilter(QObject * watched, QEvent * e)
 
                     if (widgetToFocus) {
                         widgetToFocus->setFocus();
-                        if (dynamic_cast<KexiFormDataItemInterface*>(widgetToFocus))
-                            \
dynamic_cast<KexiFormDataItemInterface*>(widgetToFocus)->selectAllOnFocusIfNeeded(); \
+                        KexiFormDataItemInterface *formItem = \
dynamic_cast<KexiFormDataItemInterface*>(widgetToFocus); +                        if \
(formItem) { +                            formItem->selectAllOnFocusIfNeeded();
+                        }
                     }
                     else {
                         qWarning() << "widgetToFocus not found!";
@@ -360,11 +362,18 @@ bool KexiDBForm::eventFilter(QObject * watched, QEvent * e)
                     return true; //ignore
                 //the watched widget can be a subwidget of a real widget, e.g. \
autofield: find it  //QWidget* realWidget = static_cast<QWidget*>(watched);
-                while (dynamic_cast<KexiDataItemInterface*>(realWidget) && \
                dynamic_cast<KexiDataItemInterface*>(realWidget)->parentDataItemInterface())
                
-                    realWidget = \
dynamic_cast<QWidget*>(dynamic_cast<KexiDataItemInterface*>(realWidget)->parentDataItemInterface());
 +                KexiDataItemInterface *iface;
+                while ((iface = dynamic_cast<KexiDataItemInterface*>(realWidget))
+                       && iface->parentDataItemInterface())
+                {
+                    realWidget = \
dynamic_cast<QWidget*>(iface->parentDataItemInterface()); +                }
 
                 d->setOrderedFocusWidgetsIteratorTo(realWidget);
-                dynamic_cast<KexiDataItemInterface*>(realWidget)->moveCursorToEnd();
+                iface = dynamic_cast<KexiDataItemInterface*>(realWidget);
+                if (iface) {
+                    iface->moveCursorToEnd();
+                }
 
                 //qDebug() << realWidget->objectName();
 
@@ -429,9 +438,10 @@ bool KexiDBForm::eventFilter(QObject * watched, QEvent * e)
                         (*d->orderedFocusWidgetsIterator)->setFocus();
                         //qDebug() << "focusing " << \
(*d->orderedFocusWidgetsIterator)->objectName();  }
-                    if (dynamic_cast<KexiFormDataItemInterface*>(widgetToSelectAll)) \
{ +                    KexiFormDataItemInterface *formItem = \
dynamic_cast<KexiFormDataItemInterface*>(widgetToSelectAll); +                    if \
                (formItem) {
                         //qDebug() << "widgetToSelectAll:" << widgetToSelectAll;
-                        \
dynamic_cast<KexiFormDataItemInterface*>(widgetToSelectAll)->selectAllOnFocusIfNeeded();
 +                        formItem->selectAllOnFocusIfNeeded();
                     }
                 }
                 return true;
diff --git a/src/plugins/forms/widgets/kexidblineedit.cpp \
b/src/plugins/forms/widgets/kexidblineedit.cpp index 7332778..adb4ff6 100644
--- a/src/plugins/forms/widgets/kexidblineedit.cpp
+++ b/src/plugins/forms/widgets/kexidblineedit.cpp
@@ -70,7 +70,7 @@ public:
     QRect subElementRect(SubElement element, const QStyleOption *option, const \
QWidget *widget = 0) const  {
         const KFormDesigner::FormWidgetInterface *formWidget = dynamic_cast<const \
                KFormDesigner::FormWidgetInterface*>(widget);
-        if (formWidget->designMode()) {
+        if (formWidget && formWidget->designMode()) {
             const KexiFormDataItemInterface *dataItemIface = dynamic_cast<const \
                KexiFormDataItemInterface*>(widget);
             if (dataItemIface && !dataItemIface->dataSource().isEmpty() && \
!formWidget->editingMode()) {  if (element == SE_LineEditContents) {
@@ -313,7 +313,7 @@ void KexiDBLineEdit::paintEvent(QPaintEvent *pe)
 {
     QLineEdit::paintEvent(pe);
     KFormDesigner::FormWidgetInterface *formWidget = \
                dynamic_cast<KFormDesigner::FormWidgetInterface*>(this);
-    if (formWidget->designMode()) {
+    if (formWidget && formWidget->designMode()) {
         KexiFormDataItemInterface *dataItemIface = \
                dynamic_cast<KexiFormDataItemInterface*>(this);
         if (dataItemIface && !dataItemIface->dataSource().isEmpty() && \
!formWidget->editingMode()) {  // draw "data source tag" icon
diff --git a/src/plugins/importexport/csv/kexicsvimportdialog.cpp \
b/src/plugins/importexport/csv/kexicsvimportdialog.cpp index b7300a2..afa1d90 100644
--- a/src/plugins/importexport/csv/kexicsvimportdialog.cpp
+++ b/src/plugins/importexport/csv/kexicsvimportdialog.cpp
@@ -432,10 +432,11 @@ void KexiCSVImportDialog::next()
 
             KexiPart::Part *part = \
Kexi::partManager().partForPluginId("org.kexi-project.table");  KDbObject tmp;
-            tristate res = m_conn->loadObjectData(
+            tristate res = (part && part->info()) ? m_conn->loadObjectData(
                     project->typeIdForPluginId(part->info()->pluginId()),
                     m_newTableWidget->nameText(),
-                    &tmp);
+                    &tmp)
+                                                  : false;
             if (res == true) {
                 KMessageBox::information(this,
                         "<p>"
@@ -444,6 +445,9 @@ void KexiCSVImportDialog::next()
                         + "</p><p>" + xi18n("Please choose other name.") + "</p>"
                         );
                 return;
+            } else if (res == false) {
+                qFatal("Plugin org.kexi-project.table not found");
+                return;
             }
         } else {
             m_partItemForSavedTable = m_tablesList->selectedPartItem();
diff --git a/src/plugins/importexport/csv/kexicsvwidgets.cpp \
b/src/plugins/importexport/csv/kexicsvwidgets.cpp index b4c6054..f6edf57 100644
--- a/src/plugins/importexport/csv/kexicsvwidgets.cpp
+++ b/src/plugins/importexport/csv/kexicsvwidgets.cpp
@@ -71,7 +71,6 @@ public:
     QString commentSymbol;
     QVector<QString> availablecommentSymbols;
     KComboBox* combo;
-    QLineEdit* commentSymbolEdit;
 };
 
 KexiCSVDelimiterWidget::KexiCSVDelimiterWidget(bool lineEditOnBottom, QWidget * \
                parent)
diff --git a/src/plugins/queries/kexiqueryview.cpp \
b/src/plugins/queries/kexiqueryview.cpp index 8ace272..53749ba 100644
--- a/src/plugins/queries/kexiqueryview.cpp
+++ b/src/plugins/queries/kexiqueryview.cpp
@@ -136,20 +136,28 @@ KDbObject* KexiQueryView::storeNewData(const KDbObject& object,
                                                 bool *cancel)
 {
     KexiView * view = window()->viewThatRecentlySetDirtyFlag();
-    if (dynamic_cast<KexiQueryDesignerGuiEditor*>(view))
-        return dynamic_cast<KexiQueryDesignerGuiEditor*>(view)->storeNewData(object, \
                options, cancel);
-    if (dynamic_cast<KexiQueryDesignerSQLView*>(view))
-        return dynamic_cast<KexiQueryDesignerSQLView*>(view)->storeNewData(object, \
options, cancel); +    KexiQueryDesignerGuiEditor *guiView = \
dynamic_cast<KexiQueryDesignerGuiEditor*>(view); +    if (guiView) {
+        return guiView->storeNewData(object, options, cancel);
+    }
+    KexiQueryDesignerSQLView *sqlView = \
dynamic_cast<KexiQueryDesignerSQLView*>(view); +    if (sqlView) {
+        return sqlView->storeNewData(object, options, cancel);
+    }
     return 0;
 }
 
 tristate KexiQueryView::storeData(bool dontAsk)
 {
     KexiView * view = window()->viewThatRecentlySetDirtyFlag();
-    if (dynamic_cast<KexiQueryDesignerGuiEditor*>(view))
-        return dynamic_cast<KexiQueryDesignerGuiEditor*>(view)->storeData(dontAsk);
-    if (dynamic_cast<KexiQueryDesignerSQLView*>(view))
-        return dynamic_cast<KexiQueryDesignerSQLView*>(view)->storeData(dontAsk);
+    KexiQueryDesignerGuiEditor *guiView = \
dynamic_cast<KexiQueryDesignerGuiEditor*>(view); +    if (guiView) {
+        return guiView->storeData(dontAsk);
+    }
+    KexiQueryDesignerSQLView *sqlView = \
dynamic_cast<KexiQueryDesignerSQLView*>(view); +    if (sqlView) {
+        return sqlView->storeData(dontAsk);
+    }
     return false;
 }
 
diff --git a/src/plugins/reports/kexireportdesignview.h \
b/src/plugins/reports/kexireportdesignview.h index 9b93e53..fdc267d 100644
--- a/src/plugins/reports/kexireportdesignview.h
+++ b/src/plugins/reports/kexireportdesignview.h
@@ -51,7 +51,6 @@ Q_SIGNALS:
 
 private:
     KReportDesigner *m_reportDesigner;
-    KPropertySet *m_propertySet;
     KexiReportPart::TempData* tempData() const;
     QScrollArea * m_scrollArea;
 
@@ -61,7 +60,6 @@ private:
     QAction *m_editPasteAction;
     QAction *m_editDeleteAction;
     QAction *m_editSectionAction;
-    QAction *m_parameterEdit;
     QAction *m_itemRaiseAction;
     QAction *m_itemLowerAction;
 
diff --git a/src/plugins/reports/kexireportview.cpp \
b/src/plugins/reports/kexireportview.cpp index 35ca0b9..298b6c8 100644
--- a/src/plugins/reports/kexireportview.cpp
+++ b/src/plugins/reports/kexireportview.cpp
@@ -54,7 +54,7 @@
 #include <QMimeDatabase>
 
 KexiReportView::KexiReportView(QWidget *parent)
-        : KexiView(parent), m_preRenderer(0), m_reportDocument(0) //! @todo KEXI3, \
m_kexi(0), m_functions(0) +        : KexiView(parent), m_preRenderer(0), \
m_reportDocument(0), m_functions(0) //! @todo KEXI3, m_kexi(0)  {
     setObjectName("KexiReportDesigner_DataView");
 
@@ -372,7 +372,7 @@ tristate KexiReportView::afterSwitchFrom(Kexi::ViewMode mode)
 //            }
 //            m_preRenderer->registerScriptObject(m_kexi, "Kexi");
             //If using a kexidb source, add a functions scripting object
-            if (tempData()->connectionDefinition.attribute("type") == "internal") {
+            if (!m_functions && tempData()->connectionDefinition.attribute("type") \
                == "internal") {
                 m_functions = new KRScriptFunctions(reportData, \
                KexiMainWindowIface::global()->project()->dbConnection());
                 m_preRenderer->registerScriptObject(m_functions, "field");
                 connect(m_preRenderer, SIGNAL(groupChanged(QMap<QString, \
                QVariant>)),
diff --git a/src/widget/dataviewcommon/kexiformdataiteminterface.cpp \
b/src/widget/dataviewcommon/kexiformdataiteminterface.cpp index 4500281..a2bd562 \
                100644
--- a/src/widget/dataviewcommon/kexiformdataiteminterface.cpp
+++ b/src/widget/dataviewcommon/kexiformdataiteminterface.cpp
@@ -72,7 +72,11 @@ void KexiFormDataItemInterface::cancelEditor()
 
 void KexiFormDataItemInterface::cancelEditor()
 {
-    QWidget *parentWidget = dynamic_cast<QWidget*>(this)->parentWidget();
+    QWidget *thisWidget = dynamic_cast<QWidget*>(this);
+    if (!thisWidget) {
+        return;
+    }
+    QWidget *parentWidget = thisWidget->parentWidget();
     KexiDataAwareObjectInterface *dataAwareObject = \
KexiUtils::findParentByType<KexiDataAwareObjectInterface*>(parentWidget);  if \
(dataAwareObject)  dataAwareObject->cancelEditor();
diff --git a/src/widget/kexislider.cpp b/src/widget/kexislider.cpp
index 0121a51..9633c56 100644
--- a/src/widget/kexislider.cpp
+++ b/src/widget/kexislider.cpp
@@ -79,13 +79,13 @@ protected:
         QStyleOptionSlider option;
         initStyleOption(&option);
 
-        const int& ticks( option.tickPosition );
+        const QSlider::TickPosition ticks( option.tickPosition );
         const int available(style()->proxy()->pixelMetric(QStyle::PM_SliderSpaceAvailable, \
&option, this));  int interval = option.tickInterval;
         if( interval < 1 ) interval = option.pageStep;
         if( interval < 1 ) return;
 
-        const QRect& r(option.rect);
+        const QRect r(option.rect);
         const QPalette palette(option.palette);
         const int fudge(style()->proxy()->pixelMetric(QStyle::PM_SliderLength, \
&option, this) / 2);  int current(option.minimum);
diff --git a/src/widget/tableview/KexiDataTableView.cpp \
b/src/widget/tableview/KexiDataTableView.cpp index 11c0a7f..9b3d8c2 100644
--- a/src/widget/tableview/KexiDataTableView.cpp
+++ b/src/widget/tableview/KexiDataTableView.cpp
@@ -110,9 +110,10 @@ bool KexiDataTableView::loadTableViewSettings(KDbTableViewData* \
data)  void
 KexiDataTableView::setData(KDbCursor *c)
 {
-    if (!dynamic_cast<KexiDataTableScrollArea*>(mainWidget()))
+    KexiDataTableScrollArea* area = \
dynamic_cast<KexiDataTableScrollArea*>(mainWidget()); +    if (!area)
         return;
-    dynamic_cast<KexiDataTableScrollArea*>(mainWidget())->setData(c);
+    area->setData(c);
 }
 
 void KexiDataTableView::filter()
diff --git a/src/widget/tableview/KexiTableScrollAreaHeader.cpp \
b/src/widget/tableview/KexiTableScrollAreaHeader.cpp index c3c4f9d..75d8652 100644
--- a/src/widget/tableview/KexiTableScrollAreaHeader.cpp
+++ b/src/widget/tableview/KexiTableScrollAreaHeader.cpp
@@ -51,42 +51,44 @@ public:
         const KexiTableScrollAreaHeader *headerWidget
                 = qobject_cast<const KexiTableScrollAreaHeader*>(parent());
         if (ce == CE_Header && option) {
-            QStyleOptionHeader newOption(*qstyleoption_cast<const \
QStyleOptionHeader*>(option)); +            const QStyleOptionHeader *existingOption \
= qstyleoption_cast<const QStyleOptionHeader*>(option); +            \
QScopedPointer<QStyleOptionHeader> newOption( +                    existingOption ? \
                new QStyleOptionHeader(*existingOption) : new QStyleOptionHeader);
             const int currentSection = headerWidget->orientation() == Qt::Horizontal
                                      ? headerWidget->currentIndex().column()
                                      : headerWidget->currentIndex().row();
 //            qDebug() << headerWidget->orientation() << currentSection <<
 //                        headerWidget->currentIndex().row() << \
headerWidget->currentIndex().column();  
-            if (newOption.section >= 0) {
+            if (newOption->section >= 0) {
                 int f1 = 0, f2 = 0;
-                if (newOption.section == currentSection) {
+                if (newOption->section == currentSection) {
                     f1 = 34;
                     f2 = 66;
                 }
                 else if \
(headerWidget->scrollArea()->appearance().recordMouseOverHighlightingEnabled  && \
                headerWidget->orientation() == Qt::Vertical
-                         && newOption.section == \
headerWidget->scrollArea()->highlightedRecordNumber()) +                         && \
newOption->section == headerWidget->scrollArea()->highlightedRecordNumber())  {
                     f1 = 10;
                     f2 = 90;
                 }
                 if (f1 > 0) {
-                    newOption.palette.setColor(QPalette::Button,
+                    newOption->palette.setColor(QPalette::Button,
                         KexiUtils::blendedColors(
                             headerWidget->selectionBackgroundColor(),
                             \
headerWidget->palette().color(headerWidget->backgroundRole()), f1, f2));  
                     //set background color as well (e.g. for thinkeramik)
-                    newOption.palette.setColor(QPalette::Window, \
newOption.palette.color(QPalette::Button)); +                    \
newOption->palette.setColor(QPalette::Window, \
newOption->palette.color(QPalette::Button));  }
                 if (headerWidget->orientation() == Qt::Vertical) {
                     // For mouse-over styles such as Breeze fill color and animate,
                     // what's in conflict with what we do: disable this.
-                    newOption.state &= (0xffffffff ^ QStyle::State_MouseOver);
-                    //qDebug() << newOption.rect;
+                    newOption->state &= (0xffffffff ^ QStyle::State_MouseOver);
+                    //qDebug() << newOption->rect;
                 }
-                QProxyStyle::drawControl(ce, &newOption, painter, widget);
+                QProxyStyle::drawControl(ce, newOption.data(), painter, widget);
                 return;
             }
         }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic