-rw-r--r-- | library/qpeapplication.cpp | 16 | ||||
-rw-r--r-- | library/qpeapplication.h | 2 | ||||
-rw-r--r-- | library/widget_showing.cpp | 9 |
3 files changed, 15 insertions, 12 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index dcc1001..34f5e6a 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -96,16 +96,17 @@ #ifndef QT_NO_SOUND #include <sys/soundcard.h> #endif #include <backend/rohfeedback.h> static bool useBigPixmaps = 0; +static bool saveWindowsPos = 0; class HackWidget : public QWidget { public: bool needsOk() { return (getWState() & WState_Reserved1 ); } QRect normalGeometry() @@ -124,16 +125,17 @@ public: { Config cfg( "qpe" ); cfg.setGroup( "Appearance" ); useBigPixmaps = cfg.readBoolEntry( "useBigPixmaps", false ); fontFamily = cfg.readEntry( "FontFamily", "Vera" ); fontSize = cfg.readNumEntry( "FontSize", 10 ); smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); + saveWindowsPos = cfg.readBoolEntry( "AllowWindowed", false ); #ifdef OPIE_WITHROHFEEDBACK RoH = 0; #endif } int presstimer; QWidget* presswidget; QPoint presspos; @@ -245,17 +247,18 @@ public: else mw->show(); } } } static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s) { -#ifndef OPIE_NO_WINDOWED + if (!saveWindowsPos) + return FALSE; maximized = TRUE; // 350 is the trigger in qwsdefaultdecoration for providing a resize button if ( qApp->desktop()->width() <= 350 ) return FALSE; Config cfg( "qpe" ); cfg.setGroup("ApplicationPositions"); QString str = cfg.readEntry( app, QString::null ); @@ -267,18 +270,16 @@ public: s.setWidth( l[2].toInt() ); s.setHeight( l[3].toInt() ); maximized = l[4].toInt(); return TRUE; } -#endif - return FALSE; } static bool validate_widget_size(const QWidget *w, QPoint &p, QSize &s) { #ifndef Q_WS_QWS QRect qt_maxWindowRect = qApp->desktop()->geometry(); #endif @@ -317,17 +318,18 @@ public: return TRUE; } static void store_widget_rect(QWidget *w, QString &app) { if( !w ) return; -#ifndef OPIE_NO_WINDOWED + if (!saveWindowsPos) + return; // 350 is the trigger in qwsdefaultdecoration for providing a resize button if ( qApp->desktop()->width() <= 350 ) return; // we use these to map the offset of geometry and pos. ( we can only use normalGeometry to // get the non-maximized version, so we have to do it the hard way ) int offsetX = w->x() - w->geometry().left(); int offsetY = w->y() - w->geometry().top(); @@ -338,17 +340,16 @@ public: r = w->geometry(); // Stores the window placement as pos(), size() (due to the offset mapping) Config cfg( "qpe" ); cfg.setGroup("ApplicationPositions"); QString s; s.sprintf("%d,%d,%d,%d,%d", r.left() + offsetX, r.top() + offsetY, r.width(), r.height(), w->isMaximized() ); cfg.writeEntry( app, s ); -#endif } static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) { /* // This works but disable it for now until it is safe to apply // What is does is scan the .desktop files of all the apps for // the applnk that has the corresponding argv[0] as this program @@ -2202,16 +2203,21 @@ void QPEApplication::hideOrQuit() e << d->appName; d->qpe_main_widget->hide(); } #endif else quit(); } +bool QPEApplication::isSaveWindowsPos() +{ + return saveWindowsPos; +} + #if (__GNUC__ > 2 ) && !defined(_OS_MACX_) extern "C" void __cxa_pure_virtual(); void __cxa_pure_virtual() { fprintf( stderr, "Pure virtual called\n"); abort(); diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 6486cad..7c99a9a 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h @@ -132,16 +132,18 @@ public: static void setKeepRunning(); bool keepRunning() const; bool keyboardGrabbed() const; int exec(); + static bool isSaveWindowsPos(); + signals: void clientMoused(); void timeChanged(); void clockChanged( bool pm ); void micChanged( bool muted ); void volumeChanged( bool muted ); void appMessage( const QCString& msg, const QByteArray& data); void weekChanged( bool startOnMonday ); diff --git a/library/widget_showing.cpp b/library/widget_showing.cpp index e43a16a..cc1bfb2 100644 --- a/library/widget_showing.cpp +++ b/library/widget_showing.cpp @@ -47,23 +47,18 @@ int QPEApplication::execDialog( QDialog* d, bool nomax ) } void QPEApplication::showWidget( QWidget* wg, bool nomax ) { if ( wg->isVisible() ) { wg->show(); return; } -#ifdef OPIE_NO_WINDOWED - Q_UNUSED( nomax ) - if ( TRUE ) { -#else - if ( !nomax - && ( qApp->desktop()->width() <= 320 ) ){ -#endif + if ( !isSaveWindowsPos() || (!nomax + && ( qApp->desktop()->width() <= 30 )) ){ wg->showMaximized(); } else { #ifdef Q_WS_QWS QSize desk = QSize( qApp->desktop()->width(), qApp->desktop()->height() ); #else QSize desk = QSize( qt_maxWindowRect.width(), qt_maxWindowRect.height() ); #endif |