From f69bb8df1debfec9d20dd6069f8034263ca31049 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 20 Apr 2014 00:31:22 +0900 Subject: Added support for handling Meta key as Alt key in konsolePart. This relates to bug 1026. --- konsole/konsole/konsole.cpp | 20 ++++++++++---------- konsole/konsole/konsole_part.cpp | 23 +++++++++++++++++++---- konsole/konsole/konsole_part.h | 9 ++++++--- konsole/konsole/session.cpp | 6 ++++++ konsole/konsole/session.h | 1 + 5 files changed, 42 insertions(+), 17 deletions(-) (limited to 'konsole') diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp index a7d3d7333..26d35602e 100644 --- a/konsole/konsole/konsole.cpp +++ b/konsole/konsole/konsole.cpp @@ -2953,21 +2953,21 @@ TQString Konsole::newSession(KSimpleConfig *co, TQString program, const TQStrLis s->enableFullScripting(b_fullScripting); // If you add any new signal-slot connection below, think about doing it in konsolePart too connect( s,TQT_SIGNAL(done(TESession*)), - this,TQT_SLOT(doneSession(TESession*)) ); - connect( s, TQT_SIGNAL( updateTitle(TESession*) ), - this, TQT_SLOT( updateTitle(TESession*) ) ); - connect( s, TQT_SIGNAL( notifySessionState(TESession*, int) ), - this, TQT_SLOT( notifySessionState(TESession*, int)) ); + this,TQT_SLOT(doneSession(TESession*))); + connect( s, TQT_SIGNAL(updateTitle(TESession*)), + this, TQT_SLOT(updateTitle(TESession*))); + connect( s, TQT_SIGNAL(notifySessionState(TESession*, int)), + this, TQT_SLOT(notifySessionState(TESession*, int))); connect( s, TQT_SIGNAL(disableMasterModeConnections()), - this, TQT_SLOT(disableMasterModeConnections()) ); + this, TQT_SLOT(disableMasterModeConnections())); connect( s, TQT_SIGNAL(enableMasterModeConnections()), - this, TQT_SLOT(enableMasterModeConnections()) ); + this, TQT_SLOT(enableMasterModeConnections())); connect( s, TQT_SIGNAL(renameSession(TESession*,const TQString&)), - this, TQT_SLOT(slotRenameSession(TESession*, const TQString&)) ); + this, TQT_SLOT(slotRenameSession(TESession*, const TQString&))); connect( s->getEmulation(), TQT_SIGNAL(changeColumns(int)), this, TQT_SLOT(changeColumns(int)) ); connect( s->getEmulation(), TQT_SIGNAL(changeColLin(int,int)), - this, TQT_SLOT(changeColLin(int,int)) ); + this, TQT_SLOT(changeColLin(int,int))); connect( s->getEmulation(), TQT_SIGNAL(ImageSizeChanged(int,int)), this, TQT_SLOT(notifySize(int,int))); connect( s, TQT_SIGNAL(zmodemDetected(TESession*)), @@ -2983,7 +2983,7 @@ TQString Konsole::newSession(KSimpleConfig *co, TQString program, const TQStrLis connect( s, TQT_SIGNAL(setSessionSchema(TESession*, const TQString &)), this, TQT_SLOT(slotSetSessionSchema(TESession*, const TQString &))); connect( s, TQT_SIGNAL(changeTabTextColor(TESession*, int)), - this,TQT_SLOT(changeTabTextColor(TESession*, int)) ); + this,TQT_SLOT(changeTabTextColor(TESession*, int))); s->widget()->setVTFont(defaultFont);// Hack to set font again after newSession s->setSchemaNo(schmno); diff --git a/konsole/konsole/konsole_part.cpp b/konsole/konsole/konsole_part.cpp index f1b2f28d8..87cd2b373 100644 --- a/konsole/konsole/konsole_part.cpp +++ b/konsole/konsole/konsole_part.cpp @@ -105,6 +105,7 @@ konsolePart::konsolePart(TQWidget *_parentWidget, const char *widgetName, TQObje ,rootxpm(0) ,blinkingCursor(0) ,showFrame(0) +,metaAsAlt(0) ,m_useKonsoleSettings(0) ,selectBell(0) ,selectLineSpacing(0) @@ -431,6 +432,11 @@ void konsolePart::makeGUI() showFrame->setCheckedState(i18n("Hide Fr&ame")); showFrame->plug(m_options); + // Meta key as Alt key + metaAsAlt = new TDEToggleAction(i18n("Me&ta key as Alt key"), 0, + this, TQT_SLOT(slotToggleMetaAsAltMode()), settingsActions); + metaAsAlt->plug(m_options); + // Word Connectors TDEAction *WordSeps = new TDEAction(i18n("Wor&d Connectors..."), 0, this, TQT_SLOT(slotWordSeps()), settingsActions); @@ -505,6 +511,8 @@ void konsolePart::applySettingsToGUI() selectLineSpacing->setCurrentItem(te->lineSpacing()); if (blinkingCursor) blinkingCursor->setChecked(te->blinkingCursor()); + if (metaAsAlt) + metaAsAlt->setChecked(b_metaAsAlt); if (m_schema) m_schema->setItemChecked(curr_schema,true); if (selectSetEncoding) @@ -532,6 +540,8 @@ void konsolePart::applyProperties() se->widget()->setVTFont( defaultFont ); se->setSchemaNo( curr_schema ); slotSetEncoding(); + + se->setMetaAsAltMode(b_metaAsAlt); } void konsolePart::setSettingsMenuEnabled( bool enable ) @@ -560,13 +570,13 @@ void konsolePart::readProperties() config->setDesktopGroup(); b_framevis = config->readBoolEntry("has frame",false); + b_metaAsAlt = config->readBoolEntry("metaAsAltMode",false); b_histEnabled = config->readBoolEntry("historyenabled",true); n_bell = TQMIN(config->readUnsignedNumEntry("bellmode",TEWidget::BELLSYSTEM),3); n_keytab=config->readNumEntry("keytab",0); // act. the keytab for this session n_scroll = TQMIN(config->readUnsignedNumEntry("scrollbar",TEWidget::SCRRIGHT),2); m_histSize = config->readNumEntry("history",DEFAULT_HISTORY_SIZE); s_word_seps= config->readEntry("wordseps",":@-./_~"); - n_encoding = config->readNumEntry("encoding",0); TQFont tmpFont = TDEGlobalSettings::fixedFont(); @@ -637,6 +647,7 @@ void konsolePart::saveProperties() config->writeEntry("historyenabled", b_histEnabled); config->writeEntry("keytab",n_keytab); config->writeEntry("has frame",b_framevis); + config->writeEntry("metaAsAltMode",b_metaAsAlt); config->writeEntry("LineSpacing", te->lineSpacing()); config->writeEntry("schema",s_tdeconfigSchema); config->writeEntry("scrollbar",n_scroll); @@ -914,14 +925,18 @@ void konsolePart::slotBlinkingCursor() te->setBlinkingCursor(blinkingCursor->isChecked()); } +void konsolePart::slotToggleMetaAsAltMode() +{ + b_metaAsAlt ^= true; + if (!se) return; + se->setMetaAsAltMode(b_metaAsAlt); +} + void konsolePart::slotUseKonsoleSettings() { b_useKonsoleSettings = m_useKonsoleSettings->isChecked(); - setSettingsMenuEnabled( !b_useKonsoleSettings ); - readProperties(); - applySettingsToGUI(); } diff --git a/konsole/konsole/konsole_part.h b/konsole/konsole/konsole_part.h index 1fd2ac95f..766e4e5d5 100644 --- a/konsole/konsole/konsole_part.h +++ b/konsole/konsole/konsole_part.h @@ -118,6 +118,7 @@ signals: void slotSelectBell(); void slotSelectLineSpacing(); void slotBlinkingCursor(); + void slotToggleMetaAsAltMode(); void slotUseKonsoleSettings(); void slotWordSeps(); void slotSetEncoding(); @@ -136,9 +137,9 @@ signals: void setSchema(ColorSchema* s); void updateKeytabMenu(); - bool doOpenStream( const TQString& ); - bool doWriteStream( const TQByteArray& ); - bool doCloseStream(); + bool doOpenStream( const TQString& ); + bool doWriteStream( const TQByteArray& ); + bool doCloseStream(); TQWidget* parentWidget; TEWidget* te; @@ -151,6 +152,7 @@ signals: TDEToggleAction* blinkingCursor; TDEToggleAction* showFrame; + TDEToggleAction* metaAsAlt; TDEToggleAction* m_useKonsoleSettings; TDESelectAction* selectBell; @@ -174,6 +176,7 @@ signals: TQString s_word_seps; // characters that are considered part of a word bool b_framevis:1; + bool b_metaAsAlt:1; bool b_histEnabled:1; bool b_useKonsoleSettings:1; bool b_autoDestroy:1; diff --git a/konsole/konsole/session.cpp b/konsole/konsole/session.cpp index 8ecf469af..a6103da4f 100644 --- a/konsole/konsole/session.cpp +++ b/konsole/konsole/session.cpp @@ -464,6 +464,12 @@ void TESession::setFontNo(int fn) font_no = fn; } +void TESession::setMetaAsAltMode(bool mode) +{ + if (em) + em->setMetaKeyMode(mode); +} + void TESession::setTitle(const TQString& _title) { title = _title; diff --git a/konsole/konsole/session.h b/konsole/konsole/session.h index d15b8b5bd..bfcafdf47 100644 --- a/konsole/konsole/session.h +++ b/konsole/konsole/session.h @@ -123,6 +123,7 @@ public: void setSize(TQSize size); void setFont(const TQString &font); TQString font(); + void setMetaAsAltMode(bool mode); public slots: -- cgit v1.2.3