-rw-r--r-- | noncore/apps/opie-console/MyPty.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/TEWidget.cpp | 27 | ||||
-rw-r--r-- | noncore/apps/opie-console/TEWidget.h | 20 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.h | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/file_layer.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_bt.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_irda.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 47 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.h | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/opie-console.control | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/profilemanager.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/receive_layer.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.h | 7 |
15 files changed, 121 insertions, 29 deletions
diff --git a/noncore/apps/opie-console/MyPty.cpp b/noncore/apps/opie-console/MyPty.cpp index 16bb5ff..984e347 100644 --- a/noncore/apps/opie-console/MyPty.cpp +++ b/noncore/apps/opie-console/MyPty.cpp @@ -109,9 +109,8 @@ void MyPty::setSize(int lines, int columns) void MyPty::donePty() { // This is code from the Qt DumbTerminal example - int status = 0; ::close(m_fd); if (m_cpid) { @@ -256,8 +255,9 @@ MyPty::MyPty(const Profile& prof) : m_cpid(0) m_sn_e = 0l; m_sn_r = 0l; m_fd = openPty(); ProcCtl* ctl = ProcCtl::self(); + Q_UNUSED(ctl); } /*! Destructor. diff --git a/noncore/apps/opie-console/TEWidget.cpp b/noncore/apps/opie-console/TEWidget.cpp index f3f462f..e4415dc 100644 --- a/noncore/apps/opie-console/TEWidget.cpp +++ b/noncore/apps/opie-console/TEWidget.cpp @@ -94,8 +94,33 @@ #define yMouseScroll 1 // scroll increment used when dragging selection at top/bottom of window. +/* Button XPM */ +namespace { +static char * menu_xpm[] = { +"12 12 5 1", +" c None", +". c #000000", +"+ c #FFFDAD", +"@ c #FFFF00", +"# c #E5E100", +" ", +" ", +" ......... ", +" .+++++++. ", +" .+@@@@#. ", +" .+@@@#. ", +" .+@@#. ", +" .+@#. ", +" .+#. ", +" .+. ", +" .. ", +" "}; + +} + + /* ------------------------------------------------------------------------- */ /* */ /* Colors */ /* */ @@ -1240,9 +1265,9 @@ void TEWidget::dropEvent(QDropEvent* event) } #endif -void TEWidget::drop_menu_activated(int item) +void TEWidget::drop_menu_activated(int) { #ifndef QT_NO_DRAGANDDROP switch (item) { diff --git a/noncore/apps/opie-console/TEWidget.h b/noncore/apps/opie-console/TEWidget.h index 1b5300f..f03a16e 100644 --- a/noncore/apps/opie-console/TEWidget.h +++ b/noncore/apps/opie-console/TEWidget.h @@ -33,27 +33,9 @@ extern unsigned short vt100_graphics[32]; -static char * menu_xpm[] = { -"12 12 5 1", -" c None", -". c #000000", -"+ c #FFFDAD", -"@ c #FFFF00", -"# c #E5E100", -" ", -" ", -" ......... ", -" .+++++++. ", -" .+@@@@#. ", -" .+@@@#. ", -" .+@@#. ", -" .+@#. ", -" .+#. ", -" .+. ", -" .. ", -" "}; + class TESession; // class Konsole; diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp index bdc8b43..bb3dd28 100644 --- a/noncore/apps/opie-console/emulation_handler.cpp +++ b/noncore/apps/opie-console/emulation_handler.cpp @@ -191,4 +191,10 @@ void EmulationHandler::clearScript() { void EmulationHandler::runScript(const Script *script) { emit send(script->script()); } +void EmulationHandler::copy() { + m_teWid->emitSelection(); +} +void EmulationHandler::paste() { + m_teWid->pasteClipboard(); +} diff --git a/noncore/apps/opie-console/emulation_handler.h b/noncore/apps/opie-console/emulation_handler.h index 7ca2cf3..12abbc5 100644 --- a/noncore/apps/opie-console/emulation_handler.h +++ b/noncore/apps/opie-console/emulation_handler.h @@ -72,8 +72,10 @@ signals: public slots: void recv( const QByteArray& ); + void paste(); + void copy(); private slots: void recvEmulation( const char*, int len ); private: diff --git a/noncore/apps/opie-console/file_layer.cpp b/noncore/apps/opie-console/file_layer.cpp index 43e9c8f..0c83700 100644 --- a/noncore/apps/opie-console/file_layer.cpp +++ b/noncore/apps/opie-console/file_layer.cpp @@ -10,13 +10,13 @@ FileTransferLayer::FileTransferLayer(IOLayer *layer) FileTransferLayer::~FileTransferLayer() { } -void FileTransferLayer::sendFile(const QFile& file) { +void FileTransferLayer::sendFile(const QFile&) { } -void FileTransferLayer::sendFile(const QString& file) { +void FileTransferLayer::sendFile(const QString&) { } IOLayer* FileTransferLayer::layer() { return m_layer; diff --git a/noncore/apps/opie-console/io_bt.cpp b/noncore/apps/opie-console/io_bt.cpp index 4486eea..8dd8151 100644 --- a/noncore/apps/opie-console/io_bt.cpp +++ b/noncore/apps/opie-console/io_bt.cpp @@ -23,8 +23,9 @@ void IOBt::close() { } } bool IOBt::open() { + bool ret = false; // only set up bt stuff if mac address was set, otherwise use the device set if ( !m_mac.isEmpty() ) { @@ -38,9 +39,9 @@ bool IOBt::open() { connect( m_attach, SIGNAL( processExited( OProcess* ) ), this, SLOT( slotExited( OProcess* ) ) ); if ( m_attach->start() ) { - IOSerial::open(); + ret = IOSerial::open(); } else { qWarning("could not attach to device"); delete m_attach; m_attach = 0; @@ -48,10 +49,11 @@ bool IOBt::open() { } else { // directly to the normal serial // TODO: look first if the connection really exists. ( is set up ) - IOSerial::open(); + ret =IOSerial::open(); } + return ret; } void IOBt::reload( const Profile &config ) { m_device = config.readEntry("Device", BT_DEFAULT_DEVICE); @@ -73,5 +75,6 @@ QString IOBt::name() const { } void IOBt::slotExited( OProcess* proc ){ close(); + delete proc; } diff --git a/noncore/apps/opie-console/io_irda.cpp b/noncore/apps/opie-console/io_irda.cpp index 56a373c..b3b693f 100644 --- a/noncore/apps/opie-console/io_irda.cpp +++ b/noncore/apps/opie-console/io_irda.cpp @@ -20,8 +20,9 @@ void IOIrda::close() { delete m_attach; } bool IOIrda::open() { + bool ret; // irdaattach here m_attach = new OProcess(); *m_attach << "irattach /dev/ttyS2 -s"; @@ -29,15 +30,16 @@ bool IOIrda::open() { connect( m_attach, SIGNAL( processExited( OProcess* ) ), this, SLOT( slotExited( OProcess* ) ) ); if ( m_attach->start() ) { - IOSerial::open(); + ret= IOSerial::open(); } else { // emit error!!! qWarning("could not attach to device"); delete m_attach; m_attach = 0l; } + return ret; } void IOIrda::reload( const Profile &config ) { m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE); @@ -58,5 +60,6 @@ QString IOIrda::name() const { } void IOIrda::slotExited(OProcess* proc ){ close(); + delete proc; } diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index e2f4d12..02a3fa9 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp @@ -88,8 +88,18 @@ void MainWindow::initUI() { a->addTo( m_icons ); connect(a, SIGNAL(activated() ), this, SLOT(slotNew() ) ); + m_console->insertSeparator(); + /* save icon is not available */ + a = new QAction(tr("Save Connection"), + Resource::loadPixmap("save"), QString::null, + 0, this, 0 ); + a->addTo( m_console ); + connect(a, SIGNAL(activated() ), + this, SLOT(slotSaveSession() ) ); + m_console->insertSeparator(); + /* * connect action */ m_connect = new QAction(); @@ -221,8 +231,22 @@ void MainWindow::initUI() { m_qb = new QuickButton( m_buttonBar ); connect( m_qb, SIGNAL( keyPressed( ushort, ushort, bool, bool, bool) ), this, SLOT( slotKeyReceived( ushort, ushort, bool, bool, bool) ) ); */ + /* now add the copy and paste actions */ + a = new QAction(tr("Copy"), + Resource::loadPixmap("copy"), QString::null, + 0, this, 0 ); + //a->addTo( m_icons ); + connect( a, SIGNAL(activated() ), + this, SLOT(slotCopy() ) ); + + a = new QAction(tr("Paste"), + Resource::loadPixmap("paste"), QString::null, + 0, this, 0 ); + a->addTo( m_icons ); + connect( a, SIGNAL(activated() ), + this, SLOT(slotPaste() ) ); m_connect->setEnabled( false ); m_disconnect->setEnabled( false ); @@ -538,4 +562,27 @@ void MainWindow::slotKeyReceived(FKey k, ushort, ushort, bool pressed) { QApplication::sendEvent((QObject *)m_curSession->widget(), &ke); ke.ignore(); } } +void MainWindow::slotCopy() { + if (!currentSession() ) return; + currentSession()->emulationHandler()->copy(); +} +void MainWindow::slotPaste() { + if (!currentSession() ) return; + currentSession()->emulationHandler()->paste(); +} + +/* + * Save the session + */ + +void MainWindow::slotSaveSession() { + if (!currentSession() ) { + QMessageBox::information(this, tr("Save Connection"), + tr("<qt>There is no Connection.</qt>"), 1 ); + return; + } + manager()->add( currentSession()->profile() ); + manager()->save(); + populateProfiles(); +} diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h index 0f52e76..16b6252 100644 --- a/noncore/apps/opie-console/mainwindow.h +++ b/noncore/apps/opie-console/mainwindow.h @@ -69,8 +69,15 @@ private slots: void slotFullscreen(); void slotSessionChanged( Session* ); void slotKeyReceived(FKey, ushort, ushort, bool); + /* what could these both slot do? */ + void slotCopy(); + void slotPaste(); + + /* save the currentSession() to Profiles */ + void slotSaveSession(); + private: void initUI(); void populateProfiles(); void create( const Profile& ); diff --git a/noncore/apps/opie-console/opie-console.control b/noncore/apps/opie-console/opie-console.control index d41ef58..8541d22 100644 --- a/noncore/apps/opie-console/opie-console.control +++ b/noncore/apps/opie-console/opie-console.control @@ -1,5 +1,5 @@ -Files: bin/opie-console apps/Applications/opie-console.desktop pics/console/* etc/keytabs/default.Keytab +Files: bin/opie-console apps/Applications/opie-console.desktop pics/console/* etc/keytabs/default.Keytab bin/sz bin/rz Priority: optional Section: opie/applications Maintainer: Opie team <opie@handhelds.org> Architecture: arm diff --git a/noncore/apps/opie-console/profilemanager.cpp b/noncore/apps/opie-console/profilemanager.cpp index 5d39d96..cad2567 100644 --- a/noncore/apps/opie-console/profilemanager.cpp +++ b/noncore/apps/opie-console/profilemanager.cpp @@ -92,8 +92,9 @@ Session* ProfileManager::fromProfile( const Profile& prof, QWidget* parent) { EmulationHandler* handler = new EmulationHandler(prof,dummy ); session->setEmulationHandler( handler ); session->connect(); + session->setProfile( prof ); return session; } void ProfileManager::save( ) { @@ -120,8 +121,11 @@ void ProfileManager::save( ) { conf.writeEntry( "fore", (*it2).foreground() ); conf.writeEntry( "terminal", (*it2).terminal() ); } } +void ProfileManager::add( const Profile& prof) { + m_list.append( prof ); +} void ProfileManager::setProfiles( const Profile::ValueList& list ) { m_list = list; }; Profile ProfileManager::profile( const QString& name )const { diff --git a/noncore/apps/opie-console/receive_layer.cpp b/noncore/apps/opie-console/receive_layer.cpp index 05e2c67..bbde339 100644 --- a/noncore/apps/opie-console/receive_layer.cpp +++ b/noncore/apps/opie-console/receive_layer.cpp @@ -1,6 +1,7 @@ #include <unistd.h> +#include <qdir.h> #include <qstring.h> #include <qfile.h> #include "io_layer.h" @@ -18,9 +19,9 @@ IOLayer* ReceiveLayer::layer() { return m_layer; } QString ReceiveLayer::currentDir()const{ if (m_curDir.isEmpty() ) - return QString::fromLocal8Bit( ::getwd(NULL) ); + return QDir::currentDirPath(); return m_curDir; } void ReceiveLayer::changeDir( const QString& str) { ::chdir( str.latin1() ); diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index 03d0fcd..c166d95 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp @@ -1,6 +1,7 @@ +#include "profile.h" #include "io_layer.h" #include "file_layer.h" #include "emulation_handler.h" #include "session.h" @@ -41,8 +42,11 @@ QWidget* Session::widget() { return 0l; return m_emu->widget(); } +Profile Session::profile()const { + return m_prof; +} /* WidgetLayer* Session::emulationWidget() { return m_widLay; } @@ -90,8 +94,11 @@ void Session::setIOLayer( IOLayer* lay ) { void Session::setEmulationHandler( EmulationHandler* lay ) { delete m_emu; m_emu = lay; } +void Session::setProfile( const Profile& prof ) { + m_prof = prof; +} /* void Session::setEmulationWidget( WidgetLayer* lay ) { delete m_widLay; m_widLay = lay; diff --git a/noncore/apps/opie-console/session.h b/noncore/apps/opie-console/session.h index 83b2046..f60a6c0 100644 --- a/noncore/apps/opie-console/session.h +++ b/noncore/apps/opie-console/session.h @@ -2,8 +2,10 @@ #define OPIE_SESSION_H #include <qwidgetstack.h> +#include "profile.h" + class IOLayer; class EmulationHandler; /** * This is a Session. A session contains @@ -41,8 +43,9 @@ public: */ IOLayer* layer(); EmulationHandler* emulationHandler(); + Profile profile()const; /* * connects the data flow from * the IOLayer to the EmulationLayer @@ -58,15 +61,17 @@ public: void setWidgetStack( QWidgetStack* widget ); void setEmulationHandler( EmulationHandler* lay ); void setIOLayer( IOLayer* ); void setName( const QString& ); + void setProfile( const Profile& ); private: QString m_name; QWidgetStack* m_widget; IOLayer* m_layer; EmulationHandler* m_emu; - bool m_connected; + bool m_connected : 1; + Profile m_prof; }; #endif |