-rw-r--r-- | noncore/apps/opie-console/TEScreen.h | 8 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.cpp | 17 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 31 | ||||
-rw-r--r-- | noncore/apps/opie-console/profile.h | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.cpp | 12 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.h | 3 | ||||
-rw-r--r-- | noncore/apps/opie-console/terminalwidget.cpp | 18 |
7 files changed, 77 insertions, 16 deletions
diff --git a/noncore/apps/opie-console/TEScreen.h b/noncore/apps/opie-console/TEScreen.h index ba47ee5..473ce79 100644 --- a/noncore/apps/opie-console/TEScreen.h +++ b/noncore/apps/opie-console/TEScreen.h @@ -132,17 +132,17 @@ public: // these are all `Screen' operations void home(); void reset(); // void ShowCharacter(unsigned short c); // void resizeImage(int new_lines, int new_columns); // ca* getCookedImage(); - + /*! return the number of lines. */ int getLines() { return lines; } /*! return the number of columns. */ int getColumns() { return columns; } /*! set the position of the history cursor. */ void setHistCursor(int cursor); /*! return the position of the history cursor. */ @@ -161,17 +161,17 @@ public: // these are all `Screen' operations QString getSelText(const BOOL preserve_line_breaks); void checkSelection(int from, int to); private: // helper void clearImage(int loca, int loce, char c); void moveImage(int dst, int loca, int loce); - + void scrollUp(int from, int i); void scrollDown(int from, int i); void addHistLine(); void initTabStops(); void effectiveRendition(); @@ -194,17 +194,17 @@ private: int lines; int columns; ca *image; // [lines][columns] // history buffer --------------- int histCursor; // display position relative to start of the history buffer HistoryScroll hist; - + // cursor location int cuX; int cuY; // cursor color and rendition info UINT8 cu_fg; // foreground @@ -233,17 +233,17 @@ private: // effective colors and rendition ------------ UINT8 ef_fg; // These are derived from UINT8 ef_bg; // the cu_* variables above UINT8 ef_re; // to speed up operation // // save cursor, rendition & states ------------ - // + // // cursor location int sa_cuX; int sa_cuY; // rendition info diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp index 9f34d2c..836a05b 100644 --- a/noncore/apps/opie-console/emulation_handler.cpp +++ b/noncore/apps/opie-console/emulation_handler.cpp @@ -102,16 +102,25 @@ QColor EmulationHandler::foreColor(int col) { qWarning("Foreground black"); /* color is black */ co = Qt::white; break; case Profile::Black: qWarning("Foreground white"); co = Qt::black; break; + case Profile::Green: + qWarning("Foreground green"); + co = Qt::green; + break; + case Profile::Orange: + qWarning("Foreground orange"); + // FIXME needs better color here + co = Qt::darkYellow; + break; } return co; } QColor EmulationHandler::backColor(int col ) { QColor co; /* we need to switch it */ switch( col ) { @@ -120,12 +129,20 @@ QColor EmulationHandler::backColor(int col ) { qWarning("Background white"); /* color is white */ co = Qt::black; break; case Profile::Black: qWarning("Background black"); co = Qt::white; break; + case Profile::Green: + qWarning("Background black"); + co = Qt::black; + break; + case Profile::Orange: + qWarning("Background black"); + co = Qt::black; + break; } return co; } diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index 6dc9e6e..b770551 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp @@ -309,25 +309,30 @@ void MainWindow::slotRunScript() { } } */ } void MainWindow::slotConnect() { if ( currentSession() ) { bool ret = currentSession()->layer()->open(); - if(!ret) QMessageBox::warning(currentSession()->widgetStack(), - QObject::tr("Failed"), - QObject::tr("Connecting failed for this session.")); - } + if(!ret) QMessageBox::warning(currentSession()->widgetStack(), + QObject::tr("Failed"), + QObject::tr("Connecting failed for this session.")); + m_connect->setEnabled( false ); + m_disconnect->setEnabled( true ); + } } void MainWindow::slotDisconnect() { - if ( currentSession() ) + if ( currentSession() ) { currentSession()->layer()->close(); + m_connect->setEnabled( true ); + m_disconnect->setEnabled( false ); + } } void MainWindow::slotTerminate() { if ( currentSession() ) currentSession()->layer()->close(); slotClose(); /* FIXME move to the next session */ @@ -400,46 +405,54 @@ void MainWindow::create( const Profile& prof ) { } m_sessions.append( ses ); tabWidget()->add( ses ); m_curSession = ses; // dicide if its a local term ( then no connction and no tranfer), maybe make a wrapper method out of it m_connect->setEnabled( true ); - m_disconnect->setEnabled( true ); + m_disconnect->setEnabled( false ); m_terminate->setEnabled( true ); m_transfer->setEnabled( true ); m_recordScript->setEnabled( true ); m_saveScript->setEnabled( true ); m_runScript->setEnabled( true ); m_fullscreen->setEnabled( true ); m_closewindow->setEnabled( true ); } void MainWindow::slotTransfer() { - // if ( currentSession() ) { + if ( currentSession() ) { TransferDialog dlg(this); dlg.showMaximized(); dlg.exec(); - // } + } } void MainWindow::slotOpenKeb(bool state) { if (state) m_keyBar->show(); else m_keyBar->hide(); } void MainWindow::slotSessionChanged( Session* ses ) { if ( ses ) { qWarning("changing %s", ses->name().latin1() ); m_curSession = ses; + + if ( m_curSession->isConnected() ) { + m_connect->setEnabled( false ); + m_disconnect->setEnabled( true ); + } else { + m_connect->setEnabled( true ); + m_disconnect->setEnabled( false ); + } } } void MainWindow::slotFullscreen() { if ( m_isFullscreen ) { ( m_curSession->widgetStack() )->reparent( m_consoleWindow, 0, QPoint(0,0), false ); ( m_curSession->widgetStack() )->setFrameStyle( QFrame::Panel | QFrame::Sunken ); @@ -450,17 +463,17 @@ void MainWindow::slotFullscreen() { } else { ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame ); ( m_curSession->widgetStack() )->reparent( 0,WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop, QPoint(0,0), false); ( m_curSession->widgetStack() )->resize(qApp->desktop()->width(), qApp->desktop()->height()); ( m_curSession->widgetStack() )->setFocus(); ( m_curSession->widgetStack() )->show(); - // QPushButton *cornerButton = new QPushButton( this ); + //QPushButton *cornerButton = new QPushButton( ); //cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); //connect( cornerButton, SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); // need teh scrollbar // ( m_curSession->widgetStack() )->setCornerWidget( cornerButton ); m_fullscreen->setText( tr("Stop full screen") ); } m_isFullscreen = !m_isFullscreen; diff --git a/noncore/apps/opie-console/profile.h b/noncore/apps/opie-console/profile.h index 1b71cda..64eb022 100644 --- a/noncore/apps/opie-console/profile.h +++ b/noncore/apps/opie-console/profile.h @@ -12,17 +12,19 @@ * We can generate a Session from a Profile * Configuration is contained here too */ class Profile { public: typedef QValueList<Profile> ValueList; enum Color { Black = 0, White, - Gray }; + Gray, + Green, + Orange}; enum Terminal {VT102 = 0, VT100 }; enum Font { Micro = 0, Small, Medium }; Profile(); Profile( const QString& name, const QCString& iolayerName, const QCString& termName, int background, int foreground, diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index f4fbcf2..d0ace6c 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp @@ -40,36 +40,42 @@ EmulationHandler* Session::emulationHandler() { WidgetLayer* Session::emulationWidget() { return m_widLay; } */ void Session::connect() { if ( !m_layer || !m_emu ) return; + m_connected = true; + qWarning("connection in session"); QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), m_emu, SLOT(recv(const QByteArray&) ) ); QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), m_layer, SLOT(send(const QByteArray&) ) ); - } + void Session::disconnect() { if ( !m_layer || !m_emu ) return; + m_connected = false; + QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), m_emu, SLOT(recv(const QByteArray&) ) ); QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), m_layer, SLOT(send(const QByteArray&) ) ); } + void Session::setName( const QString& na){ m_name = na; } + void Session::setWidgetStack( QWidgetStack* wid ) { delete m_emu; m_emu = 0l; delete m_widget; /* the EmulationLayer was destroyed... */ m_widget = wid; } @@ -83,8 +89,12 @@ void Session::setEmulationHandler( EmulationHandler* lay ) { m_emu = lay; } /* void Session::setEmulationWidget( WidgetLayer* lay ) { delete m_widLay; m_widLay = lay; } */ + +bool Session::isConnected() { + return m_connected; +} diff --git a/noncore/apps/opie-console/session.h b/noncore/apps/opie-console/session.h index c3f3661..a1121d3 100644 --- a/noncore/apps/opie-console/session.h +++ b/noncore/apps/opie-console/session.h @@ -54,17 +54,20 @@ public: */ void disconnect(); void setWidgetStack( QWidgetStack* widget ); void setEmulationHandler( EmulationHandler* lay ); void setIOLayer( IOLayer* ); void setName( const QString& ); + bool isConnected(); + private: QString m_name; QWidgetStack* m_widget; IOLayer* m_layer; EmulationHandler* m_emu; + bool m_connected; }; #endif diff --git a/noncore/apps/opie-console/terminalwidget.cpp b/noncore/apps/opie-console/terminalwidget.cpp index 2d37be2..8badf96 100644 --- a/noncore/apps/opie-console/terminalwidget.cpp +++ b/noncore/apps/opie-console/terminalwidget.cpp @@ -14,17 +14,19 @@ namespace { enum TermIds { id_term_vt100, id_term_vt102, id_term_ansi }; enum ColourIds { id_term_black, - id_term_white + id_term_white, + id_term_green, + id_term_orange }; enum FontIds { id_size_small, id_size_medium, id_size_large }; }; @@ -73,16 +75,18 @@ TerminalWidget::TerminalWidget( const QString& name, QWidget* parent, // Fill in some options m_terminalBox->insertItem( tr("VT 100"), id_term_vt100 ); m_terminalBox->insertItem( tr("VT 102"), id_term_vt102 ); //m_terminalBox->insertItem( tr("ANSI"), id_term_ansi ); m_colorCmb->insertItem( tr("black on white"), id_term_black ); m_colorCmb->insertItem( tr("white on black"), id_term_white ); + m_colorCmb->insertItem( tr("green on black"), id_term_green ); + m_colorCmb->insertItem( tr("orange on black"), id_term_orange ); // signals + slots /* connect(m_terminalBox, SIGNAL(activated(int) ), this, SLOT(slotTermTerm(int) ) ); connect(m_colorBox, SIGNAL(activated(int) ), tis, SLOT(slotTermColor(int) ) ); connect(m_groupSize, SIGNAL(activated(int) ), @@ -122,16 +126,22 @@ void TerminalWidget::load( const Profile& prof ) { switch( color ) { case Profile::Black: m_colorCmb->setCurrentItem(id_term_black ); break; case Profile::White: m_colorCmb->setCurrentItem(id_term_white ); break; + case Profile::Green: + m_colorCmb->setCurrentItem(id_term_green ); + break; + case Profile::Orange: + m_colorCmb->setCurrentItem(id_term_orange ); + break; default: break; }; switch( fontsize ) { case Profile::Micro: m_sizeSmall->setChecked(true ); break; @@ -170,16 +180,22 @@ void TerminalWidget::save( Profile& profile ) { // color switch(m_colorCmb->currentItem() ) { case id_term_black: profile.writeEntry("Color", Profile::Black ); break; case id_term_white: profile.writeEntry("Color", Profile::White ); break; + case id_term_green: + profile.writeEntry("Color", Profile::Green ); + break; + case id_term_orange: + profile.writeEntry("Color", Profile::Orange ); + break; default: break; }; if (m_sizeSmall->isChecked() ) { profile.writeEntry("Font", Profile::Micro ); }else if (m_sizeMedium->isChecked() ) { profile.writeEntry("Font", Profile::Small ); |