From 44e08b26bda019c4e12cfe8a4223dcba465425d8 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 31 Mar 1999 06:57:08 +0000 Subject: [PATCH] Make Insert-to-paste a run-time rather than compile-time option. Shift-Insert does paste always. svn path=/trunk/kdebase/konsole/; revision=18936 --- include/TEWidget.h | 3 +++ include/main.h | 1 + src/TEWidget.C | 16 +++++++++++++--- src/main.C | 9 +++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/include/TEWidget.h b/include/TEWidget.h index da9f09b6..d262b610 100644 --- a/include/TEWidget.h +++ b/include/TEWidget.h @@ -39,6 +39,7 @@ public: void setScrollbarLocation(int loc); void setScroll(int cursor, int lines); + void setInsertToPaste(bool on); public: @@ -148,6 +149,8 @@ private: BOOL blinking; // hide text in paintEvent BOOL hasBlinker; // has characters to blink QTimer* blinkT; // active when hasBlinker + + bool ins_to_paste; // Insert key causes paste }; #endif // TE_WIDGET_H diff --git a/include/main.h b/include/main.h index 0a8f91b2..c50ab033 100644 --- a/include/main.h +++ b/include/main.h @@ -106,6 +106,7 @@ private: bool b_menuvis; bool b_framevis; bool b_bshack; + bool b_inspaste; int n_font; int n_scroll; QString s_schema; diff --git a/src/TEWidget.C b/src/TEWidget.C index 1fd6f456..86215e62 100644 --- a/src/TEWidget.C +++ b/src/TEWidget.C @@ -167,6 +167,7 @@ TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) font_h = 1; font_a = 1; word_selection_mode = FALSE; + ins_to_paste = FALSE; setMouseMarks(TRUE); setVTFont( QFont("fixed") ); @@ -771,11 +772,15 @@ bool TEWidget::eventFilter( QObject *, QEvent *e ) case ShiftButton|(Key_Down << 8) : scrollbar->setValue(scrollbar->value()+1); break; -#if 0 - case (Key_Insert << 8) : // Some progs use this. + case ShiftButton|(Key_Insert << 8) : emitSelection(); break; -#endif + case (Key_Insert << 8) : // Some progs use this. + if ( ins_to_paste ) { + emitSelection(); + break; + } + // FALLTHROUGH default : emit keyPressedSignal(ke); // expose break; @@ -798,6 +803,11 @@ bool TEWidget::eventFilter( QObject *, QEvent *e ) return FALSE; // standard event processing } +void TEWidget::setInsertToPaste(bool on) +{ + ins_to_paste = on; +} + /* ------------------------------------------------------------------------- */ /* */ /* Font */ diff --git a/src/main.C b/src/main.C index 2525872b..333c8ef0 100644 --- a/src/main.C +++ b/src/main.C @@ -152,6 +152,7 @@ TEDemo::TEDemo(QStrList & _args, int login_shell) : KTMainWindow(), args(_args) te->setFrameStyle( b_framevis ? QFrame::WinPanel | QFrame::Sunken : QFrame::NoFrame ); + te->setInsertToPaste( b_inspaste ); te->setScrollbarLocation(n_scroll); // construct initial session /////////////////////////////////////////////// @@ -360,6 +361,8 @@ void TEDemo::makeMenu() m_options->insertSeparator(); m_options->insertItem( i18n("BS sends &DEL"), 4 ); m_options->setItemChecked(4,b_bshack); + m_options->insertItem( i18n("&Insert pastes"), 5 ); + m_options->setItemChecked(5,b_inspaste); m_options->insertSeparator(); m_options->insertItem( i18n("&Font"), m_font); m_options->insertItem( i18n("&Size"), m_size); @@ -412,6 +415,7 @@ void TEDemo::saveProperties(KConfig* config) config->writeEntry("menubar visible",b_menuvis); config->writeEntry("has frame",b_framevis); config->writeEntry("BS hack",b_bshack); + config->writeEntry("insert paste",b_inspaste); config->writeEntry("font",n_font); config->writeEntry("schema",s_schema); config->writeEntry("scrollbar",n_scroll); @@ -430,6 +434,7 @@ void TEDemo::readProperties(KConfig* config) b_menuvis = config->readBoolEntry("menubar visible",TRUE); b_framevis = config->readBoolEntry("has frame",TRUE); b_bshack = config->readBoolEntry("BS hack",TRUE); + b_inspaste = config->readBoolEntry("insert paste",FALSE); n_font = MIN(config->readUnsignedNumEntry("font",3),7); n_scroll = MIN(config->readUnsignedNumEntry("scrollbar",SCRRIGHT),2); s_schema = config->readEntry("schema",""); @@ -567,6 +572,10 @@ void TEDemo::opt_menu_activated(int item) else ((VT102Emulation*)se->getEmulation())->resetMode(MODE_BsHack); break; + case 5: b_inspaste = !b_inspaste; + m_options->setItemChecked(5,b_inspaste); + te->setInsertToPaste( b_inspaste ); + break; case 8: saveProperties(kapp->getConfig()); break; }