summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/TEScreen.cpp17
-rw-r--r--noncore/apps/opie-console/TEScreen.h2
-rw-r--r--noncore/apps/opie-console/TEmulation.cpp4
-rw-r--r--noncore/apps/opie-console/TEmulation.h7
-rw-r--r--noncore/apps/opie-console/emulation_handler.cpp3
-rw-r--r--noncore/apps/opie-console/emulation_handler.h1
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp35
-rw-r--r--noncore/apps/opie-console/mainwindow.h1
-rw-r--r--noncore/apps/opie-console/metafactory.cpp25
-rw-r--r--noncore/apps/opie-console/metafactory.h11
10 files changed, 64 insertions, 42 deletions
diff --git a/noncore/apps/opie-console/TEScreen.cpp b/noncore/apps/opie-console/TEScreen.cpp
index a3d115d..2675d31 100644
--- a/noncore/apps/opie-console/TEScreen.cpp
+++ b/noncore/apps/opie-console/TEScreen.cpp
@@ -985,7 +985,7 @@ void TEScreen::setSelExtentXY(const int x, const int y)
985 985
986QString TEScreen::getSelText(const BOOL preserve_line_breaks) 986QString TEScreen::getSelText(const BOOL preserve_line_breaks)
987{ 987{
988 if (sel_begin == -1) 988 if (sel_begin == -1)
989 return QString::null; // Selection got clear while selecting. 989 return QString::null; // Selection got clear while selecting.
990 990
991 int *m; // buffer to fill. 991 int *m; // buffer to fill.
@@ -1015,7 +1015,7 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks)
1015 { 1015 {
1016 eol = sel_BR % columns + 1; 1016 eol = sel_BR % columns + 1;
1017 } 1017 }
1018 1018
1019 while (hX < eol) 1019 while (hX < eol)
1020 { 1020 {
1021 m[d++] = hist.getCell(hY, hX++).c; 1021 m[d++] = hist.getCell(hY, hX++).c;
@@ -1112,7 +1112,7 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks)
1112 { 1112 {
1113 qc[i] = m[i]; 1113 qc[i] = m[i];
1114 } 1114 }
1115 1115
1116 QString res(qc, d); 1116 QString res(qc, d);
1117 1117
1118 delete m; 1118 delete m;
@@ -1120,6 +1120,17 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks)
1120 1120
1121 return res; 1121 return res;
1122} 1122}
1123QString TEScreen::getHistory() {
1124 sel_begin = 0;
1125 sel_BR = sel_begin;
1126 sel_TL = sel_begin;
1127 setSelExtentXY(columns-1,lines-1);
1128 QString tmp=getSelText(true);
1129 while (tmp.at(tmp.length()-2).unicode()==10 && tmp.at(tmp.length()-1).unicode()==10)
1130 tmp.truncate(tmp.length()-1);
1131
1132 return tmp;
1133}
1123/* above ... end of line processing for selection -- psilva 1134/* above ... end of line processing for selection -- psilva
1124cases: 1135cases:
1125 1136
diff --git a/noncore/apps/opie-console/TEScreen.h b/noncore/apps/opie-console/TEScreen.h
index 473ce79..a840b44 100644
--- a/noncore/apps/opie-console/TEScreen.h
+++ b/noncore/apps/opie-console/TEScreen.h
@@ -162,6 +162,8 @@ public: // these are all `Screen' operations
162 162
163 void checkSelection(int from, int to); 163 void checkSelection(int from, int to);
164 164
165 QString getHistory();
166
165private: // helper 167private: // helper
166 168
167 void clearImage(int loca, int loce, char c); 169 void clearImage(int loca, int loce, char c);
diff --git a/noncore/apps/opie-console/TEmulation.cpp b/noncore/apps/opie-console/TEmulation.cpp
index 7a0c624..3b1b9e1 100644
--- a/noncore/apps/opie-console/TEmulation.cpp
+++ b/noncore/apps/opie-console/TEmulation.cpp
@@ -271,7 +271,9 @@ void TEmulation::clearSelection() {
271 scr->clearSelection(); 271 scr->clearSelection();
272 showBulk(); 272 showBulk();
273} 273}
274 274void TEmulation::streamHistory(QTextStream* stream) {
275 *stream << scr->getHistory();
276}
275// Refreshing -------------------------------------------------------------- -- 277// Refreshing -------------------------------------------------------------- --
276 278
277#define BULK_TIMEOUT 20 279#define BULK_TIMEOUT 20
diff --git a/noncore/apps/opie-console/TEmulation.h b/noncore/apps/opie-console/TEmulation.h
index ec15e7a..d7b3d6d 100644
--- a/noncore/apps/opie-console/TEmulation.h
+++ b/noncore/apps/opie-console/TEmulation.h
@@ -24,6 +24,8 @@
24#include <qtimer.h> 24#include <qtimer.h>
25#include <stdio.h> 25#include <stdio.h>
26#include <qtextcodec.h> 26#include <qtextcodec.h>
27#include <qtextstream.h>
28
27#include "keytrans.h" 29#include "keytrans.h"
28 30
29class TEmulation : public QObject 31class TEmulation : public QObject
@@ -37,13 +39,14 @@ public:
37public: 39public:
38 virtual void setHistory(bool on); 40 virtual void setHistory(bool on);
39 virtual bool history(); 41 virtual bool history();
42 virtual void streamHistory( QTextStream* );
40 43
41public slots: // signals incoming from TEWidget 44public slots: // signals incoming from TEWidget
42 45
43 virtual void onImageSizeChange(int lines, int columns); 46 virtual void onImageSizeChange(int lines, int columns);
44 virtual void onHistoryCursorChange(int cursor); 47 virtual void onHistoryCursorChange(int cursor);
45 virtual void onKeyPress(QKeyEvent*); 48 virtual void onKeyPress(QKeyEvent*);
46 49
47 virtual void clearSelection(); 50 virtual void clearSelection();
48 virtual void onSelectionBegin(const int x, const int y); 51 virtual void onSelectionBegin(const int x, const int y);
49 virtual void onSelectionExtend(const int x, const int y); 52 virtual void onSelectionExtend(const int x, const int y);
@@ -75,6 +78,8 @@ public:
75 void setKeytrans(int no); 78 void setKeytrans(int no);
76 void setKeytrans(const char * no); 79 void setKeytrans(const char * no);
77 80
81
82
78protected: 83protected:
79 84
80 TEWidget* gui; 85 TEWidget* gui;
diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp
index 7924568..235facb 100644
--- a/noncore/apps/opie-console/emulation_handler.cpp
+++ b/noncore/apps/opie-console/emulation_handler.cpp
@@ -31,6 +31,9 @@ EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const c
31 31
32 32
33} 33}
34TEmulation* EmulationHandler::emulation() {
35 return m_teEmu;
36}
34EmulationHandler::~EmulationHandler() { 37EmulationHandler::~EmulationHandler() {
35 if (isRecording()) 38 if (isRecording())
36 clearScript(); 39 clearScript();
diff --git a/noncore/apps/opie-console/emulation_handler.h b/noncore/apps/opie-console/emulation_handler.h
index 7bc6f16..1338525 100644
--- a/noncore/apps/opie-console/emulation_handler.h
+++ b/noncore/apps/opie-console/emulation_handler.h
@@ -47,6 +47,7 @@ public:
47 47
48 void load( const Profile& ); 48 void load( const Profile& );
49 QWidget* widget(); 49 QWidget* widget();
50 TEmulation *emulation();
50 void setColor( const QColor& fore, const QColor& back ); 51 void setColor( const QColor& fore, const QColor& back );
51 QPushButton* cornerButton(); 52 QPushButton* cornerButton();
52 53
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index d221715..01468ca 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -9,6 +9,7 @@
9#include <qpushbutton.h> 9#include <qpushbutton.h>
10#include <qwhatsthis.h> 10#include <qwhatsthis.h>
11#include <qfileinfo.h> 11#include <qfileinfo.h>
12#include <qtextstream.h>
12 13
13#include <qpe/resource.h> 14#include <qpe/resource.h>
14#include <qpe/qpeapplication.h> 15#include <qpe/qpeapplication.h>
@@ -17,6 +18,7 @@
17 18
18#include <opie/ofiledialog.h> 19#include <opie/ofiledialog.h>
19 20
21#include "TEmulation.h"
20#include "keytrans.h" 22#include "keytrans.h"
21#include "profileeditordialog.h" 23#include "profileeditordialog.h"
22#include "configdialog.h" 24#include "configdialog.h"
@@ -241,6 +243,12 @@ void MainWindow::initUI() {
241 this, SLOT( slotFullscreen() ) ); 243 this, SLOT( slotFullscreen() ) );
242 244
243 m_console->insertSeparator(); 245 m_console->insertSeparator();
246
247 QAction *a = new QAction();
248 a->setText( tr("Save history") );
249 a->addTo( m_console );
250 connect(a, SIGNAL(activated() ),
251 this, SLOT(slotSaveHistory() ) );
244 /* 252 /*
245 * terminate action 253 * terminate action
246 */ 254 */
@@ -302,7 +310,7 @@ void MainWindow::initUI() {
302 this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool))); 310 this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool)));
303 311
304 312
305 QAction *a = new QAction(tr("Copy"), 313 a = new QAction(tr("Copy"),
306 Resource::loadPixmap("copy"), QString::null, 314 Resource::loadPixmap("copy"), QString::null,
307 0, this, 0 ); 315 0, this, 0 );
308 //a->addTo( m_icons ); 316 //a->addTo( m_icons );
@@ -768,3 +776,28 @@ void MainWindow::slotSaveSession() {
768 manager()->save(); 776 manager()->save();
769 populateProfiles(); 777 populateProfiles();
770} 778}
779void MainWindow::slotSaveHistory() {
780 QMap<QString, QStringList> map;
781 QStringList text;
782 text << "text/plain";
783 map.insert(tr("History"), text );
784 QString filename = OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map);
785 if (filename.isEmpty() ) return;
786
787 QFileInfo info(filename);
788
789 DocLnk nf;
790 nf.setType("text/plain");
791 nf.setFile(filename);
792 nf.setName(info.fileName());
793
794
795 QFile file(filename);
796 file.open(IO_WriteOnly );
797 QTextStream str(&file );
798 if ( currentSession() )
799 currentSession()->emulationHandler()->emulation()->streamHistory(&str);
800
801 file.close();
802 nf.writeLink();
803}
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h
index 37219c5..0fac38b 100644
--- a/noncore/apps/opie-console/mainwindow.h
+++ b/noncore/apps/opie-console/mainwindow.h
@@ -70,6 +70,7 @@ private slots:
70 void slotWrap(); 70 void slotWrap();
71 void slotSessionChanged( Session* ); 71 void slotSessionChanged( Session* );
72 void slotKeyReceived(FKey, ushort, ushort, bool); 72 void slotKeyReceived(FKey, ushort, ushort, bool);
73 void slotSaveHistory();
73 74
74 /* what could these both slot do? */ 75 /* what could these both slot do? */
75 void slotCopy(); 76 void slotCopy();
diff --git a/noncore/apps/opie-console/metafactory.cpp b/noncore/apps/opie-console/metafactory.cpp
index 0b43e17..24928e7 100644
--- a/noncore/apps/opie-console/metafactory.cpp
+++ b/noncore/apps/opie-console/metafactory.cpp
@@ -43,12 +43,6 @@ void MetaFactory::addReceiveLayer( const QCString& name,
43 m_strings.insert(str, name ); 43 m_strings.insert(str, name );
44 m_receiveFact.insert( str, lay ); 44 m_receiveFact.insert( str, lay );
45} 45}
46void MetaFactory::addEmulationLayer( const QCString& name,
47 const QString& str,
48 emulationLayer em) {
49 m_strings.insert(str, name );
50 m_emu.insert( str, em );
51}
52QStringList MetaFactory::ioLayers()const { 46QStringList MetaFactory::ioLayers()const {
53 QStringList list; 47 QStringList list;
54 QMap<QString, iolayer>::ConstIterator it; 48 QMap<QString, iolayer>::ConstIterator it;
@@ -89,14 +83,6 @@ QStringList MetaFactory::receiveLayers()const {
89 } 83 }
90 return list; 84 return list;
91} 85}
92QStringList MetaFactory::emulationLayers()const {
93 QStringList list;
94 QMap<QString, emulationLayer>::ConstIterator it;
95 for ( it = m_emu.begin(); it != m_emu.end(); ++it ) {
96 list << it.key();
97 }
98 return list;
99}
100 86
101IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { 87IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) {
102 IOLayer* lay = 0l; 88 IOLayer* lay = 0l;
@@ -148,17 +134,6 @@ ProfileDialogWidget *MetaFactory::newKeyboardPlugin( const QString& str, QWidget
148 } 134 }
149 return wid; 135 return wid;
150} 136}
151EmulationLayer* MetaFactory::newEmulationLayer( const QString& str, WidgetLayer* wid) {
152 EmulationLayer* lay = 0l;
153
154 QMap<QString, emulationLayer>::Iterator it;
155 it = m_emu.find( str );
156 if ( it != m_emu.end() ) {
157 lay = (*(it.data() ) )(wid);
158 }
159
160 return lay;
161}
162FileTransferLayer* MetaFactory::newFileTransfer(const QString& str, IOLayer* lay ) { 137FileTransferLayer* MetaFactory::newFileTransfer(const QString& str, IOLayer* lay ) {
163 FileTransferLayer* file = 0l; 138 FileTransferLayer* file = 0l;
164 QMap<QString, filelayer>::Iterator it; 139 QMap<QString, filelayer>::Iterator it;
diff --git a/noncore/apps/opie-console/metafactory.h b/noncore/apps/opie-console/metafactory.h
index f89136c..bcc40db 100644
--- a/noncore/apps/opie-console/metafactory.h
+++ b/noncore/apps/opie-console/metafactory.h
@@ -16,7 +16,6 @@
16#include "receive_layer.h" 16#include "receive_layer.h"
17#include "profile.h" 17#include "profile.h"
18#include "profiledialogwidget.h" 18#include "profiledialogwidget.h"
19#include "emulation_layer.h"
20 19
21class WidgetLayer; 20class WidgetLayer;
22class MetaFactory { 21class MetaFactory {
@@ -25,7 +24,6 @@ public:
25 typedef IOLayer* (*iolayer)(const Profile& ); 24 typedef IOLayer* (*iolayer)(const Profile& );
26 typedef FileTransferLayer* (*filelayer)(IOLayer*); 25 typedef FileTransferLayer* (*filelayer)(IOLayer*);
27 typedef ReceiveLayer* (*receivelayer)(IOLayer*); 26 typedef ReceiveLayer* (*receivelayer)(IOLayer*);
28 typedef EmulationLayer* (*emulationLayer)(WidgetLayer* );
29 27
30 MetaFactory(); 28 MetaFactory();
31 ~MetaFactory(); 29 ~MetaFactory();
@@ -61,12 +59,6 @@ public:
61 const QString&, 59 const QString&,
62 receivelayer); 60 receivelayer);
63 61
64 /**
65 * adds a Factory for Emulation to the Layer..
66 */
67 void addEmulationLayer ( const QCString& name,
68 const QString& uiString,
69 emulationLayer );
70 62
71 /* translated UI Strings */ 63 /* translated UI Strings */
72 QStringList ioLayers()const; 64 QStringList ioLayers()const;
@@ -78,7 +70,6 @@ public:
78 QStringList terminalWidgets()const; 70 QStringList terminalWidgets()const;
79 QStringList fileTransferLayers()const; 71 QStringList fileTransferLayers()const;
80 QStringList receiveLayers()const; 72 QStringList receiveLayers()const;
81 QStringList emulationLayers()const;
82 73
83 /** 74 /**
84 * the generation... 75 * the generation...
@@ -87,7 +78,6 @@ public:
87 ProfileDialogWidget *newConnectionPlugin ( const QString&, QWidget* ); 78 ProfileDialogWidget *newConnectionPlugin ( const QString&, QWidget* );
88 ProfileDialogWidget* newTerminalPlugin( const QString&, QWidget* ); 79 ProfileDialogWidget* newTerminalPlugin( const QString&, QWidget* );
89 ProfileDialogWidget* newKeyboardPlugin( const QString&, QWidget* ); 80 ProfileDialogWidget* newKeyboardPlugin( const QString&, QWidget* );
90 EmulationLayer* newEmulationLayer(const QString&, WidgetLayer* );
91 FileTransferLayer* newFileTransfer(const QString&, IOLayer* ); 81 FileTransferLayer* newFileTransfer(const QString&, IOLayer* );
92 ReceiveLayer* newReceive(const QString&, IOLayer* ); 82 ReceiveLayer* newReceive(const QString&, IOLayer* );
93 83
@@ -113,7 +103,6 @@ private:
113 QMap<QString, iolayer> m_layerFact; 103 QMap<QString, iolayer> m_layerFact;
114 QMap<QString, filelayer> m_fileFact; 104 QMap<QString, filelayer> m_fileFact;
115 QMap<QString, receivelayer> m_receiveFact; 105 QMap<QString, receivelayer> m_receiveFact;
116 QMap<QString, emulationLayer> m_emu;
117}; 106};
118 107
119 108