Diffstat (limited to 'noncore/apps/opie-console/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 56 |
1 files changed, 55 insertions, 1 deletions
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 @@ -4,9 +4,9 @@ #include <qlabel.h> #include <qpopupmenu.h> #include <qtoolbar.h> #include <qpe/resource.h> - +#include <opie/ofiledialog.h> #include "profileeditordialog.h" #include "configdialog.h" #include "default.h" @@ -16,8 +16,9 @@ #include "mainwindow.h" #include "tabwidget.h" #include "transferdialog.h" #include "function_keyboard.h" +#include "script.h" MainWindow::MainWindow() { m_factory = new MetaFactory(); Default def(m_factory); @@ -37,8 +38,9 @@ void MainWindow::initUI() { m_tool->setHorizontalStretchable( TRUE ); m_bar = new QMenuBar( m_tool ); m_console = new QPopupMenu( this ); + m_scripts = new QPopupMenu( this ); m_sessionsPop= new QPopupMenu( this ); m_settings = new QPopupMenu( this ); /* add a toolbar for icons */ @@ -105,8 +107,23 @@ void MainWindow::initUI() { connect( m_setProfiles, SIGNAL(activated() ), this, SLOT(slotConfigure() ) ); /* + * script actions + */ + m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); + m_recordScript->addTo(m_scripts); + connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); + + m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); + m_saveScript->addTo(m_scripts); + connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); + + m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0); + m_runScript->addTo(m_scripts); + connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript())); + + /* * action that open/closes the keyboard */ m_openKeys = new QAction (tr("Open Keyboard..."), Resource::loadPixmap( "down" ), @@ -125,8 +142,11 @@ void MainWindow::initUI() { /* insert the connection menu */ m_bar->insertItem( tr("Connection"), m_console ); + /* the scripts menu */ + m_bar->insertItem( tr("Scripts"), m_scripts ); + /* the settings menu */ m_bar->insertItem( tr("Settings"), m_settings ); /* and the keyboard */ @@ -188,8 +208,42 @@ void MainWindow::slotNew() { create( dlg.profile() ); } } +void MainWindow::slotRecordScript() { + if (currentSession()) { + currentSession()->emulationLayer()->startRecording(); + } +} + +void MainWindow::slotSaveScript() { + if (currentSession() && currentSession()->emulationLayer()->isRecording()) { + MimeTypes types; + QStringList script; + script << "text/plain"; + types.insert("Script", script); + QString filename = OFileDialog::getSaveFileName(2, "/", QString::null, types); + if (!filename.isEmpty()) { + currentSession()->emulationLayer()->script()->saveTo(filename); + currentSession()->emulationLayer()->clearScript(); + } + } +} + +void MainWindow::slotRunScript() { + if (currentSession()) { + MimeTypes types; + QStringList script; + script << "text/plain"; + types.insert("Script", script); + QString filename = OFileDialog::getOpenFileName(2, "/", QString::null, types); + if (!filename.isEmpty()) { + Script script(DocLnk(filename).file()); + currentSession()->emulationLayer()->runScript(&script); + } + } +} + void MainWindow::slotConnect() { if ( currentSession() ) currentSession()->layer()->open(); } |