author | wazlaf <wazlaf> | 2002-10-13 13:49:11 (UTC) |
---|---|---|
committer | wazlaf <wazlaf> | 2002-10-13 13:49:11 (UTC) |
commit | 68c37a3412ef4609ba0209318ef2b06f7dd1aaf1 (patch) (unidiff) | |
tree | f81ee5460dd49c4fcb8a61bf50911c5036742bed | |
parent | 0e6d241e26211a8ffff07ba8e23f4a3cec9065be (diff) | |
download | opie-68c37a3412ef4609ba0209318ef2b06f7dd1aaf1.zip opie-68c37a3412ef4609ba0209318ef2b06f7dd1aaf1.tar.gz opie-68c37a3412ef4609ba0209318ef2b06f7dd1aaf1.tar.bz2 |
Scripting functionality added. What this currently does is catch keys in the emulation_layer
and store them in a "Script" instance. This can later be saved to a file and on request
"replayed" by sending the typed keys to the associated IOLayer
-rw-r--r-- | noncore/apps/opie-console/emulation_layer.cpp | 36 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_layer.h | 19 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 56 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.h | 8 | ||||
-rw-r--r-- | noncore/apps/opie-console/opie-console.pro | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/script.cpp | 30 | ||||
-rw-r--r-- | noncore/apps/opie-console/script.h | 30 |
7 files changed, 178 insertions, 5 deletions
diff --git a/noncore/apps/opie-console/emulation_layer.cpp b/noncore/apps/opie-console/emulation_layer.cpp index 5baf05c..265c11f 100644 --- a/noncore/apps/opie-console/emulation_layer.cpp +++ b/noncore/apps/opie-console/emulation_layer.cpp | |||
@@ -104,12 +104,13 @@ EmulationLayer::EmulationLayer( WidgetLayer* gui ) | |||
104 | screen[1] = new Screen(gui->lines(),gui->columns()); | 104 | screen[1] = new Screen(gui->lines(),gui->columns()); |
105 | scr = screen[0]; | 105 | scr = screen[0]; |
106 | 106 | ||
107 | bulk_nlcnt = 0; // reset bulk newline counter | 107 | bulk_nlcnt = 0; // reset bulk newline counter |
108 | bulk_incnt = 0; // reset bulk counter | 108 | bulk_incnt = 0; // reset bulk counter |
109 | connected = FALSE; | 109 | connected = FALSE; |
110 | m_script = 0; | ||
110 | 111 | ||
111 | QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) ); | 112 | QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) ); |
112 | QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ), | 113 | QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ), |
113 | this,SLOT( onImageSizeChange( int, int ) ) ); | 114 | this,SLOT( onImageSizeChange( int, int ) ) ); |
114 | QObject::connect(gui,SIGNAL( changedHistoryCursor( int ) ), | 115 | QObject::connect(gui,SIGNAL( changedHistoryCursor( int ) ), |
115 | this,SLOT( historyCursorChange( int ) ) ); | 116 | this,SLOT( historyCursorChange( int ) ) ); |
@@ -129,12 +130,14 @@ EmulationLayer::EmulationLayer( WidgetLayer* gui ) | |||
129 | */ | 130 | */ |
130 | 131 | ||
131 | EmulationLayer::~EmulationLayer() | 132 | EmulationLayer::~EmulationLayer() |
132 | { | 133 | { |
133 | delete screen[0]; | 134 | delete screen[0]; |
134 | delete screen[1]; | 135 | delete screen[1]; |
136 | if (isRecording()) | ||
137 | clearScript(); | ||
135 | bulk_timer.stop(); | 138 | bulk_timer.stop(); |
136 | } | 139 | } |
137 | 140 | ||
138 | /*! change between primary and alternate screen | 141 | /*! change between primary and alternate screen |
139 | */ | 142 | */ |
140 | 143 | ||
@@ -225,12 +228,16 @@ void EmulationLayer::onKeyPress( QKeyEvent* ev ) | |||
225 | } | 228 | } |
226 | else if (ev->ascii()>0) | 229 | else if (ev->ascii()>0) |
227 | { | 230 | { |
228 | QByteArray c = QByteArray( 1 ); | 231 | QByteArray c = QByteArray( 1 ); |
229 | c.at( 0 ) = ev->ascii(); | 232 | c.at( 0 ) = ev->ascii(); |
230 | // ibot: qbytearray is emited not char* | 233 | // ibot: qbytearray is emited not char* |
234 | |||
235 | /* Are we currently recording a script? If so, store the typed character */ | ||
236 | if (isRecording()) | ||
237 | m_script->appendString(ev->text()); | ||
231 | emit sndBlock( (QByteArray) c ); | 238 | emit sndBlock( (QByteArray) c ); |
232 | } | 239 | } |
233 | } | 240 | } |
234 | 241 | ||
235 | // Unblocking, Byte to Unicode translation --------------------------------- -- | 242 | // Unblocking, Byte to Unicode translation --------------------------------- -- |
236 | 243 | ||
@@ -251,12 +258,41 @@ void EmulationLayer::onRcvBlock(const QByteArray &s ) | |||
251 | onRcvChar(result[j].unicode()); | 258 | onRcvChar(result[j].unicode()); |
252 | if (s[i] == '\n') bulkNewline(); | 259 | if (s[i] == '\n') bulkNewline(); |
253 | } | 260 | } |
254 | bulkEnd(); | 261 | bulkEnd(); |
255 | } | 262 | } |
256 | 263 | ||
264 | // Scripts ----------------------------------------------------------------- -- | ||
265 | |||
266 | |||
267 | Script *EmulationLayer::script() { | ||
268 | return m_script; | ||
269 | } | ||
270 | |||
271 | bool EmulationLayer::isRecording() { | ||
272 | return (m_script != 0); | ||
273 | } | ||
274 | |||
275 | void EmulationLayer::startRecording() { | ||
276 | if (!isRecording()) | ||
277 | m_script = new Script(); | ||
278 | } | ||
279 | |||
280 | void EmulationLayer::clearScript() { | ||
281 | if (isRecording()) { | ||
282 | |||
283 | } | ||
284 | } | ||
285 | |||
286 | void EmulationLayer::runScript(const Script *script) { | ||
287 | QByteArray a = QByteArray(); | ||
288 | QString str = script->script(); | ||
289 | a.setRawData(str.ascii(), str.length()); | ||
290 | emit sndBlock(a); | ||
291 | } | ||
292 | |||
257 | // Selection --------------------------------------------------------------- -- | 293 | // Selection --------------------------------------------------------------- -- |
258 | 294 | ||
259 | void EmulationLayer::onSelectionBegin(const int x, const int y) { | 295 | void EmulationLayer::onSelectionBegin(const int x, const int y) { |
260 | if (!connected) return; | 296 | if (!connected) return; |
261 | scr->setSelBeginXY(x,y); | 297 | scr->setSelBeginXY(x,y); |
262 | showBulk(); | 298 | showBulk(); |
diff --git a/noncore/apps/opie-console/emulation_layer.h b/noncore/apps/opie-console/emulation_layer.h index 91a4856..928ad04 100644 --- a/noncore/apps/opie-console/emulation_layer.h +++ b/noncore/apps/opie-console/emulation_layer.h | |||
@@ -29,12 +29,13 @@ | |||
29 | #include "widget_layer.h" | 29 | #include "widget_layer.h" |
30 | #include "screen.h" | 30 | #include "screen.h" |
31 | #include <qtimer.h> | 31 | #include <qtimer.h> |
32 | #include <stdio.h> | 32 | #include <stdio.h> |
33 | #include <qtextcodec.h> | 33 | #include <qtextcodec.h> |
34 | #include "keytrans.h" | 34 | #include "keytrans.h" |
35 | #include "script.h" | ||
35 | 36 | ||
36 | class EmulationLayer : public QObject | 37 | class EmulationLayer : public QObject |
37 | { Q_OBJECT | 38 | { Q_OBJECT |
38 | 39 | ||
39 | public: | 40 | public: |
40 | 41 | ||
@@ -101,12 +102,28 @@ public: | |||
101 | virtual void setConnect(bool r); | 102 | virtual void setConnect(bool r); |
102 | void setColumns(int columns); | 103 | void setColumns(int columns); |
103 | 104 | ||
104 | void setKeytrans(int no); | 105 | void setKeytrans(int no); |
105 | void setKeytrans(const char * no); | 106 | void setKeytrans(const char * no); |
106 | 107 | ||
108 | /* Scripts */ | ||
109 | |||
110 | /* Create a new script and record all typed characters */ | ||
111 | void startRecording(); | ||
112 | |||
113 | /* Return whether we are currently recording a script */ | ||
114 | bool isRecording(); | ||
115 | |||
116 | /* Return the current script (or NULL) */ | ||
117 | Script *script(); | ||
118 | |||
119 | /* Stop recording and remove the current script from memory */ | ||
120 | void clearScript(); | ||
121 | |||
122 | /* Run a script by forwarding its keys to the EmulationLayer */ | ||
123 | void runScript(const Script *); | ||
107 | protected: | 124 | protected: |
108 | 125 | ||
109 | WidgetLayer* gui; | 126 | WidgetLayer* gui; |
110 | Screen* scr; // referes to one `screen' | 127 | Screen* scr; // referes to one `screen' |
111 | Screen* screen[2]; // 0 = primary, 1 = alternate | 128 | Screen* screen[2]; // 0 = primary, 1 = alternate |
112 | void setScreen(int n); // set `scr' to `screen[n]' | 129 | void setScreen(int n); // set `scr' to `screen[n]' |
@@ -136,11 +153,11 @@ private: | |||
136 | private: | 153 | private: |
137 | 154 | ||
138 | QTimer bulk_timer; | 155 | QTimer bulk_timer; |
139 | int bulk_nlcnt; // bulk newline counter | 156 | int bulk_nlcnt; // bulk newline counter |
140 | char* SelectedText; | 157 | char* SelectedText; |
141 | int bulk_incnt; // bulk counter | 158 | int bulk_incnt; // bulk counter |
142 | 159 | Script *m_script; | |
143 | 160 | ||
144 | }; | 161 | }; |
145 | 162 | ||
146 | #endif // ifndef EMULATION_H | 163 | #endif // ifndef EMULATION_H |
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index 8f5d56b..46c5bed 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp | |||
@@ -2,24 +2,25 @@ | |||
2 | #include <qaction.h> | 2 | #include <qaction.h> |
3 | #include <qmenubar.h> | 3 | #include <qmenubar.h> |
4 | #include <qlabel.h> | 4 | #include <qlabel.h> |
5 | #include <qpopupmenu.h> | 5 | #include <qpopupmenu.h> |
6 | #include <qtoolbar.h> | 6 | #include <qtoolbar.h> |
7 | #include <qpe/resource.h> | 7 | #include <qpe/resource.h> |
8 | 8 | #include <opie/ofiledialog.h> | |
9 | 9 | ||
10 | #include "profileeditordialog.h" | 10 | #include "profileeditordialog.h" |
11 | #include "configdialog.h" | 11 | #include "configdialog.h" |
12 | #include "default.h" | 12 | #include "default.h" |
13 | #include "metafactory.h" | 13 | #include "metafactory.h" |
14 | #include "profile.h" | 14 | #include "profile.h" |
15 | #include "profilemanager.h" | 15 | #include "profilemanager.h" |
16 | #include "mainwindow.h" | 16 | #include "mainwindow.h" |
17 | #include "tabwidget.h" | 17 | #include "tabwidget.h" |
18 | #include "transferdialog.h" | 18 | #include "transferdialog.h" |
19 | #include "function_keyboard.h" | 19 | #include "function_keyboard.h" |
20 | #include "script.h" | ||
20 | 21 | ||
21 | MainWindow::MainWindow() { | 22 | MainWindow::MainWindow() { |
22 | m_factory = new MetaFactory(); | 23 | m_factory = new MetaFactory(); |
23 | Default def(m_factory); | 24 | Default def(m_factory); |
24 | m_sessions.setAutoDelete( TRUE ); | 25 | m_sessions.setAutoDelete( TRUE ); |
25 | m_curSession = 0; | 26 | m_curSession = 0; |
@@ -35,12 +36,13 @@ void MainWindow::initUI() { | |||
35 | /* tool bar for the menu */ | 36 | /* tool bar for the menu */ |
36 | m_tool = new QToolBar( this ); | 37 | m_tool = new QToolBar( this ); |
37 | m_tool->setHorizontalStretchable( TRUE ); | 38 | m_tool->setHorizontalStretchable( TRUE ); |
38 | 39 | ||
39 | m_bar = new QMenuBar( m_tool ); | 40 | m_bar = new QMenuBar( m_tool ); |
40 | m_console = new QPopupMenu( this ); | 41 | m_console = new QPopupMenu( this ); |
42 | m_scripts = new QPopupMenu( this ); | ||
41 | m_sessionsPop= new QPopupMenu( this ); | 43 | m_sessionsPop= new QPopupMenu( this ); |
42 | m_settings = new QPopupMenu( this ); | 44 | m_settings = new QPopupMenu( this ); |
43 | 45 | ||
44 | /* add a toolbar for icons */ | 46 | /* add a toolbar for icons */ |
45 | m_icons = new QToolBar(this); | 47 | m_icons = new QToolBar(this); |
46 | 48 | ||
@@ -103,12 +105,27 @@ void MainWindow::initUI() { | |||
103 | m_setProfiles->addTo( m_settings ); | 105 | m_setProfiles->addTo( m_settings ); |
104 | m_setProfiles->addTo( m_icons ); | 106 | m_setProfiles->addTo( m_icons ); |
105 | connect( m_setProfiles, SIGNAL(activated() ), | 107 | connect( m_setProfiles, SIGNAL(activated() ), |
106 | this, SLOT(slotConfigure() ) ); | 108 | this, SLOT(slotConfigure() ) ); |
107 | 109 | ||
108 | /* | 110 | /* |
111 | * script actions | ||
112 | */ | ||
113 | m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); | ||
114 | m_recordScript->addTo(m_scripts); | ||
115 | connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); | ||
116 | |||
117 | m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); | ||
118 | m_saveScript->addTo(m_scripts); | ||
119 | connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); | ||
120 | |||
121 | m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0); | ||
122 | m_runScript->addTo(m_scripts); | ||
123 | connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript())); | ||
124 | |||
125 | /* | ||
109 | * action that open/closes the keyboard | 126 | * action that open/closes the keyboard |
110 | */ | 127 | */ |
111 | m_openKeys = new QAction (tr("Open Keyboard..."), | 128 | m_openKeys = new QAction (tr("Open Keyboard..."), |
112 | Resource::loadPixmap( "down" ), | 129 | Resource::loadPixmap( "down" ), |
113 | QString::null, 0, this, 0); | 130 | QString::null, 0, this, 0); |
114 | 131 | ||
@@ -123,12 +140,15 @@ void MainWindow::initUI() { | |||
123 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, | 140 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, |
124 | -1, 0); | 141 | -1, 0); |
125 | 142 | ||
126 | /* insert the connection menu */ | 143 | /* insert the connection menu */ |
127 | m_bar->insertItem( tr("Connection"), m_console ); | 144 | m_bar->insertItem( tr("Connection"), m_console ); |
128 | 145 | ||
146 | /* the scripts menu */ | ||
147 | m_bar->insertItem( tr("Scripts"), m_scripts ); | ||
148 | |||
129 | /* the settings menu */ | 149 | /* the settings menu */ |
130 | m_bar->insertItem( tr("Settings"), m_settings ); | 150 | m_bar->insertItem( tr("Settings"), m_settings ); |
131 | 151 | ||
132 | /* and the keyboard */ | 152 | /* and the keyboard */ |
133 | m_keyBar = new QToolBar(this); | 153 | m_keyBar = new QToolBar(this); |
134 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); | 154 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); |
@@ -186,12 +206,46 @@ void MainWindow::slotNew() { | |||
186 | 206 | ||
187 | if ( ret == QDialog::Accepted ) { | 207 | if ( ret == QDialog::Accepted ) { |
188 | create( dlg.profile() ); | 208 | create( dlg.profile() ); |
189 | } | 209 | } |
190 | } | 210 | } |
191 | 211 | ||
212 | void MainWindow::slotRecordScript() { | ||
213 | if (currentSession()) { | ||
214 | currentSession()->emulationLayer()->startRecording(); | ||
215 | } | ||
216 | } | ||
217 | |||
218 | void MainWindow::slotSaveScript() { | ||
219 | if (currentSession() && currentSession()->emulationLayer()->isRecording()) { | ||
220 | MimeTypes types; | ||
221 | QStringList script; | ||
222 | script << "text/plain"; | ||
223 | types.insert("Script", script); | ||
224 | QString filename = OFileDialog::getSaveFileName(2, "/", QString::null, types); | ||
225 | if (!filename.isEmpty()) { | ||
226 | currentSession()->emulationLayer()->script()->saveTo(filename); | ||
227 | currentSession()->emulationLayer()->clearScript(); | ||
228 | } | ||
229 | } | ||
230 | } | ||
231 | |||
232 | void MainWindow::slotRunScript() { | ||
233 | if (currentSession()) { | ||
234 | MimeTypes types; | ||
235 | QStringList script; | ||
236 | script << "text/plain"; | ||
237 | types.insert("Script", script); | ||
238 | QString filename = OFileDialog::getOpenFileName(2, "/", QString::null, types); | ||
239 | if (!filename.isEmpty()) { | ||
240 | Script script(DocLnk(filename).file()); | ||
241 | currentSession()->emulationLayer()->runScript(&script); | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
192 | void MainWindow::slotConnect() { | 246 | void MainWindow::slotConnect() { |
193 | if ( currentSession() ) | 247 | if ( currentSession() ) |
194 | currentSession()->layer()->open(); | 248 | currentSession()->layer()->open(); |
195 | } | 249 | } |
196 | 250 | ||
197 | void MainWindow::slotDisconnect() { | 251 | void MainWindow::slotDisconnect() { |
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h index 73bb285..94144a4 100644 --- a/noncore/apps/opie-console/mainwindow.h +++ b/noncore/apps/opie-console/mainwindow.h | |||
@@ -56,13 +56,15 @@ private slots: | |||
56 | void slotTerminate(); | 56 | void slotTerminate(); |
57 | void slotConfigure(); | 57 | void slotConfigure(); |
58 | void slotClose(); | 58 | void slotClose(); |
59 | void slotProfile(int); | 59 | void slotProfile(int); |
60 | void slotTransfer(); | 60 | void slotTransfer(); |
61 | void slotOpenKeb(bool); | 61 | void slotOpenKeb(bool); |
62 | 62 | void slotRecordScript(); | |
63 | void slotSaveScript(); | ||
64 | void slotRunScript(); | ||
63 | private: | 65 | private: |
64 | void initUI(); | 66 | void initUI(); |
65 | void populateProfiles(); | 67 | void populateProfiles(); |
66 | void create( const Profile& ); | 68 | void create( const Profile& ); |
67 | /** | 69 | /** |
68 | * the current session | 70 | * the current session |
@@ -85,18 +87,22 @@ private: | |||
85 | QToolBar* m_icons; | 87 | QToolBar* m_icons; |
86 | QToolBar* m_keyBar; | 88 | QToolBar* m_keyBar; |
87 | QMenuBar* m_bar; | 89 | QMenuBar* m_bar; |
88 | QPopupMenu* m_console; | 90 | QPopupMenu* m_console; |
89 | QPopupMenu* m_settings; | 91 | QPopupMenu* m_settings; |
90 | QPopupMenu* m_sessionsPop; | 92 | QPopupMenu* m_sessionsPop; |
93 | QPopupMenu* m_scripts; | ||
91 | QAction* m_connect; | 94 | QAction* m_connect; |
92 | QAction* m_disconnect; | 95 | QAction* m_disconnect; |
93 | QAction* m_terminate; | 96 | QAction* m_terminate; |
94 | QAction* m_transfer; | 97 | QAction* m_transfer; |
95 | QAction* m_setProfiles; | 98 | QAction* m_setProfiles; |
96 | QAction* m_openKeys; | 99 | QAction* m_openKeys; |
100 | QAction* m_recordScript; | ||
101 | QAction* m_saveScript; | ||
102 | QAction* m_runScript; | ||
97 | 103 | ||
98 | FunctionKeyboard *m_kb; | 104 | FunctionKeyboard *m_kb; |
99 | }; | 105 | }; |
100 | 106 | ||
101 | 107 | ||
102 | #endif | 108 | #endif |
diff --git a/noncore/apps/opie-console/opie-console.pro b/noncore/apps/opie-console/opie-console.pro index b07f10a..8e39a48 100644 --- a/noncore/apps/opie-console/opie-console.pro +++ b/noncore/apps/opie-console/opie-console.pro | |||
@@ -27,13 +27,13 @@ HEADERS = io_layer.h io_serial.h io_irda.h io_bt.h\ | |||
27 | terminalwidget.h \ | 27 | terminalwidget.h \ |
28 | iolayerbase.h \ | 28 | iolayerbase.h \ |
29 | serialconfigwidget.h irdaconfigwidget.h \ | 29 | serialconfigwidget.h irdaconfigwidget.h \ |
30 | btconfigwidget.h modemconfigwidget.h \ | 30 | btconfigwidget.h modemconfigwidget.h \ |
31 | atconfigdialog.h dialdialog.h \ | 31 | atconfigdialog.h dialdialog.h \ |
32 | emulation_widget.h procctl.h \ | 32 | emulation_widget.h procctl.h \ |
33 | function_keyboard.h | 33 | function_keyboard.h script.h |
34 | 34 | ||
35 | SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp \ | 35 | SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp \ |
36 | file_layer.cpp filetransfer.cpp \ | 36 | file_layer.cpp filetransfer.cpp \ |
37 | main.cpp \ | 37 | main.cpp \ |
38 | metafactory.cpp \ | 38 | metafactory.cpp \ |
39 | session.cpp \ | 39 | session.cpp \ |
@@ -55,13 +55,13 @@ SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp \ | |||
55 | terminalwidget.cpp \ | 55 | terminalwidget.cpp \ |
56 | iolayerbase.cpp \ | 56 | iolayerbase.cpp \ |
57 | serialconfigwidget.cpp irdaconfigwidget.cpp \ | 57 | serialconfigwidget.cpp irdaconfigwidget.cpp \ |
58 | btconfigwidget.cpp modemconfigwidget.cpp \ | 58 | btconfigwidget.cpp modemconfigwidget.cpp \ |
59 | atconfigdialog.cpp dialdialog.cpp \ | 59 | atconfigdialog.cpp dialdialog.cpp \ |
60 | emulation_widget.cpp default.cpp procctl.cpp \ | 60 | emulation_widget.cpp default.cpp procctl.cpp \ |
61 | function_keyboard.cpp | 61 | function_keyboard.cpp script.cpp |
62 | 62 | ||
63 | INTERFACES = configurebase.ui editbase.ui | 63 | INTERFACES = configurebase.ui editbase.ui |
64 | INCLUDEPATH += $(OPIEDIR)/include | 64 | INCLUDEPATH += $(OPIEDIR)/include |
65 | DEPENDPATH += $(OPIEDIR)/include | 65 | DEPENDPATH += $(OPIEDIR)/include |
66 | LIBS += -lqpe -lopie | 66 | LIBS += -lqpe -lopie |
67 | TARGET = opie-console | 67 | TARGET = opie-console |
diff --git a/noncore/apps/opie-console/script.cpp b/noncore/apps/opie-console/script.cpp new file mode 100644 index 0000000..a09fab6 --- a/dev/null +++ b/noncore/apps/opie-console/script.cpp | |||
@@ -0,0 +1,30 @@ | |||
1 | #include <qfile.h> | ||
2 | #include <qtextstream.h> | ||
3 | #include "script.h" | ||
4 | |||
5 | Script::Script() { | ||
6 | } | ||
7 | |||
8 | Script::Script(const QString fileName) { | ||
9 | QFile file(fileName); | ||
10 | QTextStream stream(&file); | ||
11 | while (!stream.atEnd()) { | ||
12 | appendString(stream.readLine()); | ||
13 | } | ||
14 | } | ||
15 | |||
16 | void Script::saveTo(const QString fileName) const { | ||
17 | QFile file(fileName); | ||
18 | file.open(IO_WriteOnly); | ||
19 | file.writeBlock(m_script.ascii(), m_script.length()); | ||
20 | file.close(); | ||
21 | } | ||
22 | |||
23 | |||
24 | void Script::appendString(const QString string) { | ||
25 | m_script += string; | ||
26 | } | ||
27 | |||
28 | QString Script::script() const { | ||
29 | return m_script; | ||
30 | } | ||
diff --git a/noncore/apps/opie-console/script.h b/noncore/apps/opie-console/script.h new file mode 100644 index 0000000..dc2351b --- a/dev/null +++ b/noncore/apps/opie-console/script.h | |||
@@ -0,0 +1,30 @@ | |||
1 | #ifndef CONSOLE_SCRIPT_H | ||
2 | #define CONSOLE_SCRIPT_H | ||
3 | |||
4 | #include <qstring.h> | ||
5 | |||
6 | /* Very simple scripting - this class stores keys received | ||
7 | * by emulation_layer */ | ||
8 | |||
9 | class Script { | ||
10 | public: | ||
11 | /* Construct an empty script */ | ||
12 | Script(); | ||
13 | |||
14 | /* Load a script from a text file */ | ||
15 | Script(const QString fileName); | ||
16 | |||
17 | /* Append a line to the script */ | ||
18 | void appendString(const QString string); | ||
19 | |||
20 | /* Save this script to a file */ | ||
21 | void saveTo(const QString fileName) const; | ||
22 | |||
23 | /* Return the script's content */ | ||
24 | QString script() const; | ||
25 | protected: | ||
26 | QString m_script; | ||
27 | }; | ||
28 | |||
29 | |||
30 | #endif /* CONSOLE_SCRIPT_H */ | ||