summaryrefslogtreecommitdiffstats
path: root/gui/consolewindow.h
blob: 1d322afb372dbba7d42fd7d65124cf6ccf90ff96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef CONSOLEWINDOW_H
#define CONSOLEWINDOW_H

#include <QDialog>

namespace Ui {
class ConsoleWindow;
}

class ConsoleWindow : public QDialog
{
    Q_OBJECT

public:
    /**
     * @brief The WriteMode enum
     * defines how stuff is displayed
     */
    enum WriteMode {
        DEFAULT,
        ERROR,
        MULTIMC
    };

    explicit ConsoleWindow(QWidget *parent = 0);
    ~ConsoleWindow();

    /**
     * @brief specify if the window is allowed to close
     * @param mayclose
     * used to keep it alive while MC runs
     */
    void setMayClose(bool mayclose);

public slots:
    /**
     * @brief write a string
     * @param data the string
     * @param mode the WriteMode
     * lines have to be put through this as a whole!
     */
    void write(QString data, WriteMode mode=MULTIMC);

    /**
     * @brief write a colored paragraph
     * @param data the string
     * @param color the css color name
     * this will only insert a single paragraph.
     * \n are ignored. a real \n is always appended.
     */
    void writeColor(QString data, const char *color=nullptr);

    /**
     * @brief clear the text widget
     */
    void clear();

private slots:
    void on_closeButton_clicked();

protected:
    void closeEvent(QCloseEvent *);

private:
    Ui::ConsoleWindow *ui;
    bool m_mayclose;
};

#endif // CONSOLEWINDOW_H