From 94cec968a8bdb4c51fe68c814b1d864fe887e65e Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Thu, 21 Dec 2023 17:32:43 +0200 Subject: [PATCH] Kxkb: move LayoutUnit struct into its own file and add getLayoutName function Signed-off-by: Mavridis Philippe (cherry picked from commit 9647d4c7ff182c1fadffb9c6218bc00132fe682e) --- kxkb/kxkb.cpp | 1 - kxkb/kxkbconfig.h | 55 ++--------------------------------- kxkb/kxkbtraywindow.cpp | 14 +++++---- kxkb/layoutunit.h | 64 +++++++++++++++++++++++++++++++++++++++++ kxkb/rules.cpp | 7 +++++ kxkb/rules.h | 3 ++ 6 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 kxkb/layoutunit.h diff --git a/kxkb/kxkb.cpp b/kxkb/kxkb.cpp index 8d725e3e5..1ecbd2470 100644 --- a/kxkb/kxkb.cpp +++ b/kxkb/kxkb.cpp @@ -248,7 +248,6 @@ void KXKBApp::prevLayout() setLayout(layout); } - void KXKBApp::menuActivated(int id) { if( KxkbLabelController::START_MENU_ID <= id diff --git a/kxkb/kxkbconfig.h b/kxkb/kxkbconfig.h index 140a2b763..4ec3634be 100644 --- a/kxkb/kxkbconfig.h +++ b/kxkb/kxkbconfig.h @@ -19,6 +19,8 @@ #include #include +#include "layoutunit.h" + struct XkbOptions { TQString layouts; TQString variants; @@ -36,59 +38,6 @@ enum SwitchingPolicy { SWITCH_POLICY_COUNT = 3 }; - - -inline TQString createPair(TQString key, TQString value) -{ - if( value.isEmpty() ) - return key; - return TQString("%1(%2)").arg(key, value); -} - -struct LayoutUnit { - TQString layout; - TQString variant; - TQString displayName; - - LayoutUnit() {} - - LayoutUnit(TQString layout_, TQString variant_): - layout(layout_), - variant(variant_) - {} - - LayoutUnit(TQString pair) { - setFromPair( pair ); - } - - void setFromPair(const TQString& pair) { - layout = parseLayout(pair); - variant = parseVariant(pair); - } - - TQString toPair() const { - return createPair(layout, variant); - } - - bool operator<(const LayoutUnit& lu) const { - return layout& layouts, const TQString layoutName = (*it).layout; const TQString variantName = (*it).variant; - const TQPixmap& layoutPixmap = LayoutIcon::getInstance().findPixmap(layoutName, PIXMAP_STYLE_CONTEXTMENU, (*it).displayName); - const TQPixmap pix = iconeffect.apply(layoutPixmap, TDEIcon::Small, TDEIcon::DefaultState); + const TQPixmap& layoutPixmap = LayoutIcon::getInstance().findPixmap( + (*it).layout, PIXMAP_STYLE_CONTEXTMENU, (*it).displayName); + const TQPixmap pix = iconeffect.apply(layoutPixmap, TDEIcon::Small, + TDEIcon::DefaultState); + + TQString fullName = rules.getLayoutName((*it)); + contextMenu->insertItem(pix, fullName, START_MENU_ID + cnt, + m_menuStartIndex + cnt); - TQString fullName = i18n((rules.layouts()[layoutName])); - if( variantName.isEmpty() == false ) - fullName += " (" + variantName + ")"; - contextMenu->insertItem(pix, fullName, START_MENU_ID + cnt, m_menuStartIndex + cnt); m_descriptionMap.insert((*it).toPair(), fullName); cnt++; diff --git a/kxkb/layoutunit.h b/kxkb/layoutunit.h new file mode 100644 index 000000000..f4d82f73f --- /dev/null +++ b/kxkb/layoutunit.h @@ -0,0 +1,64 @@ +// +// +// Author: Andriy Rysin , (C) 2006 +// +// Copyright: See COPYING file that comes with this distribution +// +// + +#ifndef _LAYOUTUNIT_H +#define _LAYOUTUNIT_H + +#include + +inline TQString createPair(TQString key, TQString value) +{ + if (value.isEmpty()) return key; + return TQString("%1(%2)").arg(key, value); +} + +struct LayoutUnit { + TQString layout; + TQString variant; + TQString displayName; + + LayoutUnit() {} + + LayoutUnit(TQString layout_, TQString variant_): + layout(layout_), + variant(variant_) + {} + + LayoutUnit(TQString pair) { + setFromPair( pair ); + } + + void setFromPair(const TQString& pair) { + layout = parseLayout(pair); + variant = parseVariant(pair); + } + + TQString toPair() const { + return createPair(layout, variant); + } + + bool operator<(const LayoutUnit& lu) const { + return layout #include +#include "layoutunit.h" class XkbRules { @@ -18,6 +19,8 @@ public: TQStringList getAvailableVariants(const TQString& layout); + TQString getLayoutName(LayoutUnit layout) const; + protected: void loadRules(TQString filename, bool layoutsOnly=false);