summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2021-10-08 11:00:07 +0300
committerMavridis Philippe <mavridisf@gmail.com>2021-10-08 13:07:53 +0300
commitd233d4e368ca6070d7a8e04560b9a2735e8d0492 (patch)
treef9b1fb78956b7933112ee5633cdc7f728dcb72fb
parent191f4274101d748882f581487a088012f03189d6 (diff)
downloadtdebase-d233d4e3.tar.gz
tdebase-d233d4e3.zip
TDEMenu search shortcut: various fixes
* Better Escape key usage prevention * Better handling of different shortcut counts (0 vs 1 vs 2) * Fixed a deprecated function call to setShortcut() Signed-off-by: Mavridis Philippe <mavridisf@gmail.com> (cherry picked from commit 10cddab2e38a26d4a2593fcb095fca8230a39486)
-rw-r--r--kcontrol/kicker/menutab_impl.cpp16
-rw-r--r--kicker/kicker/ui/k_mnu.cpp23
2 files changed, 30 insertions, 9 deletions
diff --git a/kcontrol/kicker/menutab_impl.cpp b/kcontrol/kicker/menutab_impl.cpp
index e00c51e78..fbd15cd8d 100644
--- a/kcontrol/kicker/menutab_impl.cpp
+++ b/kcontrol/kicker/menutab_impl.cpp
@@ -38,6 +38,7 @@
#include <kstandarddirs.h>
#include <tdefontrequester.h>
#include <kkeybutton.h>
+#include <tdemessagebox.h>
#include <kicondialog.h>
#include <kiconloader.h>
@@ -171,7 +172,7 @@ void MenuTab::load( bool useDefaults )
m_showFrequent->setChecked(true);
c->setGroup("KMenu");
- m_searchShortcut->setShortcut(TDEShortcut(c->readEntry("SearchShortcut", "/")));
+ m_searchShortcut->setShortcut(TDEShortcut(c->readEntry("SearchShortcut", "/")), false);
connect(m_searchShortcut, TQT_SIGNAL(capturedShortcut(const TDEShortcut&)), TQT_SIGNAL(changed()));
connect(m_searchShortcut, TQT_SIGNAL(capturedShortcut(const TDEShortcut&)), TQT_SLOT(setSearchShortcut(const TDEShortcut&)));
@@ -359,8 +360,19 @@ void MenuTab::kmenuChanged()
void MenuTab::setSearchShortcut(const TDEShortcut &cut)
{
- if( cut == TDEShortcut(TQt::Key_Escape) )
+ if( cut.contains( KKeySequence(KKey(TQt::Key_Escape)) ) )
+ {
+ int anotherTry = KMessageBox::warningYesNo(
+ this,
+ i18n("Cannot set Escape as menu search shortcut.\nWould you like to set another shortcut?"),
+ i18n("Invalid shortcut")
+ );
+
+ if( anotherTry == KMessageBox::Yes )
+ m_searchShortcut->captureShortcut();
+
return;
+ }
m_searchShortcut->setShortcut(cut, false);
}
diff --git a/kicker/kicker/ui/k_mnu.cpp b/kicker/kicker/ui/k_mnu.cpp
index a4a1f6d58..b99d6e3ba 100644
--- a/kicker/kicker/ui/k_mnu.cpp
+++ b/kicker/kicker/ui/k_mnu.cpp
@@ -270,13 +270,22 @@ void PanelKMenu::initialize()
TDEToolBarButton *clearButton = new TDEToolBarButton( "locationbar_erase", 0, hbox );
TQStringList cuts = TQStringList::split(";", KickerSettings::searchShortcut());
- searchEdit = new KPIM::ClickLineEdit(
- hbox,
- ( cuts.count() == 2
- ? i18n(" Press '%1' or '%2' to search...").arg(cuts[0], cuts[1])
- : i18n(" Press '%1' to search...").arg(cuts[0])
- )
- );
+ TQString placeholder;
+ switch( cuts.count() )
+ {
+ case 0:
+ placeholder = i18n(" Click here to search...");
+ break;
+
+ case 1:
+ placeholder = i18n(" Press '%1' to search...").arg(cuts[0]);
+ break;
+
+ case 2:
+ placeholder = i18n(" Press '%1' or '%2' to search...").arg(cuts[0], cuts[1]);
+ break;
+ }
+ searchEdit = new KPIM::ClickLineEdit( hbox, placeholder );
hbox->setFocusPolicy(TQ_StrongFocus);
hbox->setFocusProxy(searchEdit);