/* * @RDE_HEADER@ * * $Id$ * $HeadURL$ * $Author$ * Created by Malte Schröder, SLSE, 2016-06-08 */ #pragma once #include #include #include #include #include #include #include #include #include #include "logger.h" #include "databases_model.h" namespace Ui { class AarApplication; } namespace AARApplication { class AarApplication : public QMainWindow { Q_OBJECT public: explicit AarApplication(QWidget *parent = nullptr); ~AarApplication(); bool init(); private slots: void onClosedClicked(); void onRemoveClicked(); void onActivateClicked(); void onActivateNetworkClicked(); void onDropDbFinished(int exitCode, QProcess::ExitStatus exitStatus); void onPsauxFinished(); void onStartAppFinished(int exitCode, QProcess::ExitStatus exitStatus); void onPsauxStopFinished(); void onStopAppFinished(int exitCode, QProcess::ExitStatus exitStatus); void onErrorOccured(QProcess::ProcessError error); void onStartApp(); void onStopApp(); private: void enaDisa(); void handleProcInit(const QString &program, const QStringList &args); void handleProcFinished(int exitCode, QProcess::ExitStatus exitStatus); void disableButtons() { enaDisaButtons(false); } void enableButtons() { enaDisaButtons(true); } void enaDisaButtons(bool bEnable); private: Ui::AarApplication *m_ui; DatabasesModel *m_databasesModel; DatabasesProxyModel *m_proxyModel; QMap m_dbMap; bool m_stopping; Exercise m_databaseToRemove; QProcess *m_proc; QSqlDatabase m_dbPostgres; QProgressDialog *m_progressDialog; QVector m_widgets; LOGGER_T m_logger; }; } // namespace AARApplication