-rw-r--r-- | core/launcher/inputmethods.cpp | 20 | ||||
-rw-r--r-- | core/launcher/inputmethods.h | 1 | ||||
-rw-r--r-- | core/launcher/taskbar.cpp | 13 | ||||
-rw-r--r-- | core/launcher/taskbar.h | 5 | ||||
-rw-r--r-- | core/settings/launcher/inputmethodsettings.cpp | 29 | ||||
-rw-r--r-- | core/settings/launcher/inputmethodsettings.h | 9 |
6 files changed, 58 insertions, 19 deletions
diff --git a/core/launcher/inputmethods.cpp b/core/launcher/inputmethods.cpp index a0e8939..7e99796 100644 --- a/core/launcher/inputmethods.cpp +++ b/core/launcher/inputmethods.cpp | |||
@@ -76,37 +76,33 @@ int InputMethod::operator <=(const InputMethod& o) const | |||
76 | /* | 76 | /* |
77 | Slightly hacky: We use WStyle_Tool as a flag to say "this widget | 77 | Slightly hacky: We use WStyle_Tool as a flag to say "this widget |
78 | belongs to the IM system, so clicking it should not cause a reset". | 78 | belongs to the IM system, so clicking it should not cause a reset". |
79 | */ | 79 | */ |
80 | class IMToolButton : public QToolButton | 80 | class IMToolButton : public QToolButton |
81 | { | 81 | { |
82 | public: | 82 | public: |
83 | IMToolButton::IMToolButton( QWidget *parent ) : QToolButton( parent ) | 83 | IMToolButton::IMToolButton( QWidget *parent ) : QToolButton( parent ) |
84 | { setWFlags( WStyle_Tool ); } | 84 | { setWFlags( WStyle_Tool ); } |
85 | }; | 85 | }; |
86 | 86 | ||
87 | 87 | ||
88 | InputMethods::InputMethods( QWidget *parent ) : | 88 | InputMethods::InputMethods( QWidget *parent ) : |
89 | QWidget( parent, "InputMethods", WStyle_Tool | WStyle_Customize ), | 89 | QWidget( parent, "InputMethods", WStyle_Tool | WStyle_Customize ), |
90 | mkeyboard(0), imethod(0) | 90 | mkeyboard(0), imethod(0) |
91 | { | 91 | { |
92 | Config cfg( "Launcher" ); | 92 | readConfig(); |
93 | cfg.setGroup( "InputMethods" ); | ||
94 | inputWidgetStyle = QWidget::WStyle_Customize | QWidget::WStyle_StaysOnTop | QWidget::WGroupLeader | QWidget::WStyle_Tool; | ||
95 | inputWidgetStyle |= cfg.readBoolEntry( "Float", false ) ? QWidget::WStyle_DialogBorder : 0; | ||
96 | inputWidgetWidth = cfg.readNumEntry( "Width", 100 ); | ||
97 | 93 | ||
98 | setBackgroundMode( PaletteBackground ); | 94 | setBackgroundMode( PaletteBackground ); |
99 | QHBoxLayout *hbox = new QHBoxLayout( this ); | 95 | QHBoxLayout *hbox = new QHBoxLayout( this ); |
100 | 96 | ||
101 | kbdButton = new IMToolButton( this); | 97 | kbdButton = new IMToolButton( this); |
102 | kbdButton->setFocusPolicy(NoFocus); | 98 | kbdButton->setFocusPolicy(NoFocus); |
103 | kbdButton->setToggleButton( TRUE ); | 99 | kbdButton->setToggleButton( TRUE ); |
104 | if (parent->sizeHint().height() > 0) | 100 | if (parent->sizeHint().height() > 0) |
105 | kbdButton->setFixedHeight( parent->sizeHint().height() ); | 101 | kbdButton->setFixedHeight( parent->sizeHint().height() ); |
106 | kbdButton->setFixedWidth( 32 ); | 102 | kbdButton->setFixedWidth( 32 ); |
107 | kbdButton->setAutoRaise( TRUE ); | 103 | kbdButton->setAutoRaise( TRUE ); |
108 | kbdButton->setUsesBigPixmap( TRUE ); | 104 | kbdButton->setUsesBigPixmap( TRUE ); |
109 | hbox->addWidget( kbdButton ); | 105 | hbox->addWidget( kbdButton ); |
110 | connect( kbdButton, SIGNAL(toggled(bool)), this, SLOT(showKbd(bool)) ); | 106 | connect( kbdButton, SIGNAL(toggled(bool)), this, SLOT(showKbd(bool)) ); |
111 | 107 | ||
112 | kbdChoice = new IMToolButton( this ); | 108 | kbdChoice = new IMToolButton( this ); |
@@ -519,33 +515,33 @@ void InputMethods::qcopReceive( const QCString &msg, const QByteArray &data ) | |||
519 | { | 515 | { |
520 | if ( imethod && imethod->newIM ) | 516 | if ( imethod && imethod->newIM ) |
521 | imethod->extInterface->qcopReceive( msg, data ); | 517 | imethod->extInterface->qcopReceive( msg, data ); |
522 | } | 518 | } |
523 | 519 | ||
524 | 520 | ||
525 | void InputMethods::showKbd( bool on ) | 521 | void InputMethods::showKbd( bool on ) |
526 | { | 522 | { |
527 | if ( !mkeyboard ) | 523 | if ( !mkeyboard ) |
528 | return; | 524 | return; |
529 | 525 | ||
530 | if ( on ) | 526 | if ( on ) |
531 | { | 527 | { |
532 | mkeyboard->resetState(); | 528 | mkeyboard->resetState(); |
533 | 529 | ||
534 | int height = QMIN( mkeyboard->widget->sizeHint().height(), 134 ); | 530 | int height = QMIN( mkeyboard->widget->sizeHint().height(), 134 ); |
535 | int width = qApp->desktop()->width() * (inputWidgetWidth*0.01); | 531 | int width = static_cast<int>( qApp->desktop()->width() * (inputWidgetWidth*0.01) ); |
536 | int left = 0; | 532 | int left = 0; |
537 | int top = mapToGlobal( QPoint() ).y() - height; | 533 | int top = mapToGlobal( QPoint() ).y() - height; |
538 | 534 | ||
539 | if ( inputWidgetStyle & QWidget::WStyle_DialogBorder ) | 535 | if ( inputWidgetStyle & QWidget::WStyle_DialogBorder ) |
540 | { | 536 | { |
541 | odebug << "InputMethods: reading geometry." << oendl; | 537 | odebug << "InputMethods: reading geometry." << oendl; |
542 | Config cfg( "Launcher" ); | 538 | Config cfg( "Launcher" ); |
543 | cfg.setGroup( "InputMethods" ); | 539 | cfg.setGroup( "InputMethods" ); |
544 | int l = cfg.readNumEntry( "absX", -1 ); | 540 | int l = cfg.readNumEntry( "absX", -1 ); |
545 | int t = cfg.readNumEntry( "absY", -1 ); | 541 | int t = cfg.readNumEntry( "absY", -1 ); |
546 | int w = cfg.readNumEntry( "absWidth", -1 ); | 542 | int w = cfg.readNumEntry( "absWidth", -1 ); |
547 | int h = cfg.readNumEntry( "absHeight", -1 ); | 543 | int h = cfg.readNumEntry( "absHeight", -1 ); |
548 | 544 | ||
549 | if ( l > -1 && t > -1 && w > -1 && h > -1 ) | 545 | if ( l > -1 && t > -1 && w > -1 && h > -1 ) |
550 | { | 546 | { |
551 | odebug << "InputMethods: config values ( " << l << ", " << t << ", " << w << ", " << h << " ) are ok." << oendl; | 547 | odebug << "InputMethods: config values ( " << l << ", " << t << ", " << w << ", " << h << " ) are ok." << oendl; |
@@ -595,27 +591,37 @@ bool InputMethods::shown() const | |||
595 | return mkeyboard && mkeyboard->widget->isVisible(); | 591 | return mkeyboard && mkeyboard->widget->isVisible(); |
596 | } | 592 | } |
597 | 593 | ||
598 | QString InputMethods::currentShown() const | 594 | QString InputMethods::currentShown() const |
599 | { | 595 | { |
600 | return mkeyboard && mkeyboard->widget->isVisible() | 596 | return mkeyboard && mkeyboard->widget->isVisible() |
601 | ? mkeyboard->name() : QString::null; | 597 | ? mkeyboard->name() : QString::null; |
602 | } | 598 | } |
603 | 599 | ||
604 | void InputMethods::sendKey( ushort unicode, ushort scancode, ushort mod, bool press, bool repeat ) | 600 | void InputMethods::sendKey( ushort unicode, ushort scancode, ushort mod, bool press, bool repeat ) |
605 | { | 601 | { |
606 | #if defined(Q_WS_QWS) | 602 | #if defined(Q_WS_QWS) |
607 | QWSServer::sendKeyEvent( unicode, scancode, mod, press, repeat ); | 603 | QWSServer::sendKeyEvent( unicode, scancode, mod, press, repeat ); |
608 | #endif | 604 | #endif |
609 | } | 605 | } |
610 | 606 | ||
611 | bool InputMethods::eventFilter( QObject* o, QEvent* e ) | 607 | bool InputMethods::eventFilter( QObject* , QEvent* e ) |
612 | { | 608 | { |
613 | if ( e->type() == QEvent::Close ) | 609 | if ( e->type() == QEvent::Close ) |
614 | { | 610 | { |
615 | ( (QCloseEvent*) e )->ignore(); | 611 | ( (QCloseEvent*) e )->ignore(); |
616 | showKbd( false ); | 612 | showKbd( false ); |
617 | kbdButton->setOn( false ); | 613 | kbdButton->setOn( false ); |
618 | return true; | 614 | return true; |
619 | } | 615 | } |
620 | return false; | 616 | return false; |
621 | } | 617 | } |
618 | |||
619 | void InputMethods::readConfig() { | ||
620 | Config cfg( "Launcher" ); | ||
621 | cfg.setGroup( "InputMethods" ); | ||
622 | |||
623 | inputWidgetStyle = QWidget::WStyle_Customize | QWidget::WStyle_StaysOnTop | QWidget::WGroupLeader | QWidget::WStyle_Tool; | ||
624 | inputWidgetStyle |= cfg.readBoolEntry( "Float", false ) ? | ||
625 | QWidget::WStyle_DialogBorder : 0; | ||
626 | inputWidgetWidth = cfg.readNumEntry( "Width", 100 ); | ||
627 | } | ||
diff --git a/core/launcher/inputmethods.h b/core/launcher/inputmethods.h index 55ac020..2e0b1e8 100644 --- a/core/launcher/inputmethods.h +++ b/core/launcher/inputmethods.h | |||
@@ -61,32 +61,33 @@ struct InputMethod | |||
61 | class InputMethods : public QWidget | 61 | class InputMethods : public QWidget |
62 | { | 62 | { |
63 | Q_OBJECT | 63 | Q_OBJECT |
64 | public: | 64 | public: |
65 | InputMethods( QWidget * ); | 65 | InputMethods( QWidget * ); |
66 | ~InputMethods(); | 66 | ~InputMethods(); |
67 | 67 | ||
68 | QRect inputRect() const; | 68 | QRect inputRect() const; |
69 | bool shown() const; | 69 | bool shown() const; |
70 | QString currentShown() const; // name of interface | 70 | QString currentShown() const; // name of interface |
71 | void showInputMethod(const QString& id); | 71 | void showInputMethod(const QString& id); |
72 | void showInputMethod(); | 72 | void showInputMethod(); |
73 | void hideInputMethod(); | 73 | void hideInputMethod(); |
74 | void unloadInputMethods(); | 74 | void unloadInputMethods(); |
75 | void loadInputMethods(); | 75 | void loadInputMethods(); |
76 | virtual bool eventFilter( QObject *, QEvent * ); | 76 | virtual bool eventFilter( QObject *, QEvent * ); |
77 | void readConfig(); | ||
77 | 78 | ||
78 | signals: | 79 | signals: |
79 | void inputToggled( bool on ); | 80 | void inputToggled( bool on ); |
80 | 81 | ||
81 | private slots: | 82 | private slots: |
82 | void chooseKbd(); | 83 | void chooseKbd(); |
83 | void chooseIm(); | 84 | void chooseIm(); |
84 | void showKbd( bool ); | 85 | void showKbd( bool ); |
85 | void resetStates(); | 86 | void resetStates(); |
86 | void sendKey( ushort unicode, ushort scancode, ushort modifiers, bool, bool ); | 87 | void sendKey( ushort unicode, ushort scancode, ushort modifiers, bool, bool ); |
87 | void qcopReceive( const QCString &msg, const QByteArray &data ); | 88 | void qcopReceive( const QCString &msg, const QByteArray &data ); |
88 | 89 | ||
89 | private: | 90 | private: |
90 | void setPreferedHandlers(); | 91 | void setPreferedHandlers(); |
91 | /*static */QStringList plugins()const; | 92 | /*static */QStringList plugins()const; |
92 | /*static */void installTranslator( const QString& ); | 93 | /*static */void installTranslator( const QString& ); |
diff --git a/core/launcher/taskbar.cpp b/core/launcher/taskbar.cpp index abe238f..63361fe 100644 --- a/core/launcher/taskbar.cpp +++ b/core/launcher/taskbar.cpp | |||
@@ -163,35 +163,34 @@ public: | |||
163 | p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); | 163 | p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); |
164 | } | 164 | } |
165 | private: | 165 | private: |
166 | QPixmap nl_pm, cl_pm; | 166 | QPixmap nl_pm, cl_pm; |
167 | bool nl, cl; | 167 | bool nl, cl; |
168 | }; | 168 | }; |
169 | 169 | ||
170 | //--------------------------------------------------------------------------- | 170 | //--------------------------------------------------------------------------- |
171 | 171 | ||
172 | TaskBar::~TaskBar() | 172 | TaskBar::~TaskBar() |
173 | { | 173 | { |
174 | } | 174 | } |
175 | 175 | ||
176 | 176 | ||
177 | TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) | 177 | TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) |
178 | { | 178 | { |
179 | Config cfg( "Launcher" ); | 179 | /* Read InputMethod Config */ |
180 | cfg.setGroup( "InputMethods" ); | 180 | readConfig(); |
181 | resizeRunningApp = cfg.readBoolEntry( "Resize", true ); | ||
182 | 181 | ||
183 | sm = new StartMenu( this ); | 182 | sm = new StartMenu( this ); |
184 | connect( sm, SIGNAL(tabSelected(const QString&)), this, | 183 | connect( sm, SIGNAL(tabSelected(const QString&)), this, |
185 | SIGNAL(tabSelected(const QString&)) ); | 184 | SIGNAL(tabSelected(const QString&)) ); |
186 | 185 | ||
187 | inputMethods = new InputMethods( this ); | 186 | inputMethods = new InputMethods( this ); |
188 | connect( inputMethods, SIGNAL(inputToggled(bool)), | 187 | connect( inputMethods, SIGNAL(inputToggled(bool)), |
189 | this, SLOT(calcMaxWindowRect()) ); | 188 | this, SLOT(calcMaxWindowRect()) ); |
190 | 189 | ||
191 | stack = new QWidgetStack( this ); | 190 | stack = new QWidgetStack( this ); |
192 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); | 191 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); |
193 | label = new QLabel(stack); | 192 | label = new QLabel(stack); |
194 | 193 | ||
195 | runningAppBar = new RunningAppBar(stack); | 194 | runningAppBar = new RunningAppBar(stack); |
196 | stack->raiseWidget(runningAppBar); | 195 | stack->raiseWidget(runningAppBar); |
197 | 196 | ||
@@ -322,32 +321,34 @@ void TaskBar::calcMaxWindowRect() | |||
322 | void TaskBar::receive( const QCString &msg, const QByteArray &data ) | 321 | void TaskBar::receive( const QCString &msg, const QByteArray &data ) |
323 | { | 322 | { |
324 | QDataStream stream( data, IO_ReadOnly ); | 323 | QDataStream stream( data, IO_ReadOnly ); |
325 | if ( msg == "message(QString)" ) { | 324 | if ( msg == "message(QString)" ) { |
326 | QString text; | 325 | QString text; |
327 | stream >> text; | 326 | stream >> text; |
328 | setStatusMessage( text ); | 327 | setStatusMessage( text ); |
329 | } else if ( msg == "hideInputMethod()" ) { | 328 | } else if ( msg == "hideInputMethod()" ) { |
330 | inputMethods->hideInputMethod(); | 329 | inputMethods->hideInputMethod(); |
331 | } else if ( msg == "showInputMethod()" ) { | 330 | } else if ( msg == "showInputMethod()" ) { |
332 | inputMethods->showInputMethod(); | 331 | inputMethods->showInputMethod(); |
333 | } else if ( msg == "showInputMethod(QString)" ) { | 332 | } else if ( msg == "showInputMethod(QString)" ) { |
334 | QString name; | 333 | QString name; |
335 | stream >> name; | 334 | stream >> name; |
336 | inputMethods->showInputMethod(name); | 335 | inputMethods->showInputMethod(name); |
337 | } else if ( msg == "reloadInputMethods()" ) { | 336 | } else if ( msg == "reloadInputMethods()" ) { |
337 | readConfig(); | ||
338 | inputMethods->readConfig(); | ||
338 | inputMethods->loadInputMethods(); | 339 | inputMethods->loadInputMethods(); |
339 | } else if ( msg == "reloadApplets()" ) { | 340 | } else if ( msg == "reloadApplets()" ) { |
340 | sysTray->clearApplets(); | 341 | sysTray->clearApplets(); |
341 | sm->createMenu(); | 342 | sm->createMenu(); |
342 | sysTray->addApplets(); | 343 | sysTray->addApplets(); |
343 | }else if ( msg == "toggleMenu()" ) { | 344 | }else if ( msg == "toggleMenu()" ) { |
344 | if ( sm-> launchMenu-> isVisible() ) | 345 | if ( sm-> launchMenu-> isVisible() ) |
345 | sm-> launch(); | 346 | sm-> launch(); |
346 | else | 347 | else |
347 | QCopEnvelope e( "QPE/System", "toggleApplicationMenu()" ); | 348 | QCopEnvelope e( "QPE/System", "toggleApplicationMenu()" ); |
348 | }else if ( msg == "toggleStartMenu()" ) | 349 | }else if ( msg == "toggleStartMenu()" ) |
349 | sm->launch(); | 350 | sm->launch(); |
350 | } | 351 | } |
351 | 352 | ||
352 | void TaskBar::setApplicationState( const QString &name, ServerInterface::ApplicationState state ) | 353 | void TaskBar::setApplicationState( const QString &name, ServerInterface::ApplicationState state ) |
353 | { | 354 | { |
@@ -364,17 +365,23 @@ void TaskBar::toggleNumLockState() | |||
364 | 365 | ||
365 | void TaskBar::toggleCapsLockState() | 366 | void TaskBar::toggleCapsLockState() |
366 | { | 367 | { |
367 | if ( lockState ) lockState->toggleCapsLockState(); | 368 | if ( lockState ) lockState->toggleCapsLockState(); |
368 | } | 369 | } |
369 | 370 | ||
370 | void TaskBar::toggleSymbolInput() | 371 | void TaskBar::toggleSymbolInput() |
371 | { | 372 | { |
372 | QString unicodeInput = qApp->translate( "InputMethods", "Unicode" ); | 373 | QString unicodeInput = qApp->translate( "InputMethods", "Unicode" ); |
373 | if ( inputMethods->currentShown() == unicodeInput ) { | 374 | if ( inputMethods->currentShown() == unicodeInput ) { |
374 | inputMethods->hideInputMethod(); | 375 | inputMethods->hideInputMethod(); |
375 | } else { | 376 | } else { |
376 | inputMethods->showInputMethod( unicodeInput ); | 377 | inputMethods->showInputMethod( unicodeInput ); |
377 | } | 378 | } |
378 | } | 379 | } |
379 | 380 | ||
381 | void TaskBar::readConfig() { | ||
382 | Config cfg( "Launcher" ); | ||
383 | cfg.setGroup( "InputMethods" ); | ||
384 | resizeRunningApp = cfg.readBoolEntry( "Resize", true ); | ||
385 | } | ||
386 | |||
380 | #include "taskbar.moc" | 387 | #include "taskbar.moc" |
diff --git a/core/launcher/taskbar.h b/core/launcher/taskbar.h index ed558b1..be5fda8 100644 --- a/core/launcher/taskbar.h +++ b/core/launcher/taskbar.h | |||
@@ -52,36 +52,39 @@ signals: | |||
52 | 52 | ||
53 | public slots: | 53 | public slots: |
54 | void startWait(); | 54 | void startWait(); |
55 | void stopWait(const QString&); | 55 | void stopWait(const QString&); |
56 | void stopWait(); | 56 | void stopWait(); |
57 | 57 | ||
58 | void clearStatusBar(); | 58 | void clearStatusBar(); |
59 | void toggleNumLockState(); | 59 | void toggleNumLockState(); |
60 | void toggleCapsLockState(); | 60 | void toggleCapsLockState(); |
61 | void toggleSymbolInput(); | 61 | void toggleSymbolInput(); |
62 | void calcMaxWindowRect(); | 62 | void calcMaxWindowRect(); |
63 | 63 | ||
64 | protected: | 64 | protected: |
65 | void resizeEvent( QResizeEvent * ); | 65 | void resizeEvent( QResizeEvent * ); |
66 | void styleChange( QStyle & ); | 66 | void styleChange( QStyle & ); |
67 | void setStatusMessage( const QString &text ); | 67 | void setStatusMessage( const QString &text ); |
68 | 68 | ||
69 | private slots: | 69 | private slots: |
70 | void receive( const QCString &msg, const QByteArray &data ); | 70 | void receive( const QCString &msg, const QByteArray &data ); |
71 | 71 | ||
72 | private: | 72 | private: |
73 | void readConfig(); | ||
74 | |||
75 | private: | ||
73 | QTimer *waitTimer; | 76 | QTimer *waitTimer; |
74 | Wait *waitIcon; | 77 | Wait *waitIcon; |
75 | InputMethods *inputMethods; | 78 | InputMethods *inputMethods; |
76 | SysTray *sysTray; | 79 | SysTray *sysTray; |
77 | RunningAppBar* runningAppBar; | 80 | RunningAppBar* runningAppBar; |
78 | QWidgetStack *stack; | 81 | QWidgetStack *stack; |
79 | QTimer *clearer; | 82 | QTimer *clearer; |
80 | QLabel *label; | 83 | QLabel *label; |
81 | LockKeyState* lockState; | 84 | LockKeyState* lockState; |
82 | StartMenu *sm; | 85 | StartMenu *sm; |
83 | bool resizeRunningApp; | 86 | bool resizeRunningApp; |
84 | }; | 87 | }; |
85 | 88 | ||
86 | 89 | ||
87 | #endif // TASKBAR_H | 90 | #endif // TASKBAR_H |
diff --git a/core/settings/launcher/inputmethodsettings.cpp b/core/settings/launcher/inputmethodsettings.cpp index 0422075..125b178 100644 --- a/core/settings/launcher/inputmethodsettings.cpp +++ b/core/settings/launcher/inputmethodsettings.cpp | |||
@@ -18,71 +18,90 @@ | |||
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include "inputmethodsettings.h" | 29 | #include "inputmethodsettings.h" |
30 | 30 | ||
31 | /* OPIE */ | 31 | /* OPIE */ |
32 | #include <qpe/config.h> | 32 | #include <qpe/config.h> |
33 | #include <opie2/odebug.h> | 33 | #include <opie2/odebug.h> |
34 | #include <qpe/qcopenvelope_qws.h> | ||
34 | 35 | ||
35 | /* QT */ | 36 | /* QT */ |
36 | #include <qspinbox.h> | 37 | #include <qspinbox.h> |
37 | #include <qcheckbox.h> | 38 | #include <qcheckbox.h> |
38 | #include <qlayout.h> | 39 | #include <qlayout.h> |
39 | #include <qlabel.h> | 40 | #include <qlabel.h> |
40 | #include <qwhatsthis.h> | 41 | #include <qwhatsthis.h> |
41 | 42 | ||
42 | 43 | ||
43 | InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QWidget( parent, name ) | 44 | InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QWidget( parent, name ) |
44 | { | 45 | { |
45 | QBoxLayout *lay = new QVBoxLayout( this, 4, 4 ); | 46 | QBoxLayout *lay = new QVBoxLayout( this, 4, 4 ); |
46 | 47 | ||
47 | _resize = new QCheckBox( tr( "Resize application on Popup" ), this ); | 48 | _resize = new QCheckBox( tr( "Resize application on Popup" ), this ); |
48 | _float = new QCheckBox( tr( "Enable floating and resizing" ), this ); | 49 | _float = new QCheckBox( tr( "Enable floating and resizing" ), this ); |
49 | 50 | ||
50 | QHBoxLayout* hbox = new QHBoxLayout( lay, 4 ); | 51 | QHBoxLayout* hbox = new QHBoxLayout( lay, 4 ); |
51 | hbox->addWidget( new QLabel( "Initial Width:", this ) ); | 52 | hbox->addWidget( new QLabel( "Initial Width:", this ) ); |
52 | _size = new QSpinBox( 10, 100, 10, this ); | 53 | _size = new QSpinBox( 10, 100, 10, this ); |
53 | _size->setSuffix( "%" ); | 54 | _size->setSuffix( "%" ); |
54 | hbox->addWidget( _size ); | 55 | hbox->addWidget( _size ); |
55 | hbox->addStretch(); | 56 | hbox->addStretch(); |
56 | 57 | ||
57 | Config cfg( "Launcher" ); | 58 | Config cfg( "Launcher" ); |
58 | cfg.setGroup( "InputMethods" ); | 59 | cfg.setGroup( "InputMethods" ); |
59 | _resize->setChecked( cfg.readBoolEntry( "Resize", true ) ); | 60 | |
60 | _float->setChecked( cfg.readBoolEntry( "Float", false ) ); | 61 | /* |
61 | _size->setValue( cfg.readNumEntry( "Width", 100 ) ); | 62 | * load the values to see if something was changed |
63 | */ | ||
64 | _wasResize = cfg.readBoolEntry( "Resize", true ); | ||
65 | _wasFloat = cfg.readBoolEntry( "Float", false ); | ||
66 | _wasWidth = cfg.readNumEntry( "Width", 100 ); | ||
67 | |||
68 | _resize->setChecked( _wasResize ); | ||
69 | _float ->setChecked( _wasFloat ); | ||
70 | _size ->setValue( _wasWidth ); | ||
62 | 71 | ||
63 | lay->addWidget( _resize ); | 72 | lay->addWidget( _resize ); |
64 | lay->addWidget( _float ); | 73 | lay->addWidget( _float ); |
65 | lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) ); | 74 | lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) ); |
66 | 75 | ||
67 | lay->addStretch(); | 76 | lay->addStretch(); |
68 | 77 | ||
69 | QWhatsThis::add( _resize, tr( "Check, if you want the application to be automatically resized if the input method pops up." ) ); | 78 | QWhatsThis::add( _resize, tr( "Check, if you want the application to be automatically resized if the input method pops up." ) ); |
70 | QWhatsThis::add( _float, tr( "Check, if you want to move and/or resize input methods" ) ); | 79 | QWhatsThis::add( _float, tr( "Check, if you want to move and/or resize input methods" ) ); |
71 | QWhatsThis::add( _size, tr( "Specify the percentage of the screen width for the input method" ) ); | 80 | QWhatsThis::add( _size, tr( "Specify the percentage of the screen width for the input method" ) ); |
72 | } | 81 | } |
73 | 82 | ||
74 | void InputMethodSettings::appletChanged() | 83 | bool InputMethodSettings::changed()const{ |
75 | { | 84 | if ( _wasResize != _resize->isChecked() ) |
85 | return true; | ||
86 | else if ( _wasFloat != _float->isChecked() ) | ||
87 | return true; | ||
88 | else if ( _wasWidth != _size->value() ) | ||
89 | return true; | ||
90 | else | ||
91 | return false; | ||
76 | } | 92 | } |
77 | 93 | ||
78 | void InputMethodSettings::accept() | 94 | void InputMethodSettings::accept() |
79 | { | 95 | { |
80 | odebug << "InputMethodSettings::accept()" << oendl; | 96 | odebug << "InputMethodSettings::accept()" << oendl; |
81 | Config cfg( "Launcher" ); | 97 | Config cfg( "Launcher" ); |
82 | cfg.setGroup( "InputMethods" ); | 98 | cfg.setGroup( "InputMethods" ); |
83 | cfg.writeEntry( "Resize", _resize->isChecked() ); | 99 | cfg.writeEntry( "Resize", _resize->isChecked() ); |
84 | cfg.writeEntry( "Float", _float->isChecked() ); | 100 | cfg.writeEntry( "Float", _float->isChecked() ); |
85 | cfg.writeEntry( "Width", _size->value() ); | 101 | cfg.writeEntry( "Width", _size->value() ); |
86 | cfg.write(); | 102 | cfg.write(); |
103 | |||
104 | if ( changed() ) | ||
105 | QCopEnvelope( "QPE/TaskBar", "reloadInputMethods()" ); | ||
87 | } | 106 | } |
88 | 107 | ||
diff --git a/core/settings/launcher/inputmethodsettings.h b/core/settings/launcher/inputmethodsettings.h index 486ee5e..2ae43f2 100644 --- a/core/settings/launcher/inputmethodsettings.h +++ b/core/settings/launcher/inputmethodsettings.h | |||
@@ -29,29 +29,32 @@ | |||
29 | #define __IMETHOD_SETTINGS_H__ | 29 | #define __IMETHOD_SETTINGS_H__ |
30 | 30 | ||
31 | #include <qwidget.h> | 31 | #include <qwidget.h> |
32 | 32 | ||
33 | class QCheckBox; | 33 | class QCheckBox; |
34 | class QSpinBox; | 34 | class QSpinBox; |
35 | 35 | ||
36 | class InputMethodSettings : public QWidget | 36 | class InputMethodSettings : public QWidget |
37 | { | 37 | { |
38 | Q_OBJECT | 38 | Q_OBJECT |
39 | 39 | ||
40 | public: | 40 | public: |
41 | InputMethodSettings ( QWidget *parent = 0, const char *name = 0 ); | 41 | InputMethodSettings ( QWidget *parent = 0, const char *name = 0 ); |
42 | 42 | ||
43 | void accept ( ); | 43 | void accept ( ); |
44 | 44 | ||
45 | protected slots: | ||
46 | void appletChanged ( ); | ||
47 | |||
48 | protected: | 45 | protected: |
49 | void init ( ); | 46 | void init ( ); |
50 | 47 | ||
51 | private: | 48 | private: |
52 | QCheckBox* _resize; | 49 | QCheckBox* _resize; |
53 | QCheckBox* _float; | 50 | QCheckBox* _float; |
54 | QSpinBox* _size; | 51 | QSpinBox* _size; |
52 | |||
53 | private: | ||
54 | bool changed()const; | ||
55 | bool _wasResize : 1; | ||
56 | bool _wasFloat : 1; | ||
57 | int _wasWidth; | ||
55 | }; | 58 | }; |
56 | 59 | ||
57 | #endif | 60 | #endif |