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 19adb00..22d222a 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -104,99 +104,104 @@ public:
104 104
105 int presstimer; 105 int presstimer;
106 QWidget* presswidget; 106 QWidget* presswidget;
107 QPoint presspos; 107 QPoint presspos;
108 108
109 bool rightpressed : 1; 109 bool rightpressed : 1;
110 bool kbgrabbed : 1; 110 bool kbgrabbed : 1;
111 bool notbusysent : 1; 111 bool notbusysent : 1;
112 bool preloaded : 1; 112 bool preloaded : 1;
113 bool forceshow : 1; 113 bool forceshow : 1;
114 bool nomaximize : 1; 114 bool nomaximize : 1;
115 bool keep_running : 1; 115 bool keep_running : 1;
116 116
117 QString appName; 117 QString appName;
118 struct QCopRec 118 struct QCopRec
119 { 119 {
120 QCopRec( const QCString &ch, const QCString &msg, 120 QCopRec( const QCString &ch, const QCString &msg,
121 const QByteArray &d ) : 121 const QByteArray &d ) :
122 channel( ch ), message( msg ), data( d ) 122 channel( ch ), message( msg ), data( d )
123 { } 123 { }
124 124
125 QCString channel; 125 QCString channel;
126 QCString message; 126 QCString message;
127 QByteArray data; 127 QByteArray data;
128 }; 128 };
129 QWidget* qpe_main_widget; 129 QWidget* qpe_main_widget;
130 QList<QCopRec> qcopq; 130 QList<QCopRec> qcopq;
131 131
132 void enqueueQCop( const QCString &ch, const QCString &msg, 132 void enqueueQCop( const QCString &ch, const QCString &msg,
133 const QByteArray &data ) 133 const QByteArray &data )
134 { 134 {
135 qcopq.append( new QCopRec( ch, msg, data ) ); 135 qcopq.append( new QCopRec( ch, msg, data ) );
136 } 136 }
137 void sendQCopQ() 137 void sendQCopQ()
138 { 138 {
139 QCopRec * r; 139 QCopRec * r;
140#ifndef QT_NO_COP 140#ifndef QT_NO_COP
141 141
142 for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it ) 142 for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it )
143 QCopChannel::sendLocally( r->channel, r->message, r->data ); 143 QCopChannel::sendLocally( r->channel, r->message, r->data );
144#endif 144#endif
145 145
146 qcopq.clear(); 146 qcopq.clear();
147 } 147 }
148 static void show_mx(QWidget* mw, bool nomaximize) 148 static void show_mx(QWidget* mw, bool nomaximize)
149 { 149 {
150 150
151 // ugly hack, remove that later after finding a sane solution 151 // ugly hack, remove that later after finding a sane solution
152 // Addendum: Only Sharp currently has models with high resolution but (physically) small displays,
153 // so this is only useful if QT_QWS_SHARP is defined. E.g. SIMpad has 800x600 but has
154 // a (physically) large enough display to use the small icons
155 #ifdef QT_QWS_SHARP
152 if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) { 156 if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) {
153 ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true ); 157 ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true );
154 } 158 }
159 #endif
155 160
156 if ( mw->layout() && mw->inherits("QDialog") ) { 161 if ( mw->layout() && mw->inherits("QDialog") ) {
157 QPEApplication::showDialog((QDialog*)mw, nomaximize); 162 QPEApplication::showDialog((QDialog*)mw, nomaximize);
158 } 163 }
159 else { 164 else {
160#ifdef Q_WS_QWS 165#ifdef Q_WS_QWS
161 if ( !nomaximize ) 166 if ( !nomaximize )
162 mw->showMaximized(); 167 mw->showMaximized();
163 else 168 else
164#endif 169#endif
165 170
166 mw->show(); 171 mw->show();
167 } 172 }
168 } 173 }
169 static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) 174 static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ )
170 { 175 {
171 /* 176 /*
172 // This works but disable it for now until it is safe to apply 177 // This works but disable it for now until it is safe to apply
173 // What is does is scan the .desktop files of all the apps for 178 // What is does is scan the .desktop files of all the apps for
174 // the applnk that has the corresponding argv[0] as this program 179 // the applnk that has the corresponding argv[0] as this program
175 // then it uses the name stored in the .desktop file as the caption 180 // then it uses the name stored in the .desktop file as the caption
176 // for the main widget. This saves duplicating translations for 181 // for the main widget. This saves duplicating translations for
177 // the app name in the program and in the .desktop files. 182 // the app name in the program and in the .desktop files.
178 183
179 AppLnkSet apps( appsPath ); 184 AppLnkSet apps( appsPath );
180 185
181 QList<AppLnk> appsList = apps.children(); 186 QList<AppLnk> appsList = apps.children();
182 for ( QListIterator<AppLnk> it(appsList); it.current(); ++it ) { 187 for ( QListIterator<AppLnk> it(appsList); it.current(); ++it ) {
183 if ( (*it)->exec() == appName ) { 188 if ( (*it)->exec() == appName ) {
184 mw->setCaption( (*it)->name() ); 189 mw->setCaption( (*it)->name() );
185 return TRUE; 190 return TRUE;
186 } 191 }
187 } 192 }
188 */ 193 */
189 return FALSE; 194 return FALSE;
190 } 195 }
191 196
192 197
193 void show(QWidget* mw, bool nomax) 198 void show(QWidget* mw, bool nomax)
194 { 199 {
195 setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" ); 200 setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" );
196 nomaximize = nomax; 201 nomaximize = nomax;
197 qpe_main_widget = mw; 202 qpe_main_widget = mw;
198#ifndef QT_NO_COP 203#ifndef QT_NO_COP
199 204
200 sendQCopQ(); 205 sendQCopQ();
201#endif 206#endif
202 207
@@ -477,108 +482,109 @@ static void setTreble( int t = 0, int percent = -1 )
477 \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) 482 \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data )
478 483
479 This signal is emitted when a message is received on this 484 This signal is emitted when a message is received on this
480 application's QPE/Application/<i>appname</i> \link qcop.html 485 application's QPE/Application/<i>appname</i> \link qcop.html
481 QCop\endlink channel. 486 QCop\endlink channel.
482 487
483 The slot to which you connect this signal uses \a msg and \a data 488 The slot to which you connect this signal uses \a msg and \a data
484 in the following way: 489 in the following way:
485 490
486\code 491\code
487 void MyWidget::receive( const QCString& msg, const QByteArray& data ) 492 void MyWidget::receive( const QCString& msg, const QByteArray& data )
488 { 493 {
489 QDataStream stream( data, IO_ReadOnly ); 494 QDataStream stream( data, IO_ReadOnly );
490 if ( msg == "someMessage(int,int,int)" ) { 495 if ( msg == "someMessage(int,int,int)" ) {
491 int a,b,c; 496 int a,b,c;
492 stream >> a >> b >> c; 497 stream >> a >> b >> c;
493 ... 498 ...
494 } else if ( msg == "otherMessage(QString)" ) { 499 } else if ( msg == "otherMessage(QString)" ) {
495 ... 500 ...
496 } 501 }
497 } 502 }
498\endcode 503\endcode
499 504
500 \sa qcop.html 505 \sa qcop.html
501 Note that messages received here may be processed by qpe application 506 Note that messages received here may be processed by qpe application
502 and emitted as signals, such as flush() and reload(). 507 and emitted as signals, such as flush() and reload().
503*/ 508*/
504 509
505/*! 510/*!
506 Constructs a QPEApplication just as you would construct 511 Constructs a QPEApplication just as you would construct
507 a QApplication, passing \a argc, \a argv, and \a t. 512 a QApplication, passing \a argc, \a argv, and \a t.
508 513
509 For applications, \a t should be the default, GuiClient. Only 514 For applications, \a t should be the default, GuiClient. Only
510 the Qtopia server passes GuiServer. 515 the Qtopia server passes GuiServer.
511*/ 516*/
512QPEApplication::QPEApplication( int & argc, char **argv, Type t ) 517QPEApplication::QPEApplication( int & argc, char **argv, Type t )
513 : QApplication( argc, argv, t ) 518 : QApplication( argc, argv, t )
514{ 519{
515 d = new QPEApplicationData; 520 d = new QPEApplicationData;
516 d->loadTextCodecs(); 521 d->loadTextCodecs();
517 d->loadImageCodecs(); 522 d->loadImageCodecs();
518 int dw = desktop() ->width(); 523 int dw = desktop() ->width();
519 524
520 if ( dw < 200 ) { 525 if ( dw < 200 ) {
521 setFont( QFont( "vera", 8 ) ); 526 setFont( QFont( "vera", 8 ) );
522 AppLnk::setSmallIconSize( 10 ); 527 AppLnk::setSmallIconSize( 10 );
523 AppLnk::setBigIconSize( 28 ); 528 AppLnk::setBigIconSize( 28 );
524 } 529 }
530 #ifdef QT_QWS_SHARP
525 else if ( dw > 600 ) { 531 else if ( dw > 600 ) {
526 setFont( QFont( "vera", 16 ) ); 532 setFont( QFont( "vera", 16 ) );
527 AppLnk::setSmallIconSize( 24 ); 533 AppLnk::setSmallIconSize( 24 );
528 AppLnk::setBigIconSize( 48 ); 534 AppLnk::setBigIconSize( 48 );
529 } 535 }
536 #endif
530 else if ( dw > 200 ) { 537 else if ( dw > 200 ) {
531 setFont( QFont( "vera", 10 ) ); 538 setFont( QFont( "vera", 10 ) );
532 AppLnk::setSmallIconSize( 14 ); 539 AppLnk::setSmallIconSize( 14 );
533 AppLnk::setBigIconSize( 32 ); 540 AppLnk::setBigIconSize( 32 );
534 } 541 }
535 542
536
537 QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); 543 QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory );
538 544
539 connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); 545 connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) );
540#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 546#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
541 547
542 QString qcopfn( "/tmp/qcop-msg-" ); 548 QString qcopfn( "/tmp/qcop-msg-" );
543 qcopfn += QString( argv[ 0 ] ); // append command name 549 qcopfn += QString( argv[ 0 ] ); // append command name
544 550
545 QFile f( qcopfn ); 551 QFile f( qcopfn );
546 if ( f.open( IO_ReadOnly ) ) { 552 if ( f.open( IO_ReadOnly ) ) {
547 flock( f.handle(), LOCK_EX ); 553 flock( f.handle(), LOCK_EX );
548 } 554 }
549 555
550 sysChannel = new QCopChannel( "QPE/System", this ); 556 sysChannel = new QCopChannel( "QPE/System", this );
551 connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), 557 connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ),
552 this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) ); 558 this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) );
553 559
554 QCString channel = QCString( argv[ 0 ] ); 560 QCString channel = QCString( argv[ 0 ] );
555 channel.replace( QRegExp( ".*/" ), "" ); 561 channel.replace( QRegExp( ".*/" ), "" );
556 d->appName = channel; 562 d->appName = channel;
557 channel = "QPE/Application/" + channel; 563 channel = "QPE/Application/" + channel;
558 pidChannel = new QCopChannel( channel, this ); 564 pidChannel = new QCopChannel( channel, this );
559 connect( pidChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), 565 connect( pidChannel, SIGNAL( received( const QCString &, const QByteArray & ) ),
560 this, SLOT( pidMessage( const QCString &, const QByteArray & ) ) ); 566 this, SLOT( pidMessage( const QCString &, const QByteArray & ) ) );
561 567
562 if ( f.isOpen() ) { 568 if ( f.isOpen() ) {
563 d->keep_running = FALSE; 569 d->keep_running = FALSE;
564 QDataStream ds( &f ); 570 QDataStream ds( &f );
565 QCString channel, message; 571 QCString channel, message;
566 QByteArray data; 572 QByteArray data;
567 while ( !ds.atEnd() ) { 573 while ( !ds.atEnd() ) {
568 ds >> channel >> message >> data; 574 ds >> channel >> message >> data;
569 d->enqueueQCop( channel, message, data ); 575 d->enqueueQCop( channel, message, data );
570 } 576 }
571 577
572 flock( f.handle(), LOCK_UN ); 578 flock( f.handle(), LOCK_UN );
573 f.close(); 579 f.close();
574 f.remove(); 580 f.remove();
575 } 581 }
576 582
577 for ( int a = 0; a < argc; a++ ) { 583 for ( int a = 0; a < argc; a++ ) {
578 if ( qstrcmp( argv[ a ], "-preload" ) == 0 ) { 584 if ( qstrcmp( argv[ a ], "-preload" ) == 0 ) {
579 argv[ a ] = argv[ a + 1 ]; 585 argv[ a ] = argv[ a + 1 ];
580 a++; 586 a++;
581 d->preloaded = TRUE; 587 d->preloaded = TRUE;
582 argc -= 1; 588 argc -= 1;
583 } 589 }
584 else if ( qstrcmp( argv[ a ], "-preload-show" ) == 0 ) { 590 else if ( qstrcmp( argv[ a ], "-preload-show" ) == 0 ) {