comparison libgui/qterminal/libqterminal/QTerminal.h @ 16639:ba808cd9d86c

simplify QTerminal inheritance scheme * Qterminal.h, Qterminal.cc: Merge QTerminalInterface class into QTerminal. (QTerminal::create): New function. (QTerminal::Qterminal): Now protected. * QUnixTerminal.h, QUnixTerminal.cpp, QWinTerminal.h, QWinTerminal.cpp: Derive from QTerminal, not QTerminalInterface. * QTerminalInterface.h: Delete. * libgui/qterminal-module.mk: Update file lists. * terminal-dock-widget.cc (terminal_dock_widget::terminal_dock_widget): Use QTerminal::create to create terminal object.
author John W. Eaton <jwe@octave.org>
date Sun, 12 May 2013 15:23:14 -0400
parents d5ae5aa80d42
children 64f9a3e301d3
comparison
equal deleted inserted replaced
16638:3c2e457eeb72 16639:ba808cd9d86c
23 #ifndef QTERMINAL_H 23 #ifndef QTERMINAL_H
24 #define QTERMINAL_H 24 #define QTERMINAL_H
25 25
26 #include <QSettings> 26 #include <QSettings>
27 #include <QtGlobal> 27 #include <QtGlobal>
28 #include <QWidget>
29 #include <QColor>
30 #include <QMenu>
28 31
29 #ifdef Q_OS_WIN32 32 class QTerminal : public QWidget
30 #include "win32/QWinTerminalImpl.h" 33 {
31 class QTerminal : public QWinTerminalImpl 34 Q_OBJECT
35
36 public:
37
38 static QTerminal *create (QWidget *xparent = 0);
39
40 virtual ~QTerminal (void) { }
41
42 virtual void setTerminalFont(const QFont& font) = 0;
43
44 virtual void setSize(int h, int v) = 0;
45
46 virtual void sendText(const QString& text) = 0;
47
48 enum CursorType
32 { 49 {
33 Q_OBJECT 50 UnderlineCursor,
34 public: 51 BlockCursor,
35 QTerminal(QWidget *xparent = 0) 52 IBeamCursor
36 : QWinTerminalImpl(xparent) { } 53 };
37 ~QTerminal() { }
38 54
39 public slots: 55 virtual void setCursorType (CursorType type, bool blinking)
40 void notice_settings (const QSettings *settings); 56 {
41 }; 57 // Provide empty default impl in order to avoid conflicts with the
42 #else 58 // win impl.
43 #include "unix/QUnixTerminalImpl.h"
44 class QTerminal : public QUnixTerminalImpl
45 {
46 Q_OBJECT
47 public:
48 QTerminal(QWidget *xparent = 0)
49 : QUnixTerminalImpl(xparent) { }
50 ~QTerminal() { }
51 59
52 public slots: 60 Q_UNUSED (type);
53 void notice_settings (const QSettings *settings); 61 Q_UNUSED (blinking);
54 }; 62 }
55 #endif 63
64 virtual void setBackgroundColor (const QColor& color) = 0;
65
66 virtual void setForegroundColor (const QColor& color) = 0;
67
68 virtual void setSelectionColor (const QColor& color) = 0;
69
70 virtual void setCursorColor (bool useForegroundColor,
71 const QColor& color) = 0;
72
73 public slots:
74
75 virtual void copyClipboard (void) = 0;
76
77 virtual void pasteClipboard (void) = 0;
78
79 virtual void handleCustomContextMenuRequested (const QPoint& at)
80 {
81 _contextMenu->move (mapToGlobal (at));
82 _contextMenu->show ();
83 }
84
85 void notice_settings (const QSettings *settings);
86
87 protected:
88
89 QTerminal (QWidget *xparent = 0) : QWidget (xparent)
90 {
91 connect (this, SIGNAL (customContextMenuRequested (QPoint)),
92 this, SLOT (handleCustomContextMenuRequested (QPoint)));
93
94 setContextMenuPolicy (Qt::CustomContextMenu);
95
96 _contextMenu = new QMenu (this);
97
98 QAction *copyAction = _contextMenu->addAction ("Copy");
99 QAction *pasteAction = _contextMenu->addAction ("Paste");
100
101 connect (copyAction, SIGNAL (triggered()), this, SLOT (copyClipboard()));
102 connect (pasteAction, SIGNAL (triggered()), this, SLOT (pasteClipboard()));
103 }
104
105 private:
106
107 QMenu *_contextMenu;
108 };
56 109
57 #endif // QTERMINAL_H 110 #endif // QTERMINAL_H