summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 86aa53d..4d0b0ea 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -77,92 +77,97 @@
77#ifdef QWS 77#ifdef QWS
78#include "fontmanager.h" 78#include "fontmanager.h"
79#endif 79#endif
80 80
81#include "alarmserver.h" 81#include "alarmserver.h"
82#include "applnk.h" 82#include "applnk.h"
83#include "qpemenubar.h" 83#include "qpemenubar.h"
84#include "textcodecinterface.h" 84#include "textcodecinterface.h"
85#include "imagecodecinterface.h" 85#include "imagecodecinterface.h"
86 86
87#include <unistd.h> 87#include <unistd.h>
88#include <sys/file.h> 88#include <sys/file.h>
89#include <sys/ioctl.h> 89#include <sys/ioctl.h>
90#include <sys/soundcard.h> 90#include <sys/soundcard.h>
91 91
92#include "qt_override_p.h" 92#include "qt_override_p.h"
93 93
94 94
95class QPEApplicationData 95class QPEApplicationData
96{ 96{
97public: 97public:
98 QPEApplicationData ( ) 98 QPEApplicationData ( )
99 : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), 99 : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ),
100 notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), 100 notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ),
101 keep_running( true ), qpe_main_widget( 0 ) 101 keep_running( true ), qpe_main_widget( 0 ), qcopQok( false )
102 102
103 { 103 {
104 qcopq.setAutoDelete( TRUE ); 104 qcopq.setAutoDelete( TRUE );
105 } 105 }
106 106
107 int presstimer; 107 int presstimer;
108 QWidget* presswidget; 108 QWidget* presswidget;
109 QPoint presspos; 109 QPoint presspos;
110 110
111 bool rightpressed : 1; 111 bool rightpressed : 1;
112 bool kbgrabbed : 1; 112 bool kbgrabbed : 1;
113 bool notbusysent : 1; 113 bool notbusysent : 1;
114 bool preloaded : 1; 114 bool preloaded : 1;
115 bool forceshow : 1; 115 bool forceshow : 1;
116 bool nomaximize : 1; 116 bool nomaximize : 1;
117 bool qcopQok : 1;
117 bool keep_running : 1; 118 bool keep_running : 1;
118 119
120
119 QStringList langs; 121 QStringList langs;
120 QString appName; 122 QString appName;
121 struct QCopRec 123 struct QCopRec
122 { 124 {
123 QCopRec( const QCString &ch, const QCString &msg, 125 QCopRec( const QCString &ch, const QCString &msg,
124 const QByteArray &d ) : 126 const QByteArray &d ) :
125 channel( ch ), message( msg ), data( d ) 127 channel( ch ), message( msg ), data( d )
126 { } 128 { }
127 129
128 QCString channel; 130 QCString channel;
129 QCString message; 131 QCString message;
130 QByteArray data; 132 QByteArray data;
131 }; 133 };
132 QWidget* qpe_main_widget; 134 QWidget* qpe_main_widget;
133 QGuardedPtr<QWidget> lastraised; 135 QGuardedPtr<QWidget> lastraised;
134 QList<QCopRec> qcopq; 136 QList<QCopRec> qcopq;
135 QString styleName; 137 QString styleName;
136 QString decorationName; 138 QString decorationName;
137 139
138 void enqueueQCop( const QCString &ch, const QCString &msg, 140 void enqueueQCop( const QCString &ch, const QCString &msg,
139 const QByteArray &data ) 141 const QByteArray &data )
140 { 142 {
141 qcopq.append( new QCopRec( ch, msg, data ) ); 143 qcopq.append( new QCopRec( ch, msg, data ) );
142 } 144 }
143 void sendQCopQ() 145 void sendQCopQ()
144 { 146 {
147 if (!qcopQok )
148 return;
149
145 QCopRec * r; 150 QCopRec * r;
146#ifndef QT_NO_COP 151#ifndef QT_NO_COP
147 152
148 for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it ) 153 for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it )
149 QCopChannel::sendLocally( r->channel, r->message, r->data ); 154 QCopChannel::sendLocally( r->channel, r->message, r->data );
150#endif 155#endif
151 156
152 qcopq.clear(); 157 qcopq.clear();
153 } 158 }
154 static void show_mx(QWidget* mw, bool nomaximize, const QString & = QString::null ) 159 static void show_mx(QWidget* mw, bool nomaximize, const QString & = QString::null )
155 { 160 {
156 161
157 // ugly hack, remove that later after finding a sane solution 162 // ugly hack, remove that later after finding a sane solution
158 // Addendum: Only Sharp currently has models with high resolution but (physically) small displays, 163 // Addendum: Only Sharp currently has models with high resolution but (physically) small displays,
159 // so this is only useful if QT_QWS_SIMPAD is NOT defined. E.g. SIMpad has 800x600 but has 164 // so this is only useful if QT_QWS_SIMPAD is NOT defined. E.g. SIMpad has 800x600 but has
160 // a (physically) large enough display to use the small icons 165 // a (physically) large enough display to use the small icons
161#ifndef QT_QWS_SIMPAD 166#ifndef QT_QWS_SIMPAD
162 if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) { 167 if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) {
163 ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true ); 168 ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true );
164 } 169 }
165#endif 170#endif
166 171
167 if ( mw->layout() && mw->inherits("QDialog") ) { 172 if ( mw->layout() && mw->inherits("QDialog") ) {
168 QPEApplication::showDialog((QDialog*)mw, nomaximize); 173 QPEApplication::showDialog((QDialog*)mw, nomaximize);
@@ -1872,48 +1877,49 @@ bool QPEApplication::keyboardGrabbed() const
1872void QPEApplication::ungrabKeyboard() 1877void QPEApplication::ungrabKeyboard()
1873{ 1878{
1874 ((QPEApplication *) qApp )-> d-> kbgrabbed = false; 1879 ((QPEApplication *) qApp )-> d-> kbgrabbed = false;
1875} 1880}
1876 1881
1877/*! 1882/*!
1878 Grabs the physical keyboard keys, e.g. the application's launching 1883 Grabs the physical keyboard keys, e.g. the application's launching
1879 keys. Instead of launching applications when these keys are pressed 1884 keys. Instead of launching applications when these keys are pressed
1880 the signals emitted are sent to this application instead. Some games 1885 the signals emitted are sent to this application instead. Some games
1881 programs take over the launch keys in this way to make interaction 1886 programs take over the launch keys in this way to make interaction
1882 easier. 1887 easier.
1883 1888
1884 \sa ungrabKeyboard() 1889 \sa ungrabKeyboard()
1885*/ 1890*/
1886void QPEApplication::grabKeyboard() 1891void QPEApplication::grabKeyboard()
1887{ 1892{
1888 ((QPEApplication *) qApp )-> d-> kbgrabbed = true; 1893 ((QPEApplication *) qApp )-> d-> kbgrabbed = true;
1889} 1894}
1890 1895
1891/*! 1896/*!
1892 \reimp 1897 \reimp
1893*/ 1898*/
1894int QPEApplication::exec() 1899int QPEApplication::exec()
1895{ 1900{
1901 d->qcopQok = true;
1896#ifndef QT_NO_COP 1902#ifndef QT_NO_COP
1897 d->sendQCopQ(); 1903 d->sendQCopQ();
1898#endif 1904#endif
1899 1905
1900 if ( d->keep_running ) 1906 if ( d->keep_running )
1901 //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() ) 1907 //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() )
1902 return QApplication::exec(); 1908 return QApplication::exec();
1903 1909
1904#ifndef QT_NO_COP 1910#ifndef QT_NO_COP
1905 1911
1906 { 1912 {
1907 QCopEnvelope e( "QPE/System", "closing(QString)" ); 1913 QCopEnvelope e( "QPE/System", "closing(QString)" );
1908 e << d->appName; 1914 e << d->appName;
1909 } 1915 }
1910#endif 1916#endif
1911 processEvents(); 1917 processEvents();
1912 return 0; 1918 return 0;
1913} 1919}
1914 1920
1915/*! 1921/*!
1916 \internal 1922 \internal
1917 External request for application to quit. Quits if possible without 1923 External request for application to quit. Quits if possible without
1918 loosing state. 1924 loosing state.
1919*/ 1925*/