diff --git a/ground/openpilotgcs/src/plugins/flightlog/FlightLogDialog.qml b/ground/openpilotgcs/src/plugins/flightlog/FlightLogDialog.qml index e70b35ce1..9c3c730c7 100644 --- a/ground/openpilotgcs/src/plugins/flightlog/FlightLogDialog.qml +++ b/ground/openpilotgcs/src/plugins/flightlog/FlightLogDialog.qml @@ -9,7 +9,7 @@ import "functions.js" as Functions Rectangle { width: 600 height: 400 - + id: root ColumnLayout { anchors.fill: parent anchors.margins: 10 @@ -393,7 +393,7 @@ Rectangle { text: qsTr("OK") isDefault: true activeFocusOnPress: true - onClicked: dialog.close() + onClicked: logDialog.close() } } } diff --git a/ground/openpilotgcs/src/plugins/flightlog/flightlog.pro b/ground/openpilotgcs/src/plugins/flightlog/flightlog.pro index ae4b1e277..f8f8f84a8 100644 --- a/ground/openpilotgcs/src/plugins/flightlog/flightlog.pro +++ b/ground/openpilotgcs/src/plugins/flightlog/flightlog.pro @@ -10,11 +10,9 @@ include(../../plugins/uavobjectutil/uavobjectutil.pri) include(../../plugins/uavtalk/uavtalk.pri) HEADERS += flightlogplugin.h \ - flightlogmanager.h \ - flightlogdialog.h + flightlogmanager.h SOURCES += flightlogplugin.cpp \ - flightlogmanager.cpp \ - flightlogdialog.cpp + flightlogmanager.cpp OTHER_FILES += Flightlog.pluginspec \ FlightLogDialog.qml \ diff --git a/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.cpp b/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.cpp deleted file mode 100644 index 8f411c45c..000000000 --- a/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/** - ****************************************************************************** - * - * @file flightlogdialog.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. - * @addtogroup [Group] - * @{ - * @addtogroup FlightLogDialog - * @{ - * @brief [Brief] - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "flightlogdialog.h" - -#include - -#include -#include -#include -#include - -#include "flightlogmanager.h" -#include "uavobject.h" - -FlightLogDialog::FlightLogDialog(QWidget *parent, FlightLogManager *flightLogManager) : - QDialog(parent) -{ - qmlRegisterType("org.openpilot", 1, 0, "DebugLogEntry"); - qmlRegisterType("org.openpilot", 1, 0, "UAVOLogSettingsWrapper"); - - setWindowIcon(QIcon(":/core/images/openpilot_logo_32.png")); - setWindowTitle(tr("Manage flight side logs")); - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - setMinimumSize(600, 400); - - QQuickView *view = new QQuickView(); - view->rootContext()->setContextProperty("dialog", this); - view->rootContext()->setContextProperty("logStatus", flightLogManager->flightLogStatus()); - view->rootContext()->setContextProperty("logControl", flightLogManager->flightLogControl()); - view->rootContext()->setContextProperty("logSettings", flightLogManager->flightLogSettings()); - view->rootContext()->setContextProperty("logManager", flightLogManager); - view->setResizeMode(QQuickView::SizeRootObjectToView); - view->setSource(QUrl("qrc:/flightlog/FlightLogDialog.qml")); - - QWidget *container = QWidget::createWindowContainer(view); - container->setMinimumSize(600, 400); - container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - QVBoxLayout *lay = new QVBoxLayout(); - lay->setContentsMargins(0, 0, 0, 0); - setLayout(lay); - layout()->addWidget(container); -} - -FlightLogDialog::~FlightLogDialog() -{} diff --git a/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.h b/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.h deleted file mode 100644 index d1b2fd18e..000000000 --- a/ground/openpilotgcs/src/plugins/flightlog/flightlogdialog.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef FLIGHTLOGDIALOG_H -#define FLIGHTLOGDIALOG_H - -#include -#include "flightlogmanager.h" - -class FlightLogDialog : public QDialog { - Q_OBJECT - -public: - explicit FlightLogDialog(QWidget *parent, FlightLogManager *flightLogManager); - ~FlightLogDialog(); -}; - -#endif // FLIGHTLOGDIALOG_H diff --git a/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.cpp b/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.cpp index 2e1c232b0..d17e91d9e 100644 --- a/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.cpp +++ b/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.cpp @@ -26,14 +26,15 @@ #include #include #include +#include #include #include #include #include #include - -#include "flightlogdialog.h" +#include "flightlogmanager.h" +#include "uavobject.h" FlightLogPlugin::FlightLogPlugin() : m_logDialog(0) {} @@ -72,11 +73,22 @@ bool FlightLogPlugin::initialize(const QStringList & args, QString *errMsg) void FlightLogPlugin::ShowLogManagementDialog() { if (!m_logDialog) { - m_logDialog = new FlightLogDialog(0, new FlightLogManager()); - connect(m_logDialog, SIGNAL(finished(int)), this, SLOT(LogManagementDialogClosed())); + qmlRegisterType("org.openpilot", 1, 0, "DebugLogEntry"); + qmlRegisterType("org.openpilot", 1, 0, "UAVOLogSettingsWrapper"); + FlightLogManager *flightLogManager = new FlightLogManager(); + m_logDialog = new QQuickView(); + m_logDialog->rootContext()->setContextProperty("logStatus", flightLogManager->flightLogStatus()); + m_logDialog->rootContext()->setContextProperty("logControl", flightLogManager->flightLogControl()); + m_logDialog->rootContext()->setContextProperty("logSettings", flightLogManager->flightLogSettings()); + m_logDialog->rootContext()->setContextProperty("logManager", flightLogManager); + m_logDialog->rootContext()->setContextProperty("logDialog", m_logDialog); + m_logDialog->setResizeMode(QQuickView::SizeRootObjectToView); + m_logDialog->setSource(QUrl("qrc:/flightlog/FlightLogDialog.qml")); + m_logDialog->setModality(Qt::WindowModal); m_logDialog->show(); + connect(m_logDialog, SIGNAL(destroyed()), this, SLOT(LogManagementDialogClosed())); } else { - m_logDialog->raise(); + m_logDialog->show(); } } diff --git a/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.h b/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.h index b78c58836..76a04e283 100644 --- a/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.h +++ b/ground/openpilotgcs/src/plugins/flightlog/flightlogplugin.h @@ -28,7 +28,7 @@ #include #include "flightlogmanager.h" -#include "flightlogdialog.h" +#include class FlightLogPlugin : public ExtensionSystem::IPlugin { Q_OBJECT @@ -47,7 +47,7 @@ private slots: void LogManagementDialogClosed(); private: - FlightLogDialog *m_logDialog; + QQuickView *m_logDialog; }; #endif /* FLIGHTLOGPLUGIN_H_ */