///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2011-2012 Statoil ASA, Ceetron AS // // ResInsight 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. // // ResInsight 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 at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include class QDockWidget; class QLabel; class QPlainTextEdit; class QPushButton; namespace caf { class UiProcess; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- class RiuProcessMonitor : public QWidget { Q_OBJECT private: QLabel* m_labelStatus; // Shows current status string QPlainTextEdit* m_textEdit; // Showing the textual output from the process QPushButton* m_terminatePushButton; caf::UiProcess* m_monitoredProcess; // Pointer to the process we're monitoring. Needed to fetch text public: explicit RiuProcessMonitor(QDockWidget* pParent); ~RiuProcessMonitor(); void startMonitorWorkProcess(caf::UiProcess* process); void stopMonitorWorkProcess(); void addStringToLog(const QString& text); public slots: void slotClearTextEdit(); private: void setStatusMsg(const QString& status, int messageType); private slots: void slotShowProcStatusMsg(const QString& message, int messageType); void slotProcReadyReadStdOut(); void slotProcReadyReadStdErr(); void slotTerminateProcess(); };