From a50334dddaa542fd63726a639e852c30036f53a0 Mon Sep 17 00:00:00 2001 From: zecke Date: Mon, 20 Dec 2004 22:11:44 +0000 Subject: Restore Files: -QWSDecoration scaling fixes by mickeyl -Readd macros for DEPRECATED and VISIBILITY -Move out showWidget and execDialog to widget_sowing.cpp -QPE_EXPORT_SYMBOL for Q_EXPORT_INTERFACE -Deprecated for FileSelector, QPEMenubar and Toolbar --- (limited to 'library') diff --git a/library/fileselector.h b/library/fileselector.h index e3ae891..f1738db 100644 --- a/library/fileselector.h +++ b/library/fileselector.h @@ -25,6 +25,7 @@ #include #include +#include "qpeglobal.h" #include "filemanager.h" #include "applnk.h" @@ -53,7 +54,7 @@ public: FileSelector( const QString &mimefilter, QWidget *parent, const char *name=0, bool newVisible = TRUE, bool closeVisible = TRUE ); ~FileSelector(); void setNewVisible( bool b ); - void setCloseVisible( bool b ); + void setCloseVisible( bool b ) QPE_DEPRECATED; void setTypeComboVisible( bool b = TRUE ); void setCategorySelectVisible( bool b = TRUE ); void reread(); @@ -105,7 +106,7 @@ private: private: // RESOLVE please -zecke@handhelds.org - const DocLnk *selected(); // use selectedDocument() luckily no compiler is putting the access into the symbol name + const DocLnk *selected() QPE_DEPRECATED; // use selectedDocument() luckily no compiler is putting the access into the symbol name FileSelectorView *view; QString filter; QToolButton *buttonNew, *buttonClose; diff --git a/library/library.pro b/library/library.pro index cdc1dab..45e69bc 100644 --- a/library/library.pro +++ b/library/library.pro @@ -117,7 +117,8 @@ SOURCES = calendar.cpp \ findwidget_p.cpp \ finddialog.cpp \ lnkproperties.cpp \ - qt_override.cpp + qt_override.cpp \ + widget_showing.cpp diff --git a/library/qcom.h b/library/qcom.h index 9972d8f..5703800 100644 --- a/library/qcom.h +++ b/library/qcom.h @@ -26,6 +26,7 @@ #ifndef QT_NO_COMPONENT #include +#include #define QRESULT unsigned long #define QS_OK (QRESULT)0x00000000 @@ -151,7 +152,7 @@ struct Q_EXPORT QtULong }; #define Q_EXPORT_INTERFACE() \ - extern "C" QUnknownInterface* ucm_instantiate() + extern "C" QUnknownInterface* ucm_instantiate QPE_EXPORT_SYMBOL () #define Q_REFCOUNT \ private: \ diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 4adfc8f..43a9be5 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -198,55 +198,55 @@ public: } } - static void show_mx(QWidget* mw, bool nomaximize, QString &strName) - { - if ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) - { - ( ( QMainWindow* ) mw )->setUsesBigPixmaps( useBigPixmaps ); - } + static void show_mx(QWidget* mw, bool nomaximize, QString &strName) { + if ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) + { + ( ( QMainWindow* ) mw )->setUsesBigPixmaps( useBigPixmaps ); + } 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") ) { - if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { - mw->resize(s); - mw->move(p); + 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 ( max && !nomaximize ) { - mw->showMaximized(); - } else { - mw->show(); + if ( mw->layout() && mw->inherits("QDialog") ) { + if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { + mw->resize(s); + mw->move(p); + + if ( max && !nomaximize ) { + mw->showMaximized(); + } else { + mw->show(); + } + } else { + QPEApplication::showDialog((QDialog*)mw,nomaximize); } - } else { - QPEApplication::showDialog((QDialog*)mw,nomaximize); - } - } else { - 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) ); + } else { + 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 - if ( !nomaximize ) - mw->showMaximized(); + if ( !nomaximize ) + mw->showMaximized(); #endif + } + if ( max && !nomaximize ) + mw->showMaximized(); + else + mw->show(); + } } - if ( max && !nomaximize ) - mw->showMaximized(); - else - mw->show(); - } - } } static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s) diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 579fc44..00d3d31 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h @@ -31,6 +31,7 @@ #endif #include "qpedecoration_qws.h" #include "timestring.h" +#include "qpeglobal.h" class QCopChannel; class QPEApplicationData; @@ -120,9 +121,10 @@ public: void showMainWidget( QWidget*, bool nomax=FALSE ); void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); - static void showDialog( QDialog*, bool nomax=FALSE ); - static int execDialog( QDialog*, bool nomax=FALSE ); - static void showWidget( QWidget*, bool nomax=FALSE ); + + static void showDialog( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; + static int execDialog ( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; + static void showWidget( QWidget*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; /* Merge setTempScreenSaverMode */ #ifdef QTOPIA_INTERNAL_INITAPP void initApp( int argv, char **argv ); @@ -183,50 +185,7 @@ private: }; -inline void QPEApplication::showDialog( QDialog* d, bool nomax ) -{ - showWidget( d, nomax ); -} -inline int QPEApplication::execDialog( QDialog* d, bool nomax ) -{ - showDialog( d, nomax ); - return d->exec(); -} - -#ifdef Q_WS_QWS -extern Q_EXPORT QRect qt_maxWindowRect; -#endif - -inline void QPEApplication::showWidget( QWidget* wg, bool nomax ) -{ - if ( wg->isVisible() ) - wg->show(); - else - { - if ( !nomax - && ( qApp->desktop()->width() <= 320 ) ) - { - 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 - - QSize sh = wg->sizeHint(); - int w = QMAX( sh.width(), wg->width() ); - int h = QMAX( sh.height(), wg->height() ); - // desktop widget-frame taskbar - w = QMIN( w, ( desk.width() - ( wg->frameGeometry().width() - wg->geometry().width() ) - 25 ) ); - h = QMIN( h, ( desk.height() - ( wg->frameGeometry().height() - wg->geometry().height() ) - 25 ) ); - - wg->resize( w, h ); - wg->show(); - } - } -} enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ @@ -262,4 +221,11 @@ inline void QPEApplication::setCurrentRotation( int r ) } +/* + * -remove me + */ +#ifdef Q_WS_QWS +extern Q_EXPORT QRect qt_maxWindowRect; +#endif + #endif diff --git a/library/qpedecoration_qws.cpp b/library/qpedecoration_qws.cpp index 8b02de6..fa38180 100644 --- a/library/qpedecoration_qws.cpp +++ b/library/qpedecoration_qws.cpp @@ -110,7 +110,8 @@ public: static QImage scaleButton( const QImage &img, int height ) { - if ( img.height() != 0 && img.height() != height ) { + //ML: We don't want to scale if the difference is less than 4 pixels to prevent blurring + if ( img.height() != 0 && ::abs( img.height()-height ) > 4 ) { return img.smoothScale( img.width()*height/img.height(), height ); } else { return img; diff --git a/library/qpeglobal.h b/library/qpeglobal.h index 96ce3a6..a84e435 100644 --- a/library/qpeglobal.h +++ b/library/qpeglobal.h @@ -1,6 +1,10 @@ /* -               =. This file is part of the OPIE Project -             .=l. Copyright (c) 2002,2003,2004 Holger Hans Peter Freyther + This file is part of the OPIE Project + Copyright (c) 2002,2003,2004 Holger Hans Peter Freyther + Copyright (c) 2002,2003,2004 Stefan Eilers + +               =. +             .=l.            .>+-=  _;:,     .>    :=|. This library is free software; you can .> <`_,   >  .   <= redistribute it and/or modify it under @@ -26,28 +30,57 @@ */ -#ifndef QPE_GLOBAL_H -#define QPE_GLOBAL_H +#ifndef QPE_GLOBAL_DEFINES_H +#define QPE_GLOBAL_DEFINES_H /** * Defines for used compiler attributes * */ + +/* + * commons + */ +#define QPE_DEPRECATED + + #if defined(Q_OS_MACX) #define QPE_WEAK_SYMBOL __attribute__((weak_import)) #define QPE_SYMBOL_USED #define QPE_SYMBOL_UNUSED +#define QPE_EXPORT_SYMBOL #elif defined(_OS_UNIX_) #define QPE_WEAK_SYMBOL __attribute__((weak)) #define QPE_SYMBOL_USED __attribute__((used)) #define QPE_SYMBOL_UNUSED __attribute__((unused)) +#define QPE_EXPORT_SYMBOL + + +/* + * mark method as deprecated + */ +#if __GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2) + /* gcc >= 3.2 */ +#undef QPE_DEPRECATED +#define QPE_DEPRECATED __attribute__((deprecated)) +#endif + +/* + * Defined if Compiler supports attributes + */ +#ifdef GCC_SUPPORTS_VISIBILITY +#undef QPE_EXPORT_SYMBOL +#define QPE_EXPORT_SYMBOL __attribute__((visibility("default"))) +#endif + #else // defined(Q_OS_WIN32) #define QPE_WEAK_SYMBOL #define QPE_SYMBOL_USED #define QPE_SYMBOL_UNUSED +#define QPE_EXPORT_SYMBOL #endif diff --git a/library/qpemenubar.h b/library/qpemenubar.h index 66d0c85..64bf39c 100644 --- a/library/qpemenubar.h +++ b/library/qpemenubar.h @@ -25,6 +25,8 @@ #include #include +#include + class QPEMenuToolFocusManager : public QObject { Q_OBJECT @@ -59,7 +61,7 @@ private: // Sharp ROM compatibility }; -class QPEMenuBar : public QMenuBar +class QPE_DEPRECATED QPEMenuBar : public QMenuBar { Q_OBJECT public: diff --git a/library/qpetoolbar.h b/library/qpetoolbar.h index 53d21c0..c894ec9 100644 --- a/library/qpetoolbar.h +++ b/library/qpetoolbar.h @@ -22,10 +22,11 @@ #define QPETOOLBAR_H #include +#include class QMainWindow; -class QPEToolBar : public QToolBar +class QPE_DEPRECATED QPEToolBar : public QToolBar { Q_OBJECT public: diff --git a/library/widget_showing.cpp b/library/widget_showing.cpp new file mode 100644 index 0000000..43ece64 --- a/dev/null +++ b/library/widget_showing.cpp @@ -0,0 +1,74 @@ +/* + This file is part of the OPIE Project + Copyright (c) 2004 Andreas Richter + Copyright (c) 2004 Holger Hans Peter Freyther +               =. +             .=l. +           .>+-= + _;:,     .>    :=|. This library is free software; you can +.> <`_,   >  .   <= redistribute it and/or modify it under +:`=1 )Y*s>-.--   : the terms of the GNU Library General Public +.="- .-=="i,     .._ License as published by the Free Software + - .   .-<_>     .<> Foundation; either version 2 of the License, +     ._= =}       : or (at your option) any later version. +    .%`+i>       _;_. +    .i_,=:_.      -`: PARTICULAR PURPOSE. See the GNU +..}^=.=       =       ; Library General Public License for more +++=   -.     .`     .: details. + :     =  ...= . :.=- + -.   .:....=;==+<; You should have received a copy of the GNU +  -_. . .   )=.  = Library General Public License along with +    --        :-=` this library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include + +#ifdef Q_WS_QWS +extern Q_EXPORT QRect qt_maxWindowRect; +#endif + +void QPEApplication::showDialog( QDialog* d, bool nomax ) +{ + showWidget( d, nomax ); +} + +int QPEApplication::execDialog( QDialog* d, bool nomax ) +{ + showDialog( d, nomax ); + return d->exec(); +} + +void QPEApplication::showWidget( QWidget* wg, bool nomax ) { + if ( wg->isVisible() ) { + wg->show(); + return; + } + + if ( !nomax + && ( qApp->desktop()->width() <= 320 ) ){ + 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 + + QSize sh = wg->sizeHint(); + int w = QMAX( sh.width(), wg->width() ); + int h = QMAX( sh.height(), wg->height() ); +// desktop widget-frame taskbar + w = QMIN( w, ( desk.width() - ( wg->frameGeometry().width() - wg->geometry().width() ) - 25 ) ); + h = QMIN( h, ( desk.height() - ( wg->frameGeometry().height() - wg->geometry().height() ) - 25 ) ); + wg->resize( w, h ); + wg->show(); + } +} -- cgit v0.9.0.2