author | llornkcor <llornkcor> | 2004-04-25 08:45:33 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-04-25 08:45:33 (UTC) |
commit | fc1f0001f53f57b625f337a68532984959e6d8dd (patch) (side-by-side diff) | |
tree | c333201e13d7b17a64fcdb1af5805a8b19af6b73 /library/qpeapplication.cpp | |
parent | 73f0c227fc94bc4dea12e4eb2384bdff2e9561eb (diff) | |
download | opie-fc1f0001f53f57b625f337a68532984959e6d8dd.zip opie-fc1f0001f53f57b625f337a68532984959e6d8dd.tar.gz opie-fc1f0001f53f57b625f337a68532984959e6d8dd.tar.bz2 |
fix persistence in other widgets
-rw-r--r-- | library/qpeapplication.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 90cd5f1..ae1632e 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -170,37 +170,41 @@ public: #endif delete r; } } static void show_mx(QWidget* mw, bool nomaximize, QString &strName/* = QString::null */) { - if ( mw->isVisible() ) { - mw->raise(); - } else { QPoint p; QSize s; + bool max; + if ( mw->isVisible() ) { + if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { + mw->resize(s); + mw->move(p); + } + mw->raise(); + } else { if ( mw->layout() && mw->inherits("QDialog") ) { - bool max; if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { mw->resize(s); mw->move(p); - if ( max && !nomaximize ) + if ( max && !nomaximize ) { mw->showMaximized(); - else + } else { mw->show(); + } } else { - qpe_show_dialog((QDialog*)mw,nomaximize); + qpe_show_dialog((QDialog*)mw,nomaximize); } } else { - bool max; if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { mw->resize(s); mw->move(p); } else { //no stored rectangle, make an estimation int x = (qApp->desktop()->width()-mw->frameGeometry().width())/2; int y = (qApp->desktop()->height()-mw->frameGeometry().height())/2; mw->move( QMAX(x,0), QMAX(y,0) ); #ifdef Q_WS_QWS @@ -297,17 +301,17 @@ static void qpe_show_dialog( QDialog* d, bool nomax ) d->show(); } } static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s) { maximized = TRUE; - + qDebug("read_widget_rect"); // 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 ); QStringList l = QStringList::split(",", str); @@ -369,17 +373,17 @@ static void qpe_show_dialog( QDialog* d, bool nomax ) return TRUE; } static void store_widget_rect(QWidget *w, QString &app) { // 350 is the trigger in qwsdefaultdecoration for providing a resize button if ( qApp->desktop()->width() <= 350 ) return; - + qDebug("store_widget_rect"); // 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(); QRect r; if ( w->isMaximized() ) r = ( (HackWidget *) w)->normalGeometry(); |