# HG changeset patch # User Jacob Dawid # Date 1302172335 -7200 # Node ID 67ffdb3264a625ac0058ce0a26743bec94c5d9be # Parent 28160d541ddbab64e14795f62450dc240c536345 Refactored code in QTerminalWidget. diff -r 28160d541ddb -r 67ffdb3264a6 gui//QTerminalWidget.cpp --- a/gui//QTerminalWidget.cpp Thu Apr 07 12:17:53 2011 +0200 +++ b/gui//QTerminalWidget.cpp Thu Apr 07 12:32:15 2011 +0200 @@ -23,18 +23,12 @@ using namespace Konsole; -void *createTermWidget(int startnow, void *parent) -{ - return (void*) new QTerminalWidget(startnow, (QWidget*)parent); -} - struct TermWidgetImpl { TermWidgetImpl(QWidget* parent = 0); TerminalDisplay *m_terminalDisplay; Session *m_session; - Session* createSession(); TerminalDisplay* createTerminalDisplay(Session *session, QWidget* parent); }; @@ -45,50 +39,38 @@ this->m_terminalDisplay = createTerminalDisplay(this->m_session, parent); } - Session *TermWidgetImpl::createSession() { Session *session = new Session(); - - session->setTitle(Session::NameRole, "QTermWidget"); + session->setTitle(Session::NameRole, "QTerminalWidget"); session->setProgram("/bin/bash"); - QStringList args(""); - session->setArguments(args); + session->setArguments(QStringList()); session->setAutoClose(true); - session->setCodec(QTextCodec::codecForName("UTF-8")); - session->setFlowControlEnabled(true); session->setHistoryType(HistoryTypeBuffer(1000)); - session->setDarkBackground(true); - session->setKeyBindings(""); return session; } TerminalDisplay *TermWidgetImpl::createTerminalDisplay(Session *session, QWidget* parent) { -// TerminalDisplay* display = new TerminalDisplay(this); TerminalDisplay* display = new TerminalDisplay(parent); - display->setBellMode(TerminalDisplay::NotifyBell); display->setTerminalSizeHint(true); display->setTripleClickMode(TerminalDisplay::SelectWholeLine); display->setTerminalSizeStartup(true); - display->setRandomSeed(session->sessionId() * 31); - return display; } - QTerminalWidget::QTerminalWidget(int startnow, QWidget *parent) -:QWidget(parent) + :QWidget(parent) { m_impl = new TermWidgetImpl(this); - init(); + initialize(); if (startnow && m_impl->m_session) { m_impl->m_session->run(); @@ -108,7 +90,7 @@ m_impl->m_session->run(); } -void QTerminalWidget::init() +void QTerminalWidget::initialize() { m_impl->m_terminalDisplay->setSize(80, 40); @@ -124,13 +106,11 @@ connect(m_impl->m_session, SIGNAL(finished()), this, SLOT(sessionFinished())); } - QTerminalWidget::~QTerminalWidget() { emit destroyed(); } - void QTerminalWidget::setTerminalFont(QFont &font) { if (!m_impl->m_terminalDisplay) @@ -159,20 +139,18 @@ m_impl->m_session->setCodec(codec); } -void QTerminalWidget::setColorScheme(int scheme) +void QTerminalWidget::setColorScheme(ColorScheme scheme) { switch(scheme) { - case COLOR_SCHEME_WHITE_ON_BLACK: + case WhiteOnBlack: m_impl->m_terminalDisplay->setColorTable(whiteonblack_color_table); break; - case COLOR_SCHEME_GREEN_ON_BLACK: + case GreenOnBlack: m_impl->m_terminalDisplay->setColorTable(greenonblack_color_table); break; - case COLOR_SCHEME_BLACK_ON_LIGHT_YELLOW: + case BlackOnLightYellow: m_impl->m_terminalDisplay->setColorTable(blackonlightyellow_color_table); break; - default: //do nothing - break; }; } @@ -205,7 +183,6 @@ void QTerminalWidget::resizeEvent(QResizeEvent*) { -//qDebug("global window resizing...with %d %d", this->size().width(), this->size().height()); m_impl->m_terminalDisplay->resize(this->size()); } @@ -216,6 +193,4 @@ emit finished(); } - -//#include "moc_consoleq.cpp" diff -r 28160d541ddb -r 67ffdb3264a6 gui//QTerminalWidget.h --- a/gui//QTerminalWidget.h Thu Apr 07 12:17:53 2011 +0200 +++ b/gui//QTerminalWidget.h Thu Apr 07 12:32:15 2011 +0200 @@ -17,42 +17,33 @@ */ -#ifndef _Q_TERM_WIDGET -#define _Q_TERM_WIDGET +#ifndef QTERMINALWIDGET_H +#define QTERMINALWIDGET_H #include struct TermWidgetImpl; - -enum COLOR_SCHEME { COLOR_SCHEME_WHITE_ON_BLACK = 1, - COLOR_SCHEME_GREEN_ON_BLACK, - COLOR_SCHEME_BLACK_ON_LIGHT_YELLOW }; - class QTerminalWidget : public QWidget { Q_OBJECT public: - - enum ScrollBarPosition - { - /** Do not show the scroll bar. */ - NoScrollBar=0, - /** Show the scroll bar on the left side of the display. */ - ScrollBarLeft=1, - /** Show the scroll bar on the right side of the display. */ - ScrollBarRight=2 + enum ColorScheme { + WhiteOnBlack, + GreenOnBlack, + BlackOnLightYellow }; + enum ScrollBarPosition + { + NoScrollBar, + ScrollBarLeft, + ScrollBarRight + }; - //Creation of widget - QTerminalWidget(int startnow = 1, //start shell programm immediatelly - QWidget *parent = 0); + QTerminalWidget(int startnow = 1, QWidget *parent = 0); ~QTerminalWidget(); - //start shell program if it was not started in constructor void startShellProgram(); - - //look-n-feel, if you don`t like defaults // Terminal font // Default is application font with family Monospace, size 10 @@ -68,7 +59,7 @@ void setTextCodec(QTextCodec *codec); //Color scheme, default is white on black - void setColorScheme(int scheme); + void setColorScheme(ColorScheme scheme); //set size void setSize(int h, int v); @@ -92,17 +83,8 @@ void sessionFinished(); private: - void init(); + void initialize(); TermWidgetImpl *m_impl; }; - -//Maybe useful, maybe not - -#ifdef __cplusplus -extern "C" -#endif -void *createTermWidget(int startnow, void *parent); - -#endif - +#endif // QTERMINALWIDGET_H diff -r 28160d541ddb -r 67ffdb3264a6 gui//Quint Binary file gui//Quint has changed