summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbell <riley.bell@vfemail.net>2025-06-02 21:10:02 -0700
committerrbell <riley.bell@vfemail.net>2025-06-13 00:15:37 -0700
commite7e77dcbc35e11833305168cad5b4d1d45ed7728 (patch)
tree37621a421c3818183176134db41b27152a8e48de
parent0a439ac80bdf6ffb9cac104ad3098a321ee0403c (diff)
downloadtdebase-issue/600.tar.gz
tdebase-issue/600.zip
Konsole: Add close tab icon buttonissue/600
Signed-off-by: rbell <riley.bell@vfemail.net>
-rw-r--r--kcontrol/konsole/kcmkonsole.cpp3
-rw-r--r--kcontrol/konsole/kcmkonsoledialog.ui28
-rw-r--r--konsole/konsole/konsole.cpp12
-rw-r--r--konsole/konsole/konsole.h2
4 files changed, 34 insertions, 11 deletions
diff --git a/kcontrol/konsole/kcmkonsole.cpp b/kcontrol/konsole/kcmkonsole.cpp
index 28cec6825..9f841f608 100644
--- a/kcontrol/konsole/kcmkonsole.cpp
+++ b/kcontrol/konsole/kcmkonsole.cpp
@@ -72,6 +72,7 @@ KCMKonsole::KCMKonsole(TQWidget * parent, const char *name, const TQStringList&)
connect(dialog->line_spacingSB,TQ_SIGNAL(valueChanged(int)), TQ_SLOT( changed() ));
connect(dialog->matchTabWinTitleCB,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
connect(dialog->tabsCycleWheelCB,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
+ connect(dialog->showCloseTabButtonWithHover,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
connect(dialog->menuAcceleratorsCB,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
connect(dialog->metaAsAltModeCB,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
connect(dialog->realTransparency,TQ_SIGNAL(toggled(bool)), TQ_SLOT( changed() ));
@@ -100,6 +101,7 @@ void KCMKonsole::load(bool useDefaults)
dialog->bidiCB->setChecked(bidiOrig);
dialog->matchTabWinTitleCB->setChecked(config.readBoolEntry("MatchTabWinTitle",false));
dialog->tabsCycleWheelCB->setChecked(config.readBoolEntry("TabsCycleWheel",true));
+ dialog->showCloseTabButtonWithHover->setChecked(config.readBoolEntry("ShowCloseTabButtonWithHover",false));
dialog->menuAcceleratorsCB->setChecked(config.readBoolEntry("MenuAccelerators",false));
dialog->warnCB->setChecked(config.readBoolEntry("WarnQuit",true));
dialog->ctrldragCB->setChecked(config.readBoolEntry("CtrlDrag",true));
@@ -143,6 +145,7 @@ void KCMKonsole::save()
config.writeEntry("EnableBidi", bidiNew);
config.writeEntry("MatchTabWinTitle", dialog->matchTabWinTitleCB->isChecked());
config.writeEntry("TabsCycleWheel", dialog->tabsCycleWheelCB->isChecked());
+ config.writeEntry("ShowCloseTabButtonWithHover", dialog->showCloseTabButtonWithHover->isChecked());
config.writeEntry("MenuAccelerators", dialog->menuAcceleratorsCB->isChecked());
config.writeEntry("WarnQuit", dialog->warnCB->isChecked());
config.writeEntry("CtrlDrag", dialog->ctrldragCB->isChecked());
diff --git a/kcontrol/konsole/kcmkonsoledialog.ui b/kcontrol/konsole/kcmkonsoledialog.ui
index a94a1b48b..b4fdef527 100644
--- a/kcontrol/konsole/kcmkonsoledialog.ui
+++ b/kcontrol/konsole/kcmkonsoledialog.ui
@@ -160,13 +160,21 @@
</widget>
<widget class="TQCheckBox" row="11" column="0" rowspan="1" colspan="3">
<property name="name">
+ <cstring>showCloseTabButtonWithHover</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Show close button instead of shell icon with hover</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="12" column="0" rowspan="1" colspan="3">
+ <property name="name">
<cstring>menuAcceleratorsCB</cstring>
</property>
<property name="text">
<string>Enable main &amp;menu accelerator keys</string>
</property>
</widget>
- <widget class="TQCheckBox" row="12" column="0" rowspan="1" colspan="3">
+ <widget class="TQCheckBox" row="13" column="0" rowspan="1" colspan="3">
<property name="name">
<cstring>metaAsAltModeCB</cstring>
</property>
@@ -174,7 +182,7 @@
<string>Handle Meta &amp;key as Alt Key</string>
</property>
</widget>
- <widget class="TQCheckBox" row="13" column="0" rowspan="1" colspan="3">
+ <widget class="TQCheckBox" row="14" column="0" rowspan="1" colspan="3">
<property name="name">
<cstring>realTransparency</cstring>
</property>
@@ -182,7 +190,7 @@
<string>Use &amp;real transparency</string>
</property>
</widget>
- <widget class="TQLabel" row="14" column="0" rowspan="1" colspan="2">
+ <widget class="TQLabel" row="15" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>TextLabel1_4</cstring>
</property>
@@ -201,7 +209,7 @@
<cstring>line_spacingSB</cstring>
</property>
</widget>
- <spacer row="13" column="3">
+ <spacer row="14" column="3">
<property name="name">
<cstring>Spacer3</cstring>
</property>
@@ -218,7 +226,7 @@
</size>
</property>
</spacer>
- <widget class="KIntNumInput" row="14" column="2">
+ <widget class="KIntNumInput" row="15" column="2">
<property name="name">
<cstring>line_spacingSB</cstring>
</property>
@@ -237,7 +245,7 @@
<number>8</number>
</property>
</widget>
- <spacer row="12" column="3">
+ <spacer row="13" column="3">
<property name="name">
<cstring>Spacer2</cstring>
</property>
@@ -254,7 +262,7 @@
</size>
</property>
</spacer>
- <widget class="TQLabel" row="15" column="0" rowspan="1" colspan="2">
+ <widget class="TQLabel" row="16" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>SilenceLabel</cstring>
</property>
@@ -273,7 +281,7 @@
<cstring>silence_secondsSB</cstring>
</property>
</widget>
- <widget class="KIntNumInput" row="15" column="2">
+ <widget class="KIntNumInput" row="16" column="2">
<property name="name">
<cstring>silence_secondsSB</cstring>
</property>
@@ -292,7 +300,7 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="TQLabel" row="16" column="0" colspan="3">
+ <widget class="TQLabel" row="17" column="0" colspan="3">
<property name="name">
<cstring>TextLabel1_3</cstring>
</property>
@@ -303,7 +311,7 @@
<cstring>word_connectorLE</cstring>
</property>
</widget>
- <widget class="TQLineEdit" row="17" column="0" colspan="3">
+ <widget class="TQLineEdit" row="18" column="0" colspan="3">
<property name="name">
<cstring>word_connectorLE</cstring>
</property>
diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp
index b28256e55..099802ad4 100644
--- a/konsole/konsole/konsole.cpp
+++ b/konsole/konsole/konsole.cpp
@@ -280,6 +280,7 @@ Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bo
,b_sessionShortcutsEnabled(false)
,b_sessionShortcutsMapped(false)
,b_matchTabWinTitle(false)
+,b_showTabCloseIconHover(false)
,m_histSize(DEFAULT_HISTORY_SIZE)
,m_separator_id(-1)
,m_newSessionButton(0)
@@ -944,6 +945,7 @@ void Konsole::makeTabWidget()
tabwidget->setAutomaticResizeTabs(b_autoResizeTabs);
tabwidget->setTabCloseActivatePrevious(true);
tabwidget->setMouseWheelScroll(b_mouseWheelScroll);
+ tabwidget->setHoverCloseButton(b_showTabCloseIconHover);
if (n_tabbar==TabTop)
tabwidget->setTabPosition(TQTabWidget::Top);
@@ -959,6 +961,8 @@ void Konsole::makeTabWidget()
TQ_SLOT(slotTabContextMenu(TQWidget*, const TQPoint &)));
connect(tabwidget, TQ_SIGNAL(contextMenu(const TQPoint &)),
TQ_SLOT(slotTabbarContextMenu(const TQPoint &)));
+ connect(tabwidget, TQ_SIGNAL(closeRequest( TQWidget * )),
+ TQ_SLOT(slotTabCloseSession( TQWidget * )));
if (tdeApp->authorize("shell_access")) {
connect(tabwidget, TQ_SIGNAL(mouseDoubleClick()), TQ_SLOT(newSession()));
@@ -979,7 +983,6 @@ void Konsole::makeTabWidget()
m_removeSessionButton->setEnabled(false);
connect(m_removeSessionButton, TQ_SIGNAL(clicked()), TQ_SLOT(confirmCloseCurrentSession()));
tabwidget->setCornerWidget( m_removeSessionButton, BottomRight );
-
}
}
@@ -1413,6 +1416,11 @@ void Konsole::slotTabCloseSession()
confirmCloseCurrentSession(m_contextMenuSession);
}
+void Konsole::slotTabCloseSession(TQWidget * w)
+{
+ confirmCloseCurrentSession(sessions.at( tabwidget->indexOf( w ) ));
+}
+
void Konsole::slotTabbarContextMenu(const TQPoint & pos)
{
if (!m_menuCreated)
@@ -1655,6 +1663,7 @@ void Konsole::readProperties(TDEConfig* config, const TQString &schema, bool glo
b_xonXoff = config->readBoolEntry("XonXoff",false);
b_matchTabWinTitle = config->readBoolEntry("MatchTabWinTitle",false);
b_mouseWheelScroll = config->readBoolEntry("TabsCycleWheel",true);
+ b_showTabCloseIconHover = config->readBoolEntry("ShowCloseTabButtonWithHover",false);
b_menuAccelerators = config->readBoolEntry("MenuAccelerators",false);
config->setGroup("UTMP");
b_addToUtmp = config->readBoolEntry("AddToUtmp",true);
@@ -1760,6 +1769,7 @@ void Konsole::applySettingsToGUI()
updateRMBMenu();
}
updateKeytabMenu();
+ tabwidget->setHoverCloseButton( b_showTabCloseIconHover );
tabwidget->setAutomaticResizeTabs( b_autoResizeTabs );
}
diff --git a/konsole/konsole/konsole.h b/konsole/konsole/konsole.h
index b5e1f926b..d1ff5ac31 100644
--- a/konsole/konsole/konsole.h
+++ b/konsole/konsole/konsole.h
@@ -247,6 +247,7 @@ private slots:
void slotTabSelectColor();
void slotTabResetColor();
void slotTabCloseSession();
+ void slotTabCloseSession(TQWidget*);
void slotTabToggleMonitor();
void slotTabToggleMasterMode();
void slotTabbarContextMenu(const TQPoint &);
@@ -448,6 +449,7 @@ private:
bool b_matchTabWinTitle:1;
bool b_mouseWheelScroll:1;
bool b_menuAccelerators:1;
+ bool b_showTabCloseIconHover:1;
unsigned int m_histSize;
int m_separator_id;