[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/kcontrol/kxkb
From: Andriy Rysin <arysin () gmail ! com>
Date: 2007-10-17 4:20:32
Message-ID: 1192594832.604401.18350.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 726099 by rysin:
- plasma applet (initial code)
- fix couple of crashes
- some cleanups
M +36 -33 CMakeLists.txt
M +3 -0 kcmlayout.cpp
M +1 -1 kcmmisc/CMakeLists.txt
M +1 -1 kxkb.desktop
M +20 -21 kxkb_applet.cpp
M +12 -48 kxkb_applet.h
M +9 -0 kxkbcore.cpp
M +17 -11 rules.cpp
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/CMakeLists.txt #726098:726099
@@ -13,22 +13,23 @@
macro_optional_find_package(GObject)
if(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
+ #MESSAGE("xklav:: ${LIBXKLAVIER_DEFINITIONS}")
+ #MESSAGE("xklav:: ${LIBXKLAVIER_LIBRARIES}")
+ SET(CMAKE_REQUIRED_DEFINITIONS ${LIBXKLAVIER_DEFINITIONS})
+ SET(CMAKE_REQUIRED_LIBRARIES ${LIBXKLAVIER_LIBRARIES})
-#MESSAGE("xklav:: ${LIBXKLAVIER_DEFINITIONS}")
-#MESSAGE("xklav:: ${LIBXKLAVIER_LIBRARIES}")
- SET(CMAKE_REQUIRED_DEFINITIONS ${LIBXKLAVIER_DEFINITIONS})
- SET(CMAKE_REQUIRED_LIBRARIES ${LIBXKLAVIER_LIBRARIES})
-
- SET(XKB_SUPPORT_SRC xklavier_adaptor.cpp)
- SET(XKB_SUPPORT_LIB ${LIBXKLAVIER_LIBRARIES} ${GOBJECT_LIBRARIES})
- ADD_DEFINITIONS(-DHAVE_XKLAVIER=1 ${LIBXKLAVIER_DEFINITIONS} ${_LibGLIB2Cflags})
- include_directories(${GLIB2_INCLUDE_DIR})
+ SET(XKB_SUPPORT_SRC xklavier_adaptor.cpp)
+ SET(XKB_SUPPORT_LIB ${LIBXKLAVIER_LIBRARIES} ${GOBJECT_LIBRARIES})
+ ADD_DEFINITIONS(-DHAVE_XKLAVIER=1 ${LIBXKLAVIER_DEFINITIONS} ${_LibGLIB2Cflags})
+ include_directories(${GLIB2_INCLUDE_DIR})
else(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
- MESSAGE ("Could not find glib, gobject or libxklavier >= 3.0 - old "xkbfile" code \
will be used to get keyboard layout configuration!") + MESSAGE ("Could not find \
glib, gobject or libxklavier >= 3.0 - old "xkbfile" code will be used to get keyboard \
layout configuration!") endif(LIBXKLAVIER_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND)
endif( USE_XKLAVIER STREQUAL ON )
+find_package(Plasma)
+
########### common sources ############
set(kxkb_COMMON_SRCS
@@ -53,16 +54,15 @@
kde4_add_plugin(kcm_keyboard_layout ${kcm_keyboard_layout_PART_SRCS})
-target_link_libraries(kcm_keyboard_layout
- ${KDE4_KIO_LIBS} xkbfile ${QT_QT3SUPPORT_LIBRARY}
- ${XKB_SUPPORT_LIB}
+target_link_libraries(kcm_keyboard_layout ${KDE4_KIO_LIBS}
+ xkbfile ${XKB_SUPPORT_LIB}
)
+
if(X11_XTest_FOUND)
target_link_libraries(kcm_keyboard_layout ${X11_XTest_LIB})
endif(X11_XTest_FOUND)
install(TARGETS kcm_keyboard_layout DESTINATION ${PLUGIN_INSTALL_DIR} )
-
install( FILES keyboard_layout.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
@@ -78,7 +78,8 @@
kde4_add_kdeinit_executable( kxkb ${kxkb_KDEINIT_SRCS})
-target_link_libraries(kdeinit_kxkb ${X11_X11_LIB} ${X11_Xext_LIB} ${KDE4_KDEUI_LIBS} \
xkbfile ${XKB_SUPPORT_LIB}) +target_link_libraries(kdeinit_kxkb ${X11_X11_LIB} \
${X11_Xext_LIB} ${KDE4_KDEUI_LIBS} + xkbfile ${XKB_SUPPORT_LIB})
install(TARGETS kdeinit_kxkb DESTINATION ${LIB_INSTALL_DIR} )
@@ -87,28 +88,34 @@
#install(FILES kxkb_component.h DESTINATION ${INCLUDE_INSTALL_DIR})
-########### KXKB Applet ###############
+########### KXKB Plasma Applet ###############
-if(BUILD_KICKER)
-set(kxkb_panelapplet_PART_SRCS kxkb_applet.cpp)
+if(PLASMA_FOUND)
-kde4_add_plugin(kxkb_panelapplet ${kxkb_panelapplet_PART_SRCS})
+ set(plasma_applet_kxkb_SRCS kxkb_applet.cpp ${kxkb_COMMON_SRCS}
+ kxkbcore.cpp
+ kxkbwidget.cpp
+ )
-target_link_libraries(kxkb_panelapplet kworkspace kickermain kdeinit_kxkb
- ${KDE4_KIO_LIBS} xkbfile
- ${XKB_SUPPORT_LIB}
-)
-if(X11_XTest_FOUND)
- target_link_libraries(kxkb_panelapplet ${X11_XTest_LIB})
-endif(X11_XTest_FOUND)
+ kde4_add_plugin(plasma_applet_kxkb ${plasma_applet_kxkb_SRCS})
-install(TARGETS kxkb_panelapplet DESTINATION ${PLUGIN_INSTALL_DIR} )
+ target_link_libraries(plasma_applet_kxkb ${PLASMA_LIBS}
+ ${KDE4_KDEUI_LIBS} xkbfile ${XKB_SUPPORT_LIB})
+
+ if(X11_XTest_FOUND)
+ target_link_libraries(plasma_applet_kxkb ${X11_XTest_LIB})
+ endif(X11_XTest_FOUND)
-install(FILES kxkb.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/applets)
-endif(BUILD_KICKER)
+ install(TARGETS plasma_applet_kxkb DESTINATION ${PLUGIN_INSTALL_DIR} )
+ install(FILES plasma-applet-kxkb.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+ ADD_DEPENDENCIES(plasma_applet_kxkb kdeinit_kxkb)
+endif(PLASMA_FOUND)
+
+
########### KXKB KPart ###############
+# we're not using KPart for now - it's too heavy
#
#set(kxkb_part_PART_SRCS kxkb_part.cpp)
#
@@ -126,7 +133,3 @@
#install( FILES kxkb_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
##install( FILES kxkb_part.rc DESTINATION ${DATA_INSTALL_DIR}/kxkb_part )
-
-########### install files ###############
-
-install( FILES keyboard_layout.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kcmlayout.cpp #726098:726099
@@ -675,6 +675,9 @@
return;
QModelIndexList selected = selectionModel->selectedRows();
+ if( selected.count() < 1 )
+ return;
+
int row = selected[0].row();
int new_row = row + shift;
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kcmmisc/CMakeLists.txt #726098:726099
@@ -14,7 +14,7 @@
target_link_libraries(kcm_keyboard
- ${KDE4_KIO_LIBS} xkbfile ${QT_QT3SUPPORT_LIBRARY}
+ ${KDE4_KIO_LIBS} xkbfile
${XKB_SUPPORT_LIB}
)
if(X11_XTest_FOUND)
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkb.desktop #726098:726099
@@ -67,5 +67,5 @@
Icon=keyboard
X-DBUS-StartupType=Unique
-X-KDE-Library=kxkb_panelapplet
+X-KDE-Library=kdeinit_kxkb
X-KDE-UniqueApplet=true
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkb_applet.cpp #726098:726099
@@ -17,6 +17,7 @@
*/
#include <QWidget>
+#include <QSizeF>
#include <kglobal.h>
#include <klocale.h>
@@ -28,25 +29,16 @@
#include "kxkb_applet.moc"
-extern "C"
+KxkbApplet::KxkbApplet(QObject *parent, const QVariantList &args)
+ : Plasma::Applet(parent, args)
{
- KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile)
- {
- KGlobal::locale()->insertCatalog("kxkb");
- int actions = Plasma::Preferences | Plasma::About | Plasma::Help;
- return new KxkbApplet(configFile, Plasma::Normal, actions, parent);
- }
-}
+// move( 0, 0 );
+ m_kxkbCore = new KxkbCore(NULL, KxkbCore::KXKB_COMPONENT, KxkbWidget::MENU_FULL, \
KxkbWidget::WIDGET_LABEL); + m_kxkbCore->newInstance();
-
-KxkbApplet::KxkbApplet(const QString& configFile, Plasma::Type type,
- int actions, QWidget *parent, Qt::WFlags f)
- : KPanelApplet(configFile, type, actions, parent, f)
-{
- move( 0, 0 );
- kxkbWidget = new KxkbLabel( this );
- KxkbCore* kxkbCore = new KxkbCore(kxkbWidget);
- kxkbCore->newInstance();
+ setDrawStandardBackground(true);
+// connect(m_systemTrayWidget, SIGNAL(sizeChanged()), SLOT(updateLayout()));
+ //m_kxkbWidget->show();
//setCustomMenu(widget->history()->popup());
//centerWidget();
//kxkbWidget->show();
@@ -54,14 +46,21 @@
KxkbApplet::~KxkbApplet()
{
+ if (failedToLaunch()) {
+ // Do some cleanup here
+ } else {
+ // Save settings
+ }
}
-int KxkbApplet::widthForHeight(int height) const
+QSizeF KxkbApplet::contentSizeHint() const
{
- return 32;//kxkbWidget->width();
+// return QSizeF(m_kxkbCore->size());
+ return QSizeF(32,32);
}
-int KxkbApplet::heightForWidth(int width) const
+void KxkbApplet::paintInterface(QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ const QRect& contentsRect)
{
- return 32;//kxkbWidget->height();
}
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkb_applet.h #726098:726099
@@ -24,64 +24,28 @@
#include <QMouseEvent>
#include <QPixmap>
-#include <kpanelapplet.h>
-#include <kconfig.h>
+#include <plasma/applet.h>
-class KxkbWidget;
+class QSizeF;
+class KxkbCore;
-class KxkbApplet : public KPanelApplet
+class KxkbApplet : public Plasma::Applet
{
Q_OBJECT
public:
- explicit KxkbApplet(const QString& configFile, Plasma::Type t = Plasma::Normal,
- int actions = 0, QWidget *parent = 0, Qt::WFlags f = 0);
+ explicit KxkbApplet(QObject *parent, const QVariantList &args);
~KxkbApplet();
- virtual int widthForHeight(int height) const;
- virtual int heightForWidth(int width) const;
- /**
- * Is called when the user selects "About" from the applets RMB menu.
- * Reimplement this function to launch a about dialog.
- *
- * Note that this is called only when your applet supports the About action.
- * See @ref Action and @ref KPanelApplet().
- **/
+ void paintInterface(QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ const QRect& contentsRect);
+ QSizeF contentSizeHint() const;
-// public slots:
-// virtual void about();
- /**
- * Is called when the user selects "Help" from the applets RMB menu.
- * Reimplement this function to launch a manual or help page.
- *
- * Note that this is called only when your applet supports the Help action.
- * See @ref Action and @ref KPanelApplet().
- **/
-// virtual void help();
- /**
- * Is called when the user selects "Preferences" from the applets RMB menu.
- * Reimplement this function to launch a preferences dialog or kcontrol module.
- *
- * Note that this is called only when your applet supports the preferences \
action.
- * See @ref Action and @ref KPanelApplet().
- **/
-// virtual void preferences();
-
-//protected:
-// void resizeEvent(QResizeEvent *);
-// void mousePressEvent(QMouseEvent *e);
-
-
private:
- KxkbWidget* kxkbWidget;
-//private:
-// KConfig *ksConfig;
-// QWidget *mainView;
-// KPopupMenu *mContextMenu;
-// KPopupFrame *mBrightnessChooserFrame;
-// BrightnessChooserImpl *chooser;
-
-//private: // Private methods
+ KxkbCore* m_kxkbCore;
};
+K_EXPORT_PLASMA_APPLET(kxkb, KxkbApplet)
+
#endif
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/kxkbcore.cpp #726098:726099
@@ -109,6 +109,8 @@
else
m_kxkbWidget = new KxkbLabel(m_controlType, m_parentWidget);
+ kDebug() << "Created kxkb widget" << m_kxkbWidget;
+
connect(m_kxkbWidget, SIGNAL(menuTriggered(QAction*)), this, \
SLOT(iconMenuTriggered(QAction*))); connect(m_kxkbWidget, SIGNAL(iconToggled()), \
this, SLOT(toggled()));
@@ -291,6 +293,13 @@
void KxkbCore::initTray()
{
+ if( m_kxkbWidget == NULL ) {
+ if( m_kxkbConfig.m_layouts.count() > 1 || m_kxkbConfig.m_showSingle )
+ initWidget();
+ else
+ return;
+ }
+
kDebug() << "initing tray";
m_kxkbWidget->setShowFlag(m_kxkbConfig.m_showFlag);
--- trunk/KDE/kdebase/workspace/kcontrol/kxkb/rules.cpp #726098:726099
@@ -96,20 +96,26 @@
void XkbRules::loadRules(const QString &file, bool layoutsOnly)
{
- RulesInfo* rules = X11Helper::loadRules(file, layoutsOnly);
+ RulesInfo* rules = X11Helper::loadRules(file, layoutsOnly);
- if (rules == NULL) {
- kDebug() << "Unable to load rules";
- return;
- }
+ if (rules == NULL) {
+ kDebug() << "Unable to load rules";
+ return;
+ }
- m_layouts= rules->layouts;
+ m_layouts= rules->layouts;
- if( layoutsOnly == false ) {
- m_models = rules->models;
- m_options = rules->options;
- m_optionGroups = rules->optionGroups;
- }
+ if( layoutsOnly == false ) {
+ m_models = rules->models;
+ m_options = rules->options;
+ m_optionGroups = rules->optionGroups;
+
+ QHashIterator<QString, XkbOption> it( m_options );
+ for (; it.hasNext(); ) {
+ const XkbOption& option = it.next().value();
+ option.group->options.append(option);
+ }
+ }
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic