1 module examplewidgets.tabplaintext;
2 
3 import qt.config;
4 import qt.core.coreevent;
5 import qt.helpers;
6 import qt.widgets.ui;
7 import qt.widgets.widget;
8 
9 class TabPlainText : QWidget
10 {
11     mixin(Q_OBJECT_D);
12 
13 public:
14     /+ explicit +/this(QWidget parent = null)
15     {
16         import core.stdcpp.new_;
17         super(parent);
18         this.ui = cpp_new!(typeof(*ui));
19 
20         ui.setupUi(this);
21 
22         connect(ui.plainTextEdit.signal!"undoAvailable", ui.pushButtonUndo.slot!"setEnabled");
23         connect(ui.plainTextEdit.signal!"redoAvailable", ui.pushButtonRedo.slot!"setEnabled");
24         connect(ui.pushButtonUndo.signal!"clicked", ui.plainTextEdit.slot!"undo");
25         connect(ui.pushButtonRedo.signal!"clicked", ui.plainTextEdit.slot!"redo");
26 
27         on_plainTextEdit_textChanged();
28     }
29     ~this()
30     {
31         import core.stdcpp.new_;
32 
33         cpp_delete(ui);
34     }
35 
36 private /+ slots +/:
37     @QSlot final void on_plainTextEdit_textChanged()
38     {
39         if(ui.comboBoxType.currentIndex() == 0)
40             ui.textBrowser.setMarkdown(ui.plainTextEdit.toPlainText());
41         if(ui.comboBoxType.currentIndex() == 1)
42             ui.textBrowser.setHtml(ui.plainTextEdit.toPlainText());
43         if(ui.comboBoxType.currentIndex() == 2)
44             ui.textBrowser.setPlainText(ui.plainTextEdit.toPlainText());
45     }
46 
47     @QSlot final void on_comboBoxType_currentIndexChanged(int index)
48     {
49         on_plainTextEdit_textChanged();
50     }
51 
52 protected:
53     override extern(C++) void changeEvent(QEvent event)
54     {
55         if(event.type() == QEvent.Type.LanguageChange)
56             ui.retranslateUi(this);
57         QWidget.changeEvent(event);
58     }
59 
60 private:
61     UIStruct!"tabplaintext.ui"* ui;
62 }
63