From b89e9179db00b777e41bdd0c95885fb76b3f1a88 Mon Sep 17 00:00:00 2001 From: zecke Date: Thu, 07 Nov 2002 18:31:52 +0000 Subject: Renove Emulationhandler from MetaFactory common.h clashed with TECommon.h Implement saving of history! --- 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) QString TEScreen::getSelText(const BOOL preserve_line_breaks) { - if (sel_begin == -1) + if (sel_begin == -1) return QString::null; // Selection got clear while selecting. int *m; // buffer to fill. @@ -1015,7 +1015,7 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks) { eol = sel_BR % columns + 1; } - + while (hX < eol) { m[d++] = hist.getCell(hY, hX++).c; @@ -1112,7 +1112,7 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks) { qc[i] = m[i]; } - + QString res(qc, d); delete m; @@ -1120,6 +1120,17 @@ QString TEScreen::getSelText(const BOOL preserve_line_breaks) return res; } +QString TEScreen::getHistory() { + sel_begin = 0; + sel_BR = sel_begin; + sel_TL = sel_begin; + setSelExtentXY(columns-1,lines-1); + QString tmp=getSelText(true); + while (tmp.at(tmp.length()-2).unicode()==10 && tmp.at(tmp.length()-1).unicode()==10) + tmp.truncate(tmp.length()-1); + + return tmp; +} /* above ... end of line processing for selection -- psilva cases: 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 void checkSelection(int from, int to); + QString getHistory(); + private: // helper 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() { scr->clearSelection(); showBulk(); } - +void TEmulation::streamHistory(QTextStream* stream) { + *stream << scr->getHistory(); +} // Refreshing -------------------------------------------------------------- -- #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 @@ #include #include #include +#include + #include "keytrans.h" class TEmulation : public QObject @@ -37,13 +39,14 @@ public: public: virtual void setHistory(bool on); virtual bool history(); + virtual void streamHistory( QTextStream* ); public slots: // signals incoming from TEWidget virtual void onImageSizeChange(int lines, int columns); virtual void onHistoryCursorChange(int cursor); virtual void onKeyPress(QKeyEvent*); - + virtual void clearSelection(); virtual void onSelectionBegin(const int x, const int y); virtual void onSelectionExtend(const int x, const int y); @@ -75,6 +78,8 @@ public: void setKeytrans(int no); void setKeytrans(const char * no); + + protected: 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 } +TEmulation* EmulationHandler::emulation() { + return m_teEmu; +} EmulationHandler::~EmulationHandler() { if (isRecording()) 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: void load( const Profile& ); QWidget* widget(); + TEmulation *emulation(); void setColor( const QColor& fore, const QColor& back ); QPushButton* cornerButton(); 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 @@ #include #include #include +#include #include #include @@ -17,6 +18,7 @@ #include +#include "TEmulation.h" #include "keytrans.h" #include "profileeditordialog.h" #include "configdialog.h" @@ -241,6 +243,12 @@ void MainWindow::initUI() { this, SLOT( slotFullscreen() ) ); m_console->insertSeparator(); + + QAction *a = new QAction(); + a->setText( tr("Save history") ); + a->addTo( m_console ); + connect(a, SIGNAL(activated() ), + this, SLOT(slotSaveHistory() ) ); /* * terminate action */ @@ -302,7 +310,7 @@ void MainWindow::initUI() { this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool))); - QAction *a = new QAction(tr("Copy"), + a = new QAction(tr("Copy"), Resource::loadPixmap("copy"), QString::null, 0, this, 0 ); //a->addTo( m_icons ); @@ -768,3 +776,28 @@ void MainWindow::slotSaveSession() { manager()->save(); populateProfiles(); } +void MainWindow::slotSaveHistory() { + QMap map; + QStringList text; + text << "text/plain"; + map.insert(tr("History"), text ); + QString filename = OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map); + if (filename.isEmpty() ) return; + + QFileInfo info(filename); + + DocLnk nf; + nf.setType("text/plain"); + nf.setFile(filename); + nf.setName(info.fileName()); + + + QFile file(filename); + file.open(IO_WriteOnly ); + QTextStream str(&file ); + if ( currentSession() ) + currentSession()->emulationHandler()->emulation()->streamHistory(&str); + + file.close(); + nf.writeLink(); +} 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: void slotWrap(); void slotSessionChanged( Session* ); void slotKeyReceived(FKey, ushort, ushort, bool); + void slotSaveHistory(); /* what could these both slot do? */ 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, m_strings.insert(str, name ); m_receiveFact.insert( str, lay ); } -void MetaFactory::addEmulationLayer( const QCString& name, - const QString& str, - emulationLayer em) { - m_strings.insert(str, name ); - m_emu.insert( str, em ); -} QStringList MetaFactory::ioLayers()const { QStringList list; QMap::ConstIterator it; @@ -89,14 +83,6 @@ QStringList MetaFactory::receiveLayers()const { } return list; } -QStringList MetaFactory::emulationLayers()const { - QStringList list; - QMap::ConstIterator it; - for ( it = m_emu.begin(); it != m_emu.end(); ++it ) { - list << it.key(); - } - return list; -} IOLayer* MetaFactory::newIOLayer( const QString& str,const Profile& prof ) { IOLayer* lay = 0l; @@ -148,17 +134,6 @@ ProfileDialogWidget *MetaFactory::newKeyboardPlugin( const QString& str, QWidget } return wid; } -EmulationLayer* MetaFactory::newEmulationLayer( const QString& str, WidgetLayer* wid) { - EmulationLayer* lay = 0l; - - QMap::Iterator it; - it = m_emu.find( str ); - if ( it != m_emu.end() ) { - lay = (*(it.data() ) )(wid); - } - - return lay; -} FileTransferLayer* MetaFactory::newFileTransfer(const QString& str, IOLayer* lay ) { FileTransferLayer* file = 0l; QMap::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 @@ #include "receive_layer.h" #include "profile.h" #include "profiledialogwidget.h" -#include "emulation_layer.h" class WidgetLayer; class MetaFactory { @@ -25,7 +24,6 @@ public: typedef IOLayer* (*iolayer)(const Profile& ); typedef FileTransferLayer* (*filelayer)(IOLayer*); typedef ReceiveLayer* (*receivelayer)(IOLayer*); - typedef EmulationLayer* (*emulationLayer)(WidgetLayer* ); MetaFactory(); ~MetaFactory(); @@ -61,12 +59,6 @@ public: const QString&, receivelayer); - /** - * adds a Factory for Emulation to the Layer.. - */ - void addEmulationLayer ( const QCString& name, - const QString& uiString, - emulationLayer ); /* translated UI Strings */ QStringList ioLayers()const; @@ -78,7 +70,6 @@ public: QStringList terminalWidgets()const; QStringList fileTransferLayers()const; QStringList receiveLayers()const; - QStringList emulationLayers()const; /** * the generation... @@ -87,7 +78,6 @@ public: ProfileDialogWidget *newConnectionPlugin ( const QString&, QWidget* ); ProfileDialogWidget* newTerminalPlugin( const QString&, QWidget* ); ProfileDialogWidget* newKeyboardPlugin( const QString&, QWidget* ); - EmulationLayer* newEmulationLayer(const QString&, WidgetLayer* ); FileTransferLayer* newFileTransfer(const QString&, IOLayer* ); ReceiveLayer* newReceive(const QString&, IOLayer* ); @@ -113,7 +103,6 @@ private: QMap m_layerFact; QMap m_fileFact; QMap m_receiveFact; - QMap m_emu; }; -- cgit v0.9.0.2