diff options
author | Mavridis Philippe <mavridisf@gmail.com> | 2021-09-30 19:34:50 +0300 |
---|---|---|
committer | Mavridis Philippe <mavridisf@gmail.com> | 2021-10-01 10:34:29 +0300 |
commit | 2557c13094ebabc5916ac166fd842cb0f5897250 (patch) | |
tree | d0ef2af347471386e810f1f6b446819fbad0b7c4 /kicker | |
parent | 9a444a3310e17fae54f0425bc83eb91efcea8706 (diff) | |
download | tdebase-2557c13094ebabc5916ac166fd842cb0f5897250.tar.gz tdebase-2557c13094ebabc5916ac166fd842cb0f5897250.zip |
TDE Menu: Customizable search line shortcut
This resolves issue #176.
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
Diffstat (limited to 'kicker')
-rw-r--r-- | kicker/kicker/ui/k_mnu.cpp | 33 | ||||
-rw-r--r-- | kicker/kicker/ui/k_mnu.h | 1 | ||||
-rw-r--r-- | kicker/libkicker/kickerSettings.kcfg | 5 |
3 files changed, 32 insertions, 7 deletions
diff --git a/kicker/kicker/ui/k_mnu.cpp b/kicker/kicker/ui/k_mnu.cpp index 4362e91f1..a4a1f6d58 100644 --- a/kicker/kicker/ui/k_mnu.cpp +++ b/kicker/kicker/ui/k_mnu.cpp @@ -52,6 +52,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <tdetoolbarbutton.h> #include <twin.h> #include <popupmenutop.h> +#include <tdeaccel.h> #include "client_mnu.h" #include "container_base.h" @@ -245,6 +246,8 @@ void PanelKMenu::initialize() return; } + TDEAccel *accel = new TDEAccel(this); + if (loadSidePixmap()) { // in case we've been through here before, let's disconnect @@ -265,7 +268,16 @@ void PanelKMenu::initialize() if (KickerSettings::useSearchBar()) { TQHBox* hbox = new TQHBox( this ); TDEToolBarButton *clearButton = new TDEToolBarButton( "locationbar_erase", 0, hbox ); - searchEdit = new KPIM::ClickLineEdit(hbox, " "+i18n("Press '/' to search...")); + + 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]) + ) + ); + hbox->setFocusPolicy(TQ_StrongFocus); hbox->setFocusProxy(searchEdit); hbox->setSpacing( 3 ); @@ -273,6 +285,10 @@ void PanelKMenu::initialize() connect(this, TQT_SIGNAL(aboutToHide()), this, TQT_SLOT(slotClearSearch())); connect(searchEdit, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT( slotUpdateSearch( const TQString&))); + accel->insert("search", i18n("Search"), i18n("TDE Menu search"), + TDEShortcut(KickerSettings::searchShortcut()), + this, TQT_SLOT(slotFocusSearch())); + insertItem(hbox, searchLineID, 0); } else { searchEdit = NULL; @@ -709,6 +725,13 @@ void PanelKMenu::slotClearSearch() } } +void PanelKMenu::slotFocusSearch() +{ + if (indexOf(searchLineID) >=0 ) { + setActiveItem(indexOf(searchLineID)); + } +} + void PanelKMenu::keyPressEvent(TQKeyEvent* e) { // We move the focus to the search field if the @@ -719,12 +742,8 @@ void PanelKMenu::keyPressEvent(TQKeyEvent* e) // we follow konqueror. if (!searchEdit) return KPanelMenu::keyPressEvent(e); - if (e->key() == TQt::Key_Slash && !searchEdit->hasFocus()) { - if (indexOf(searchLineID) >=0 ) { - setActiveItem(indexOf(searchLineID)); - } - } - else if (e->key() == TQt::Key_Escape && searchEdit->text().isEmpty() == false) { + + if (e->key() == TQt::Key_Escape && searchEdit->text().isEmpty() == false) { searchEdit->clear(); } else if (e->key() == TQt::Key_Delete && !searchEdit->hasFocus() && diff --git a/kicker/kicker/ui/k_mnu.h b/kicker/kicker/ui/k_mnu.h index 7c76f55ed..cf5a1917b 100644 --- a/kicker/kicker/ui/k_mnu.h +++ b/kicker/kicker/ui/k_mnu.h @@ -83,6 +83,7 @@ protected slots: void slotEditUserContact(); void slotUpdateSearch(const TQString &searchtext); void slotClearSearch(); + void slotFocusSearch(); void paletteChanged(); virtual void configChanged(); void updateRecent(); diff --git a/kicker/libkicker/kickerSettings.kcfg b/kicker/libkicker/kickerSettings.kcfg index 5ab6880aa..dfdf501e4 100644 --- a/kicker/libkicker/kickerSettings.kcfg +++ b/kicker/libkicker/kickerSettings.kcfg @@ -419,6 +419,11 @@ <default code="true">QString("kmenu")</default> </entry> + <entry name="SearchShortcut" type="String" > + <label>Search shortcut</label> + <default>/</default> + </entry> + </group> <group name="buttons" > |