Revision: 6124
Author: ek.kato
Date: Mon Dec 21 17:44:42 2009
Log: * Merge r6123 from trunk.
http://code.google.com/p/uim/source/detail?r=6124
Modified:
/branches/1.5/qt4/toolbar
/branches/1.5/qt4/toolbar/CMakeLists.txt
/branches/1.5/qt4/toolbar/applet-kde4.cpp
/branches/1.5/qt4/toolbar/applet-kde4.h
/branches/1.5/qt4/toolbar/common-quimhelpertoolbar.cpp
/branches/1.5/qt4/toolbar/common-quimhelpertoolbar.h
/branches/1.5/qt4/toolbar/common-uimstateindicator.cpp
/branches/1.5/qt4/toolbar/common-uimstateindicator.h
=======================================
--- /branches/1.5/qt4/toolbar/CMakeLists.txt Sat Nov 21 04:55:15 2009
+++ /branches/1.5/qt4/toolbar/CMakeLists.txt Mon Dec 21 17:44:42 2009
@@ -3,7 +3,7 @@
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
-add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
+add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DPLASMA_APPLET_UIM)
include_directories(${KDE4_INCLUDES}
${CMAKE_SOURCE_DIR}/../.. ${CMAKE_SOURCE_DIR}/../../uim
${CMAKE_SOURCE_DIR}/../../replace ${CMAKE_SOURCE_DIR}/..)
=======================================
--- /branches/1.5/qt4/toolbar/applet-kde4.cpp Sat Nov 21 04:55:15 2009
+++ /branches/1.5/qt4/toolbar/applet-kde4.cpp Mon Dec 21 17:44:42 2009
@@ -61,6 +61,8 @@
m_toolbar->setAttribute(Qt::WA_NoSystemBackground);
connect(m_toolbar, SIGNAL(toolbarResized()),
this, SLOT(slotToolbarResized()));
+ connect(m_toolbar, SIGNAL(menuRequested(QMenu*)),
+ this, SLOT(slotMenuRequested(QMenu*)));
m_proxy = new QGraphicsProxyWidget;
m_proxy->setWidget(m_toolbar);
@@ -114,6 +116,12 @@
tb += (top + bottom);
resize(m_toolbar->width() + lr, m_toolbar->height() + tb);
}
+
+void UimApplet::slotMenuRequested(QMenu *menu)
+{
+ menu->adjustSize();
+ menu->exec(popupPosition(menu->size()));
+}
QGraphicsWidget *UimApplet::graphicsWidget()
{
=======================================
--- /branches/1.5/qt4/toolbar/applet-kde4.h Sat Nov 21 04:55:15 2009
+++ /branches/1.5/qt4/toolbar/applet-kde4.h Mon Dec 21 17:44:42 2009
@@ -50,6 +50,7 @@
private slots:
void slotToolbarResized();
+ void slotMenuRequested(QMenu *menu);
private:
void initPopup();
=======================================
--- /branches/1.5/qt4/toolbar/common-quimhelpertoolbar.cpp Sat Nov 21
04:55:15 2009
+++ /branches/1.5/qt4/toolbar/common-quimhelpertoolbar.cpp Mon Dec 21
17:44:42 2009
@@ -56,7 +56,10 @@
m_indicator = new UimStateIndicator( this );
m_layout->addWidget( m_indicator );
- connect( m_indicator, SIGNAL( indicatorResized() ), this, SLOT(
slotIndicatorResized() ) );
+ connect( m_indicator, SIGNAL( indicatorResized() ),
+ this, SLOT( slotIndicatorResized() ) );
+ connect( m_indicator, SIGNAL( menuRequested( QMenu* ) ),
+ this, SIGNAL( menuRequested( QMenu* ) ) );
QPixmap swicon = QPixmap( ICONDIR + "/im_switcher.png" );
QPixmap preficon = QPixmap( ACTION_ICONDIR + "/configure.png");
@@ -87,7 +90,7 @@
exiticon = QPixmap::fromImage( exitimage.scaled( ICON_SIZE, ICON_SIZE,
Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) );
- m_contextMenu = new QMenu( this );
+ m_contextMenu = new QMenu( isApplet ? 0 : this );
m_contextMenu->addAction( m_swicon, _("Switch input method"),
this, SLOT(slotExecImSwitcher()) );
m_contextMenu->addAction( m_preficon, _("Preference"),
@@ -129,8 +132,13 @@
{
if( m_contextMenu->isHidden() )
{
+#ifdef PLASMA_APPLET_UIM
+ Q_UNUSED( e );
+ emit menuRequested( m_contextMenu );
+#else
m_contextMenu->move( e->globalPos() );
m_contextMenu->exec();
+#endif
}
}
=======================================
--- /branches/1.5/qt4/toolbar/common-quimhelpertoolbar.h Sat Nov 21
04:55:15 2009
+++ /branches/1.5/qt4/toolbar/common-quimhelpertoolbar.h Mon Dec 21
17:44:42 2009
@@ -80,6 +80,7 @@
signals:
void quitToolbar();
void toolbarResized();
+ void menuRequested( QMenu *menu );
protected:
UimStateIndicator *m_indicator;
=======================================
--- /branches/1.5/qt4/toolbar/common-uimstateindicator.cpp Sat Nov 21
04:55:15 2009
+++ /branches/1.5/qt4/toolbar/common-uimstateindicator.cpp Mon Dec 21
17:44:42 2009
@@ -40,6 +40,7 @@
#include <QtCore/QTextCodec>
#include <QtGui/QHBoxLayout>
#include <QtGui/QImage>
+#include <QtGui/QMouseEvent>
#include <QtGui/QPixmap>
#include <cstring>
@@ -171,11 +172,17 @@
button->setToolTip( fields[ 3 ] );
// create popup
+#ifdef PLASMA_APPLET_UIM
+ popupMenu = new QHelperPopupMenu( 0 );
+#else
popupMenu = new QHelperPopupMenu( button );
+#endif
connect( popupMenu, SIGNAL( aboutToShow() ),
this, SLOT( slotPopupMenuAboutToShow() ) );
connect( popupMenu, SIGNAL( aboutToHide() ),
this, SLOT( slotPopupMenuAboutToHide() ) );
+ connect( button, SIGNAL( menuRequested( QMenu* ) ),
+ this, SIGNAL( menuRequested( QMenu* ) ) );
button->setMenu( popupMenu );
button->setPopupMode( QToolButton::InstantPopup );
@@ -262,6 +269,28 @@
delete button;
}
}
+
+/**/
+QHelperToolbarButton::QHelperToolbarButton( QWidget *parent )
+ : QToolButton( parent )
+{
+ setAutoRaise( true );
+}
+
+QSize QHelperToolbarButton::sizeHint() const
+{
+ return QSize( BUTTON_SIZE, BUTTON_SIZE );
+}
+
+void QHelperToolbarButton::mousePressEvent( QMouseEvent *event )
+{
+#ifdef PLASMA_APPLET_UIM
+ if ( event->button() == Qt::LeftButton )
+ emit menuRequested( menu() );
+#else
+ QToolButton::mousePressEvent( event );
+#endif
+}
/**/
=======================================
--- /branches/1.5/qt4/toolbar/common-uimstateindicator.h Sat Nov 21
04:55:15 2009
+++ /branches/1.5/qt4/toolbar/common-uimstateindicator.h Mon Dec 21
17:44:42 2009
@@ -70,6 +70,7 @@
signals:
void indicatorResized();
+ void menuRequested( QMenu *menu );
public slots:
void slotStdinActivated( int socket );
@@ -91,14 +92,17 @@
class QHelperToolbarButton : public QToolButton
{
+ Q_OBJECT
public:
- explicit QHelperToolbarButton( QWidget *parent = 0 )
- : QToolButton( parent ){ setAutoRaise( true ); }
-
- QSize sizeHint() const
- {
- return QSize( BUTTON_SIZE, BUTTON_SIZE );
- }
+ explicit QHelperToolbarButton( QWidget *parent = 0 );
+
+ QSize sizeHint() const;
+
+signals:
+ void menuRequested( QMenu *menu );
+
+private:
+ void mousePressEvent( QMouseEvent *event );
};
class QHelperPopupMenu : public QMenu