From 074501c479de2e7e68c77054ef98b2b787021b55 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 1 Nov 2010 16:25:01 +0100 Subject: fix qdoc doc generation as a side effect, the target is now named html-docs instead of docs to be consistent with the qt docs. --- tools/qdoc3/qdoc3.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro index ae0bf25..d47e066 100644 --- a/tools/qdoc3/qdoc3.pro +++ b/tools/qdoc3/qdoc3.pro @@ -120,9 +120,9 @@ SOURCES += apigenerator.cpp \ qtPrepareTool(QDOC, qdoc3) -docs.commands = $$QDOC qdoc-manual.qdocconf +html-docs.commands = cd \"$$PWD/doc\" && $$QDOC qdoc-manual.qdocconf -QMAKE_EXTRA_TARGETS += docs +QMAKE_EXTRA_TARGETS += html-docs target.path = $$[QT_INSTALL_BINS] INSTALLS += target -- cgit v0.12 From 12120c47133642a0704799208701fd9164bf0ebf Mon Sep 17 00:00:00 2001 From: Frederik Schwarzer Date: Tue, 2 Nov 2010 12:45:09 +0100 Subject: german translation: minor additions + fixes Merge-request: 902 Reviewed-by: Oswald Buddenhagen --- translations/assistant_de.ts | 37 ++++++++++++++++++++++++++++++++----- translations/qt_de.ts | 4 ++-- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts index 95fabaf..3648fdd 100644 --- a/translations/assistant_de.ts +++ b/translations/assistant_de.ts @@ -67,7 +67,7 @@ Grund: Error reading collection file '%1': %2. - Fehler beim Lesen der Katalogdatei '%1': %2 + Fehler beim Lesen der Katalogdatei '%1': %2. Error creating collection file '%1': %2. @@ -741,7 +741,7 @@ Grund: Input File - Eingabedatei: + Datei eingeben Specify the .adp or .dcf file you want to convert to the new Qt help project format and/or collection format. @@ -989,7 +989,7 @@ Grund: <center><h3>%1</h3><p>Version %2</p></center><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p> - + <center><h3>%1</h3><p>Version %2</p></center><p>Copyright (C) 2010 Nokia Corporation und/oder ihre Tochtergesellschaft(en).</p> Could not register file '%1': %2 @@ -1354,7 +1354,19 @@ qcollectiongenerator <collection-config-file> [options] qcollectiongenerator. - + +Aufruf: + +qcollectiongenerator <collection-Konfigurationsdatei> [Optionen] + + -o <collection-Datei> Erstellt eine Collection-Datei mit + dem Namen <collection-Datei>. Wenn + diese Option nicht angegeben ist, wird + der Standardname verwendet. + -v Zeigt die Versionsnummer von + qcollectiongenerator an. + + Could not open %1. @@ -1435,7 +1447,22 @@ qhelpgenerator <help-project-file> [options] qhelpgenerator. - + +Aufruf: + +qhelpgenerator <Hilfe-Projektdatei> [Optionen] + -o <komprimierte-Datei> Erstellt eine komprimierte + Qt-Hilfedatei mit dem Namen + <komprimierte-Datei>. Wenn diese + Option nicht angegeben ist, wird + ein Standardname verwendet. + -c Prüft, ob alle Verknüpfungen in + HTML-Dateien auf Dateien in diesem + Hilfeprojekt verweisen. + -v Zeigt die Versionsnummer von + qhelpgenerator an. + + Could not open %1. diff --git a/translations/qt_de.ts b/translations/qt_de.ts index 3b9bbb0..d167434 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -3700,7 +3700,7 @@ Möchten Sie die Datei trotzdem löschen? <h3>About Qt</h3><p>This program uses Qt version %1.</p> - + <h3>Über Qt</h3><p>Dieses Programm verwendet Qt Version %1.</p> <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> @@ -5186,7 +5186,7 @@ Bitte wählen Sie einen anderen Dateinamen. Find &Previous - Vorhergehende Fundstelle + &Vorhergehende Fundstelle Shift+F3 -- cgit v0.12 From 576a2e2181a9615b8aa1984a924442622fa6922d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 2 Nov 2010 15:33:41 +0100 Subject: Fixed destination path for the S60 feedback plugin. Reviewed-by: axis --- src/plugins/s60/feedback/feedback.pro | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro index 32ddf6f..1069220 100644 --- a/src/plugins/s60/feedback/feedback.pro +++ b/src/plugins/s60/feedback/feedback.pro @@ -2,6 +2,8 @@ include(../../qpluginbase.pri) TARGET = qtactilefeedback$${QT_LIBINFIX} +QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback + INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) { -- cgit v0.12 From 7c8edecd486b71ff84cfaf278d9b1295e24766b9 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 2 Nov 2010 16:09:18 +0100 Subject: make the dtd reflect reality --- tools/linguist/shared/ts.dtd | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/tools/linguist/shared/ts.dtd b/tools/linguist/shared/ts.dtd index 4d2cdeb..12d3562 100644 --- a/tools/linguist/shared/ts.dtd +++ b/tools/linguist/shared/ts.dtd @@ -4,8 +4,6 @@ ! ! The location element is set as optional since it was introduced first in Qt 4.2. ! The userdata element is set as optional since it was introduced first in Qt 4.4. - ! The source and translation elements are optional starting with version 3.0 - ! (Qt 4.6) to support S60 blank messages. ! --> - + - - @@ -53,12 +48,13 @@ variants (yes|no) "no"> - - - -- cgit v0.12 From 6382a038d6394135a4dc2d8e1e47133d9ea0b659 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Wed, 3 Nov 2010 09:40:16 +0200 Subject: Qt/Symbian: QInputDialog layout and size are wrong The QInputDialog with anything but QLineEdit as the input widget, will show up as minimal size on device/emulator. Also, the dialog looks bad since the widgets are deployed very close to the dialog borders. As a fix, layout will not get the size policy set on Symbian, but the dialog itself is stretched to occupy screen width and thus, layout grows to occupy the available size. Additionally, style will set layout pixel metrics for dialogs larger than for other widgets, to avoid the layout from putting widgets very close to dialog border. Task-number: QTBUG-14331 Reviewed-by: Janne Anttila --- src/gui/dialogs/qdialog.cpp | 2 +- src/gui/dialogs/qinputdialog.cpp | 3 +++ src/gui/styles/qs60style.cpp | 22 ++++++++++++++++++++-- src/gui/styles/qs60style_p.h | 1 + 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp index 9e0437c..b7a0026 100644 --- a/src/gui/dialogs/qdialog.cpp +++ b/src/gui/dialogs/qdialog.cpp @@ -1111,7 +1111,7 @@ QSize QDialog::sizeHint() const // if size is not fixed, try to adjust it according to S60 layoutting if (minimumSize() != maximumSize()) { // In S60, dialogs are always the width of screen (in portrait, regardless of current layout) - return QSize(qMax(S60->screenHeightInPixels, S60->screenWidthInPixels), QWidget::sizeHint().height()); + return QSize(qMin(S60->screenHeightInPixels, S60->screenWidthInPixels), QWidget::sizeHint().height()); } else { return QWidget::sizeHint(); } diff --git a/src/gui/dialogs/qinputdialog.cpp b/src/gui/dialogs/qinputdialog.cpp index 700b234..abaaa49 100644 --- a/src/gui/dialogs/qinputdialog.cpp +++ b/src/gui/dialogs/qinputdialog.cpp @@ -231,7 +231,10 @@ void QInputDialogPrivate::ensureLayout() QObject::connect(buttonBox, SIGNAL(rejected()), q, SLOT(reject())); mainLayout = new QVBoxLayout(q); + //we want to let the input dialog grow to available size on Symbian. +#ifndef Q_OS_SYMBIAN mainLayout->setSizeConstraint(QLayout::SetMinAndMaxSize); +#endif mainLayout->addWidget(label); mainLayout->addWidget(inputWidget); mainLayout->addWidget(buttonBox); diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index d39a2ba..53ca28c 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -112,6 +112,8 @@ const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { // *** End of generated data *** }; +QSet *QS60StylePrivate::m_autoFillDisabledWidgets = 0; + const short *QS60StylePrivate::m_pmPointer = QS60StylePrivate::data[0]; // theme background texture @@ -152,6 +154,8 @@ const double KTabFontMul = 0.72; QS60StylePrivate::~QS60StylePrivate() { + delete m_autoFillDisabledWidgets; + m_autoFillDisabledWidgets = 0; clearCaches(); //deletes also background image deleteThemePalette(); #ifdef Q_WS_S60 @@ -2521,9 +2525,9 @@ int QS60Style::pixelMetric(PixelMetric metric, const QStyleOption *option, const metricValue = QS60StylePrivate::pixelMetric(PM_LayoutLeftMargin); } - if (widget && (metric == PM_LayoutTopMargin)) + if (widget && (metric == PM_LayoutTopMargin || metric == PM_LayoutLeftMargin || metric == PM_LayoutRightMargin)) if (widget->windowType() == Qt::Dialog) - //double the top layout margin for dialogs, it is very close to real value + //double the layout margins (except bottom) for dialogs, it is very close to real value //without having to define custom pixel metric metricValue *= 2; @@ -3184,6 +3188,13 @@ void QS60Style::polish(QWidget *widget) } d->setThemePalette(widget); d->setFont(widget); + + if (widget->autoFillBackground()) { + if (!d->m_autoFillDisabledWidgets) + d->m_autoFillDisabledWidgets = new QSet; + widget->setAutoFillBackground(false); + d->m_autoFillDisabledWidgets->insert(widget); + } } /*! @@ -3218,6 +3229,13 @@ void QS60Style::unpolish(QWidget *widget) if (widget) widget->setPalette(QPalette()); + + if (d->m_autoFillDisabledWidgets && + !d->m_autoFillDisabledWidgets->isEmpty() && + d->m_autoFillDisabledWidgets->contains(widget)) { + widget->setAutoFillBackground(true); + d->m_autoFillDisabledWidgets->remove(widget); + } #if defined(Q_WS_S60) && !defined(QT_NO_PROGRESSBAR) if (QProgressBar *bar = qobject_cast(widget)) { diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index b46f75e..3d66c40 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -625,6 +625,7 @@ private: static qint64 m_webPaletteKey; static QPointer m_pressedWidget; + static QSet *m_autoFillDisabledWidgets; #ifdef Q_WS_S60 //list of progress bars having animation running -- cgit v0.12 From 0b9aa12659d5ea6b15fe72f963cc98db9af585fc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 3 Nov 2010 16:39:25 +0100 Subject: Document the difference between +0.0 and -0.0 for QPointF and QSizeF. Reviewed-by: Robert Griebl --- src/corelib/tools/qpoint.cpp | 6 +++++- src/corelib/tools/qsize.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp index 66f06e9..c297709 100644 --- a/src/corelib/tools/qpoint.cpp +++ b/src/corelib/tools/qpoint.cpp @@ -438,8 +438,12 @@ QDebug operator<<(QDebug d, const QPointF &p) /*! \fn bool QPointF::isNull() const - Returns true if both the x and y coordinates are set to 0.0, + Returns true if both the x and y coordinates are set to +0.0; otherwise returns false. + + \note Since this function treats +0.0 and -0.0 differently, points + with zero-valued coordinates where either or both values have a + negative sign are not defined to be null points. */ diff --git a/src/corelib/tools/qsize.cpp b/src/corelib/tools/qsize.cpp index 20ac344..12287ab 100644 --- a/src/corelib/tools/qsize.cpp +++ b/src/corelib/tools/qsize.cpp @@ -492,9 +492,13 @@ QDebug operator<<(QDebug dbg, const QSize &s) { /*! \fn bool QSizeF::isNull() const - Returns true if both the width and height is 0; otherwise returns + Returns true if both the width and height are +0.0; otherwise returns false. + \note Since this function treats +0.0 and -0.0 differently, sizes with + zero width and height where either or both values have a negative + sign are not defined to be null sizes. + \sa isValid(), isEmpty() */ -- cgit v0.12 From 163443583b8242d11d2a821db1863c4773bc624c Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 3 Nov 2010 16:57:08 +0100 Subject: Doc: Mentioned default values for the BorderImage tile modes. --- src/declarative/graphicsitems/qdeclarativeborderimage.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp index c58a08d..649c8fb 100644 --- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp @@ -361,6 +361,8 @@ QDeclarativeScaleGrid *QDeclarativeBorderImage::border() \o BorderImage.Repeat - Tile the image until there is no more space. May crop the last image. \o BorderImage.Round - Like Repeat, but scales the images down to ensure that the last image is not cropped. \endlist + + The default tile mode for each property is BorderImage.Stretch. */ QDeclarativeBorderImage::TileMode QDeclarativeBorderImage::horizontalTileMode() const { -- cgit v0.12 From 9e8083d09954c9886565bcd122fd3c6e0f95a030 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 3 Nov 2010 17:08:28 +0100 Subject: Doc: Added more instructions to help with device file permissions. --- doc/src/platforms/emb-pointer.qdoc | 7 +++++-- doc/src/snippets/code/doc_src_emb-pointer.qdoc | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/src/platforms/emb-pointer.qdoc b/doc/src/platforms/emb-pointer.qdoc index 22935b4..81e532f 100644 --- a/doc/src/platforms/emb-pointer.qdoc +++ b/doc/src/platforms/emb-pointer.qdoc @@ -186,8 +186,11 @@ device file. Some drivers also require write access to the device file. For instance, if you have specified the mouse driver with \snippet doc/src/snippets/code/doc_src_emb-pointer.qdoc 11 - then examine the permissions of the device file by entering the following - command in a console: + then examine the permissions of the device file by entering the + following command in a console: + \snippet doc/src/snippets/code/doc_src_emb-pointer.qdoc show permissions + Change the permissions of the device file, if necessary, in the following + way: \snippet doc/src/snippets/code/doc_src_emb-pointer.qdoc 12 If the device file is actually a symbolic link to another file, you must diff --git a/doc/src/snippets/code/doc_src_emb-pointer.qdoc b/doc/src/snippets/code/doc_src_emb-pointer.qdoc index d333c90..b051a98 100644 --- a/doc/src/snippets/code/doc_src_emb-pointer.qdoc +++ b/doc/src/snippets/code/doc_src_emb-pointer.qdoc @@ -104,6 +104,10 @@ QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mouse0 //! [11] +//! [show permissions] +ls -l /dev/input/mouse0 +//! [show permissions] + //! [12] chmod a+rw /dev/input/mouse0 //! [12] -- cgit v0.12 From deb2ace2a31ae9881ef335f0f6c4f523879f01f9 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 3 Nov 2010 17:22:40 +0100 Subject: Doc: using pointer member variables and language change Reviewed-by: Friedemann Kleint Reviewed-by: Martin Smith --- doc/src/development/designer-manual.qdoc | 156 ++++++++++++++++++++++++------- 1 file changed, 124 insertions(+), 32 deletions(-) diff --git a/doc/src/development/designer-manual.qdoc b/doc/src/development/designer-manual.qdoc index b30a700..df82fba 100644 --- a/doc/src/development/designer-manual.qdoc +++ b/doc/src/development/designer-manual.qdoc @@ -1769,37 +1769,54 @@ pixmap property in the property editor. \title Using a Designer UI File in Your Application - With Qt's integrated build tools, \l{qmake Manual}{qmake} and \l uic, the - code for user interface components created with \QD is automatically - generated when the rest of your application is built. Forms can be included - and used directly from your application. Alternatively, you can use them to - extend subclasses of standard widgets. These forms can be processed at - compile time or at run time, depending on the approach used. + Qt Designer UI files represent the widget tree of the form in XML format. The + forms can be processed: + \list + \o \l{Compile Time Form Processing}{At compile time}, which means that forms + are converted to C++ code that can be compiled. + \o \l{Run Time Form Processing}{At runtime}, which means that forms are processed + by the QUiLoader class that dynamically constructs the widget tree while + parsing the XML file. + \endlist \tableofcontents \section1 Compile Time Form Processing + You create user interface components with \QD and use Qt's integrated build tools, + \l{qmake Manual}{qmake} and \l{User Interface Compiler (uic)}{uic}, to generate code + for them when the application is built. The generated code contains the form's user + interface object. It is a C++ struct that contains: + + \list + \o Pointers to the form's widgets, layouts, layout items, + button groups, and actions. + \o A member function called \c setupUi() to build the widget tree + on the parent widget. + \o A member function called \c retranslateUi() that handles the + translation of the string properties of the form. For more information, + see \l{Reacting to Language Changes}. + \endlist + + The generated code can be included in your application and used directly from + it. Alternatively, you can use it to extend subclasses of standard widgets. + A compile time processed form can be used in your application with one of the following approaches: \list - \o The Direct Approach: you construct a widget to use as a placeholder + \o \l{The Direct Approach}: you construct a widget to use as a placeholder for the component, and set up the user interface inside it. - \o The Single Inheritance Approach: you subclass the form's base class + \o \l{The Single Inheritance Approach}: you subclass the form's base class (QWidget or QDialog, for example), and include a private instance of the form's user interface object. - \o The MultipleInheritance Approach: you subclass both the form's base + \o \l{The Multiple Inheritance Approach}: you subclass both the form's base class and the form's user interface object. This allows the widgets defined in the form to be used directly from within the scope of the subclass. \endlist - - \section2 The Direct Approach - - To demonstrate how to use user interface (UI) files straight from - \QD, we create a simple Calculator Form application. This is based on the + To demonstrate, we create a simple Calculator Form application. It is based on the original \l{Calculator Form Example}{Calculator Form} example. The application consists of one source file, \c main.cpp and a UI @@ -1817,15 +1834,18 @@ pixmap property in the property editor. The special feature of this file is the \c FORMS declaration that tells \c qmake which files to process with \c uic. In this case, the \c calculatorform.ui file is used to create a \c ui_calculatorform.h file - that can be used by any file listed in the \c SOURCES declaration. To - ensure that \c qmake generates the \c ui_calculatorform.h file, we need to - include it in a file listed in \c SOURCES. Since we only have \c main.cpp, - we include it there: + that can be used by any file listed in the \c SOURCES declaration. - \snippet doc/src/snippets/uitools/calculatorform/main.cpp 0 + \note You can use Qt Creator to create the Calculator Form project. It + automatically generates the main.cpp, UI, and .pro files, which you can + then modify. + + \section2 The Direct Approach - This include is an additional check to ensure that we do not generate code - for UI files that are not used. + To use the direct approach, we include the \c ui_calculatorform.h file + directly in \c main.cpp: + + \snippet doc/src/snippets/uitools/calculatorform/main.cpp 0 The \c main function creates the calculator widget by constructing a standard QWidget that we use to host the user interface described by the @@ -1837,23 +1857,33 @@ pixmap property in the property editor. from the \c ui_calculatorform.h file that sets up all the dialog's widgets and the connections between its signals and slots. - This approach provides a quick and easy way to use simple, self-contained - components in your applications, but many componens created with \QD will + The direct approach provides a quick and easy way to use simple, self-contained + components in your applications. However, componens created with \QD often require close integration with the rest of the application code. For instance, the \c CalculatorForm code provided above will compile and run, but the QSpinBox objects will not interact with the QLabel as we need a custom slot to carry out the add operation and display the result in the - QLabel. To achieve this, we need to subclass a standard Qt widget (known as - the single inheritance approach). - + QLabel. To achieve this, we need to use the single inheritance approach. \section2 The Single Inheritance Approach + To use the single inheritance approach, we subclass a standard Qt widget and + include a private instance of the form's user interface object. This can take + the form of: + + \list + \o A member variable + \o A pointer member variable + \endlist + + \section3 Using a Member Variable + In this approach, we subclass a Qt widget and set up the user interface from within the constructor. Components used in this way expose the widgets and layouts used in the form to the Qt widget subclass, and provide a standard system for making signal and slot connections between the user interface and other objects in your application. + The generated \c{Ui::CalculatorForm} structure is a member of the class. This approach is used in the \l{Calculator Form Example}{Calculator Form} example. @@ -1893,6 +1923,52 @@ pixmap property in the property editor. them. This approach can be used to create individual tabs from existing forms, for example. + \section3 Using a Pointer Member Variable + + Alternatively, the \c{Ui::CalculatorForm} structure can be made a pointer + member of the class. The header then looks as follows: + + \code + + namespace Ui { + class CalculatorForm; + } + + class CalculatorForm : public QWidget + ... + virtual ~CalculatorForm(); + ... + private: + Ui::CalculatorForm *ui; + ... + + \endcode + + The corresponding source file looks as follows: + + \code + #include "ui_calculatorform.h" + + CalculatorForm::CalculatorForm(QWidget *parent) : + QWidget(parent), ui(new Ui::CalculatorForm) + { + ui->setupUi(this); + } + + CalculatorForm::~CalculatorForm() + { + delete ui; + } + \endcode + + The advantage of this approach is that the user interface object can be + forward-declared, which means that we do not have to include the generated + \c ui_calculatorform.h file in the header. The form can then be changed without + recompiling the dependent source files. This is particularly important if the + class is subject to binary compatibility restrictions. + + We generally recommend this approach for libraries and large applications. + For more information, see \l{Creating Shared Libraries}. \section2 The Multiple Inheritance Approach @@ -1906,13 +1982,14 @@ pixmap property in the property editor. {Multiple Inheritance} example. We need to include the header file that \c uic generates from the - \c calculatorform.ui file: + \c calculatorform.ui file, as follows: \snippet examples/uitools/multipleinheritance/calculatorform.h 0 The class is defined in a similar way to the one used in the \l{The Single Inheritance Approach}{single inheritance approach}, except that - this time we inherit from \e{both} QWidget and \c{Ui::CalculatorForm}: + this time we inherit from \e{both} QWidget and \c{Ui::CalculatorForm}, + as follows: \snippet examples/uitools/multipleinheritance/calculatorform.h 1 @@ -1931,11 +2008,26 @@ pixmap property in the property editor. same say as a widget created in code by hand. We no longer require the \c{ui} prefix to access them. - Subclassing using multiple inheritance gives us more direct access to the - contents of the form, is slightly cleaner than the single inheritance - approach, but does not conveniently support composition of multiple user - interfaces. + \section2 Reacting to Language Changes + + Qt notifies applications if the user interface language changes by sending an + event of the type QEvent::LanguageChange. To call the member function + \c retranslateUi() of the user interface object, we reimplement + \c QWidget::changeEvent() in the form class, as follows: + \code + void CalculatorForm::changeEvent(QEvent *e) + { + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } + } + \endcode \section1 Run Time Form Processing -- cgit v0.12 From 526fbec417fcdae715cba56fbb01182fa25a2c04 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 3 Nov 2010 17:50:09 +0100 Subject: Doc: Added a snippet showing the default BorderImage tiling behavior. --- .../borderimage/borderimage-defaults.qml | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 doc/src/snippets/declarative/borderimage/borderimage-defaults.qml diff --git a/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml b/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml new file mode 100644 index 0000000..1888f4e --- /dev/null +++ b/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Rectangle { + id: page + color: "white" + width: 180; height: 180 + +//! [tiled border image] +BorderImage { + width: 180; height: 180 + border { left: 30; top: 30; right: 30; bottom: 30 } + source: "pics/borderframe.png" +} +//! [tiled border image] +} -- cgit v0.12 From d8416650ae9d345f289bd697461891dede7c410c Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 3 Nov 2010 19:17:47 +0100 Subject: Doc: Clarified the lifetime of the session bus connection. Reviewed-by: Thiago Macieira --- src/dbus/qdbusconnection.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index bf771a8..f68a8ca 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -140,9 +140,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP \fn QDBusConnection &QDBusConnection::sessionBus() \relates QDBusConnection - Returns a QDBusConnection object opened with the session bus. The object reference returned - by this function is valid until the QCoreApplication's destructor is run, when the - connection will be closed and the object, deleted. + Returns a QDBusConnection object opened with the session bus. The object + reference returned by this function is valid until the application terminates, + at which point the connection will be closed and the object deleted. */ /*! \fn QDBusConnection &QDBusConnection::systemBus() -- cgit v0.12