Work in progress: hacks at vienna, do not use it
[googlelatitude] / latitude.qml / main.cpp
1 #include <QtGui/QApplication>
2 #include <QtGui/QInputContext>
3 #include "qml.h"
4
5 class EventFilter : public QObject {
6 protected:
7     bool eventFilter(QObject *obj, QEvent *event) {
8         QInputContext *ic = qApp->inputContext();
9         if (ic) {
10             if (ic->focusWidget() == 0 && prevFocusWidget) {
11                 QEvent closeSIPEvent(QEvent::CloseSoftwareInputPanel);
12                 ic->filterEvent(&closeSIPEvent);
13             } else if (prevFocusWidget == 0 && ic->focusWidget()) {
14                 QEvent openSIPEvent(QEvent::RequestSoftwareInputPanel);
15                 ic->filterEvent(&openSIPEvent);
16             }
17             prevFocusWidget = ic->focusWidget();
18         }
19         return QObject::eventFilter(obj,event);
20     }
21
22 private:
23     QWidget *prevFocusWidget;
24 };
25
26 int main(int argc, char *argv[]) {
27     qDebug() << "* Main QML";
28     QCoreApplication::setOrganizationName("linfati.com");
29     QCoreApplication::setOrganizationDomain("linfati.com");
30     QCoreApplication::setApplicationName("latitudeupdater");
31
32     QApplication lu(argc, argv);
33
34     LatitudeQML mygui;
35     EventFilter ef;
36     mygui.installEventFilter(&ef);
37     mygui.showFullScreen();
38
39     return lu.exec();
40 }