summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-04-05 13:17:19 (UTC)
committer llornkcor <llornkcor>2002-04-05 13:17:19 (UTC)
commit1896c5fa43e465567595feb442013d75c476f090 (patch) (unidiff)
treee8ea13fd45277f0b8d7af52f4938f411fd9ed4af
parentdd5bc1f9d61cdd8cfde4c7a7fbba3b53b77b2670 (diff)
downloadopie-1896c5fa43e465567595feb442013d75c476f090.zip
opie-1896c5fa43e465567595feb442013d75c476f090.tar.gz
opie-1896c5fa43e465567595feb442013d75c476f090.tar.bz2
Folded in changes I forgot about. Added -e argument to execute a command and leave the konsole,
and also setDocument to exec command in new session if open. so a command run like $OPIEDIR/bin/qcop QPE/Application/embeddedkonsole 'setDocument(QString)' 'ssh -V' will run that command in a new session (tab). So now scripts can be run from an icon, and such.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/konsole.cpp45
-rw-r--r--core/apps/embeddedkonsole/konsole.h3
2 files changed, 45 insertions, 3 deletions
diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp
index 217d8d8..16ff4df 100644
--- a/core/apps/embeddedkonsole/konsole.cpp
+++ b/core/apps/embeddedkonsole/konsole.cpp
@@ -18,6 +18,7 @@
18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ 18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */
19/* */ 19/* */
20/* -------------------------------------------------------------------------- */ 20/* -------------------------------------------------------------------------- */
21// enhancements added by L.J. Potter <ljp@llornkcor.com>
21 22
22#include <qpe/resource.h> 23#include <qpe/resource.h>
23 24
@@ -201,7 +202,7 @@ void Konsole::init(const char* _pgm, QStrList & _args)
201 b_scroll = TRUE; // histon; 202 b_scroll = TRUE; // histon;
202 n_keytab = 0; 203 n_keytab = 0;
203 n_render = 0; 204 n_render = 0;
204 205 startUp=0;
205 setCaption( tr("Terminal") ); 206 setCaption( tr("Terminal") );
206 setIcon( Resource::loadPixmap( "konsole" ) ); 207 setIcon( Resource::loadPixmap( "konsole" ) );
207 208
@@ -364,12 +365,12 @@ void Konsole::init(const char* _pgm, QStrList & _args)
364 se_pgm = _pgm; 365 se_pgm = _pgm;
365 se_args = _args; 366 se_args = _args;
366 367
368parseCommandLine();
367 // read and apply default values /////////////////////////////////////////// 369 // read and apply default values ///////////////////////////////////////////
368 resize(321, 321); // Dummy. 370 resize(321, 321); // Dummy.
369 QSize currentSize = size(); 371 QSize currentSize = size();
370 if (currentSize != size()) 372 if (currentSize != size())
371 defaultSize = size(); 373 defaultSize = size();
372
373} 374}
374 375
375void Konsole::show() 376void Konsole::show()
@@ -389,7 +390,7 @@ Konsole::~Konsole()
389{ 390{
390 while (nsessions > 0) { 391 while (nsessions > 0) {
391 doneSession(getTe()->currentSession, 0); 392 doneSession(getTe()->currentSession, 0);
392 } 393 }
393 394
394 Config cfg("Konsole"); 395 Config cfg("Konsole");
395 cfg.setGroup("Konsole"); 396 cfg.setGroup("Konsole");
@@ -843,3 +844,41 @@ void Konsole::editCommandListMenuSelected(int iD)
843 } 844 }
844 845
845} 846}
847
848// $QPEDIR/bin/qcop QPE/Application/embeddedkonsole 'setDocument(QString)' 'ssh -V'
849void Konsole::setDocument( const QString &cmd) {
850 newSession();
851 TEWidget* te = getTe();
852 if(cmd.find("-e", 0, TRUE) != -1) {
853 QString cmd2;
854 cmd2=cmd.right(cmd.length()-3)+" &";
855 system(cmd2.latin1());
856 if(startUp <= 1 && nsessions < 2) {
857 doneSession(getTe()->currentSession, 0);
858 exit(0);
859 } else
860 doneSession(getTe()->currentSession, 0);
861 } else {
862 if (te != 0) {
863 te->emitText(cmd+"\r");
864 }
865 }
866 startUp++;
867}
868
869void Konsole::parseCommandLine() {
870 QString cmd;
871 // newSession();
872 for (int i=1;i< qApp->argc();i++) {
873 if( QString(qApp->argv()[i]) == "-e") {
874 i++;
875 for ( int j=i;j< qApp->argc();j++) {
876 cmd+=QString(qApp->argv()[j])+" ";
877 }
878 cmd.stripWhiteSpace();
879 system(cmd.latin1());
880 exit(0);//close();
881 } // end -e switch
882 }
883 startUp++;
884}
diff --git a/core/apps/embeddedkonsole/konsole.h b/core/apps/embeddedkonsole/konsole.h
index b508cf8..40edaec 100644
--- a/core/apps/embeddedkonsole/konsole.h
+++ b/core/apps/embeddedkonsole/konsole.h
@@ -54,7 +54,9 @@ public:
54 void show(); 54 void show();
55 void setColor(); 55 void setColor();
56 int lastSelectedMenu; 56 int lastSelectedMenu;
57 int startUp;
57private slots: 58private slots:
59 void setDocument(const QString &);
58 void doneSession(TESession*,int); 60 void doneSession(TESession*,int);
59 void changeColumns(int); 61 void changeColumns(int);
60 void fontChanged(int); 62 void fontChanged(int);
@@ -73,6 +75,7 @@ private slots:
73 void initCommandList(); 75 void initCommandList();
74 void scrollMenuSelected(int); 76 void scrollMenuSelected(int);
75 void editCommandListMenuSelected(int); 77 void editCommandListMenuSelected(int);
78 void parseCommandLine();
76private: 79private:
77 void init(const char* _pgm, QStrList & _args); 80 void init(const char* _pgm, QStrList & _args);
78 void initSession(const char* _pgm, QStrList & _args); 81 void initSession(const char* _pgm, QStrList & _args);