[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [abakus] /: fix segfault on exit
From: Mathias Kraus <k.hias () gmx ! de>
Date: 2013-12-08 14:55:40
Message-ID: E1Vpflk-0002v7-Mf () scm ! kde ! org
[Download RAW message or body]
Git commit 2da2592c17014001970a3d1300cf7dcce223c7e8 by Mathias Kraus.
Committed on 07/12/2013 at 14:58.
Pushed by mkraus into branch 'master'.
fix segfault on exit
M +2 -2 abakus-harmattan.pro
M +4 -4 src/mobile/harmattan/main.cpp
R +27 -27 src/mobile/harmattan/mainobject.cpp [from: \
src/mobile/harmattan/mainwindow.cpp - 084% similarity] R +7 -7 \
src/mobile/harmattan/mainobject.h [from: src/mobile/harmattan/mainwindow.h - 090% \
similarity]
http://commits.kde.org/abakus/2da2592c17014001970a3d1300cf7dcce223c7e8
diff --git a/abakus-harmattan.pro b/abakus-harmattan.pro
index 2aea94b..abb3b7e 100644
--- a/abakus-harmattan.pro
+++ b/abakus-harmattan.pro
@@ -51,7 +51,7 @@ FLEXSOURCES = src/common/lexer.ll
# The .cpp file which was generated for your project. Feel free to hack it.
SOURCES += src/mobile/harmattan/main.cpp \
- src/mobile/harmattan/mainwindow.cpp \
+ src/mobile/harmattan/mainobject.cpp \
src/common/settingscore.cpp \
src/common/settings.cpp \
src/common/resultmodelitem.cpp \
@@ -66,7 +66,7 @@ SOURCES += src/mobile/harmattan/main.cpp \
src/common/function.cpp
HEADERS += \
- src/mobile/harmattan/mainwindow.h \
+ src/mobile/harmattan/mainobject.h \
src/common/sharedptr.h \
src/common/settingscore.h \
src/common/settings.h \
diff --git a/src/mobile/harmattan/main.cpp b/src/mobile/harmattan/main.cpp
index e41ced8..755c4c4 100644
--- a/src/mobile/harmattan/main.cpp
+++ b/src/mobile/harmattan/main.cpp
@@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "mainwindow.h"
+#include "mainobject.h"
#include <QApplication>
#include <QDeclarativeView>
@@ -33,13 +33,13 @@ Q_DECL_EXPORT int main(int argc, char **argv)
mpfr_set_default_prec(6 * 78); // 78 digits, figure about 6 bits needed.
QScopedPointer<QApplication> app(createApplication(argc, argv));
-
+ QScopedPointer<MainObject> mainObject(new MainObject());
QmlApplicationViewer viewer;
+
+ mainObject->setView(&viewer);
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
- MainWindow mainObject(&viewer);
viewer.setMainQmlFile(QLatin1String("qml/main.qml"));
viewer.showExpanded();
return app->exec();
}
-// vim: set et sw=4 ts=8:
diff --git a/src/mobile/harmattan/mainwindow.cpp \
b/src/mobile/harmattan/mainobject.cpp similarity index 84%
rename from src/mobile/harmattan/mainwindow.cpp
rename to src/mobile/harmattan/mainobject.cpp
index 2f05d7a..87f394e 100644
--- a/src/mobile/harmattan/mainwindow.cpp
+++ b/src/mobile/harmattan/mainobject.cpp
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "mainwindow.h"
+#include "mainobject.h"
#include "functionmodel.h"
#include "numeralmodel.h"
@@ -33,9 +33,9 @@
#define i18n tr
-MainWindow::MainWindow(QDeclarativeView* declarativeView) :
+MainObject::MainObject() :
m_resultItemModel (ResultModel::instance()),
- m_declarativeView(declarativeView),
+ m_declarativeContext(NULL),
m_settingscore(SettingsCore::instance()),
m_insert(false)
{
@@ -46,22 +46,24 @@ MainWindow::MainWindow(QDeclarativeView* declarativeView) :
connect(m_settingscore->instance(), SIGNAL(precisionChanged()), this, \
SLOT(slotRedrawResults()));
qmlRegisterType<Settings>("abakus", 1, 0, "Settings");
-
- m_declarativeContext = m_declarativeView->rootContext();
- m_declarativeContext->setContextProperty("mainWindow", this);
- m_declarativeContext->setContextProperty("resultModel", m_resultItemModel);
- m_declarativeContext->setContextProperty("numeralModel", \
NumeralModel::instance());
- m_declarativeContext->setContextProperty("functionModel", \
FunctionModel::instance()); }
-bool MainWindow::queryExit()
+MainObject::~MainObject()
{
m_settingscore->saveSettings();
m_resultItemModel->clear();
- return true;//QMainWindow::close();
}
-void MainWindow::slotEvaluate(const QString &expression)
+void MainObject::setView(QDeclarativeView* declarativeView)
+{
+ m_declarativeContext = declarativeView->rootContext();
+ m_declarativeContext->setContextProperty("mainWindow", this);
+ m_declarativeContext->setContextProperty("resultModel", m_resultItemModel);
+ m_declarativeContext->setContextProperty("numeralModel", \
NumeralModel::instance()); + \
m_declarativeContext->setContextProperty("functionModel", FunctionModel::instance()); \
+} +
+void MainObject::slotEvaluate(const QString &expression)
{
QString text = expression;
@@ -120,7 +122,7 @@ void MainWindow::slotEvaluate(const QString &expression)
}
}
-void MainWindow::slotTextChanged(const QString &str)
+void MainObject::slotTextChanged(const QString &str)
{
if(str.length() == 1 && m_insert) {
m_insert = false;
@@ -131,52 +133,52 @@ void MainWindow::slotTextChanged(const QString &str)
}
}
-QString MainWindow::getTag(const int &index)
+QString MainObject::getTag(const int &index)
{
return m_resultItemModel->data(m_resultItemModel->index(index), \
ResultModel::TagRole).toString(); }
-void MainWindow::clearHistory()
+void MainObject::clearHistory()
{
m_resultItemModel->clear();
}
-void MainWindow::historyPrevious()
+void MainObject::historyPrevious()
{
emit setEditorText(m_resultItemModel->previousExpression());
}
-void MainWindow::historyNext()
+void MainObject::historyNext()
{
emit setEditorText(m_resultItemModel->nextExpression());
}
-void MainWindow::removeNumeral(const QString& name)
+void MainObject::removeNumeral(const QString& name)
{
NumeralModel::instance()->removeValue(name);
}
-void MainWindow::removeFunction(const QString& name)
+void MainObject::removeFunction(const QString& name)
{
FunctionModel::instance()->removeFunction(name);
}
-int MainWindow::getVisibleHistoryItemIndex(int listIndex)
+int MainObject::getVisibleHistoryItemIndex(int listIndex)
{
return (listIndex >= 0 && listIndex < m_visibleHistoryItemIndices.count()) ? \
m_visibleHistoryItemIndices[listIndex] : -1; }
-void MainWindow::addVisibleHistoryItemIndex(int itemIndex)
+void MainObject::addVisibleHistoryItemIndex(int itemIndex)
{
m_visibleHistoryItemIndices.append(itemIndex);
}
-void MainWindow::removeVisibleHistoryItemIndex(int itemIndex)
+void MainObject::removeVisibleHistoryItemIndex(int itemIndex)
{
m_visibleHistoryItemIndices.removeOne(itemIndex);
}
-int MainWindow::getParenthesesLevel(const QString &str)
+int MainObject::getParenthesesLevel(const QString &str)
{
int level = 0;
@@ -189,7 +191,7 @@ int MainWindow::getParenthesesLevel(const QString &str)
return level;
}
-QString MainWindow::interpolateExpression(const QString &text)
+QString MainObject::interpolateExpression(const QString &text)
{
QString str(text);
QRegExp stackRE("\\$\\d+");
@@ -211,10 +213,8 @@ QString MainWindow::interpolateExpression(const QString &text)
return str;
}
-void MainWindow::slotRedrawResults()
+void MainObject::slotRedrawResults()
{
m_resultItemModel->slotRedrawItems();
NumeralModel::instance()->slotRedrawItems();
}
-
-// vim: set et ts=8 sw=4:
diff --git a/src/mobile/harmattan/mainwindow.h b/src/mobile/harmattan/mainobject.h
similarity index 90%
rename from src/mobile/harmattan/mainwindow.h
rename to src/mobile/harmattan/mainobject.h
index 5a24e11..a8d88a5 100644
--- a/src/mobile/harmattan/mainwindow.h
+++ b/src/mobile/harmattan/mainobject.h
@@ -1,5 +1,5 @@
-#ifndef ABAKUS_MAINWINDOW_H
-#define ABAKUS_MAINWINDOW_H
+#ifndef ABAKUS_MAINOBJECT_H
+#define ABAKUS_MAINOBJECT_H
/*
* mainwindow.h - part of abakus
* Copyright (C) 2012 Mathias Kraus <k.hias@gmx.net>
@@ -32,16 +32,17 @@ class QDeclarativeView;
class QMenu;
// Main window class, handles events and stuff
-class MainWindow : public QObject
+class MainObject : public QObject
{
Q_OBJECT
public:
- MainWindow(QDeclarativeView* declarativeView);
+ MainObject();
+ ~MainObject();
+
+ void setView(QDeclarativeView* declarativeView);
protected:
- virtual bool queryExit();
-
Q_INVOKABLE void slotEvaluate(const QString &expression);
Q_INVOKABLE void slotTextChanged(const QString &str);
Q_INVOKABLE QString getTag(const int &index);
@@ -70,7 +71,6 @@ private:
ResultModel *m_resultItemModel;
- QDeclarativeView* m_declarativeView;
QDeclarativeContext *m_declarativeContext;
SettingsCore* m_settingscore;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic