summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | Don't call virtual methods after the source model is destroyed.Stephen Kelly2013-04-052-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Calling clear_mapping causes the persistent indexes to be queried, and mapped using map_to_source, so that they can be restored later. That is not the appropriate response to the source model being deleted because there won't be anything to restore. Simply clear the stored mapping information instead so that the source model actually exists when mapToSource is called by the framework. Change-Id: I99692ee7aa9c6714aec45c68fe4a2d62be189d60 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | EglFS: allow the hook to override logicalDpi()Paul Olav Tvete2013-04-054-0/+18
| | | | | | | | | | | | | | | | Task-number: QTBUG-29674 Change-Id: Id88a8735ceb7f5bcb63344b3b0653486a6caa70d Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Windows: Ignore mouse events generated by Windows.Friedemann Kleint2013-04-051-1/+5
| | | | | | | | | | | | | | | | Task-number: QTBUG-29946 Change-Id: Idef0e7cc8bc407377e60e4a9d67c3ba78b347b76 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Mark widget framestrut as dirty when window flags change.Friedemann Kleint2013-04-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | When undocking a dock using the undock button on a main window with native children, the dock widget goes to 0,0 (content position) causing the window frame to be off-screen since the frame is still 0,0. This change causes the frame to be recalculated such that the frame position is 0,0. Task-number: QTBUG-28872 Change-Id: I32896107cd7b982811f45de43dbad82e7407ea7a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Test that the CMake files create appropriate version variables.Stephen Kelly2013-04-051-1/+28
| | | | | | | | | | | | | | Change-Id: I1d8061302fbb8494b5ae31e20a644745fe969f10 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | QGtkStyle: remove obsolete themeName != "Qt" checksDmitry Shachnev2013-04-051-12/+0
| | | | | | | | | | Change-Id: Ibb6d952f6abc398ac5deb94d3bdfd8560777aa44 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* | Windows: Do not use native dialogs for non-modal dialogs.Friedemann Kleint2013-04-051-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | Windows file dialogs are always modal (inheriting IModalWindow). As the QtQuick dialog plugin has a widget-based fallback now, there is no need to use native dialogs for the non-modal case. Task-number: QTBUG-30513 Change-Id: I8b62af86fde34e8c0cf5e917d2e62260e16c82fb Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | The default behavior should be double buffered, not singlebufferedGunnar Sletta2013-04-051-3/+2
| | | | | | | | | | | | | | | | | | Without this, it is not possible to do vsync drawing on NVidia GeForce 210 on Windows 7. Change-Id: I6064826eaa55266344393f50cdf5d17113350255 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | QSaveFile: allow saving to a writable file in a non-writable directoryDavid Faure2013-04-053-17/+90
| | | | | | | | | | | | | | | | | | | | The only way to make this possible is to disable the atomic-rename-from-temp-file behavior. This is not done by default, but only if the application allows this to happen. https://bugs.kde.org/show_bug.cgi?id=312415 Change-Id: I71ce54ae1f7f50ab5e8379f04c0ede74ebe3136d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix incorrect classification of glTexImage3D.Sean Harmer2013-04-0522-80/+122
| | | | | | | | | | | | | | | | | | See https://www.khronos.org/bugzilla/show_bug.cgi?id=449 for upstream bug in gl.spec which incorrectly marks glTexImage3D as deprecated. Change-Id: Ib307a5315dd37b8b18389df54b1c93e6a43c61dd Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | iOS: Fix build on case sensitive file systemsTor Arne Vestbø2013-04-041-1/+1
| | | | | | | | | | Change-Id: I920e7320e429006aef9433db3e942dc257dc72eb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* | QTDSDriver: fix index out of rangeMark Brand2013-04-041-1/+1
| | | | | | | | | | | | | | | | Follow-up to 5544208e2. Change-Id: Iba3ff291622533e8050ddc0494e4488233727ebe Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QSqlDriver: use Q_DECLARE_PUBLIC/Q_DECLARE_PRIVATEMark Brand2013-04-0415-106/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 406c8ef6e67da introduced deriving the private SQL driver classes from QSqlDriverPrivate. However, the drivers continued to keep their own pointer to the private class, even though QObject provides the same pointer. Worse yet, the private class is allocated too late and not even passed to QSqlDriver. The result is that QSqlDriver allocates a separate instance of QSqlDriverPrivate. This is likely to cause all kinds of chaos. The private class needs to be allocated in time pass it to QSqlDriver which passes it on to QObject. This commit covers the the base class and drivers: ibase mysql odbc psql sqlite tds Fixes for the remaining drivers will follow. Change-Id: Id8e7ec4205b0ca6cd00bd022c9cd24f137089245 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | QSqlDriverPrivate clean-upMark Brand2013-04-041-15/+10
| | | | | | | | | | Change-Id: Ia6cbb37330bc0beed7498e43cd18bb2a1afb8e3d Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | iOS: Handle UIDeviceOrientation vs UIInterfaceOrientationTor Arne Vestbø2013-04-043-3/+3
| | | | | | | | | | | | | | | | | | | | The former represents the physical device orientation, the latter the UI orientation. We need to explicitly cast between them, as they are different enums, but with compatible values for the subset we use. Change-Id: I2926068802f35680cb6de5ced6dcf286014fdb2e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* | Fix warning: qt_setDockMenu not foundFrederik Gladhorn2013-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | qcocoanativeinterface.mm:196:5: warning: instance method '-qt_setDockMenu:' not found (return type defaults to 'id') [-Wobjc-method-access] [NSApp QT_MANGLE_NAMESPACE(qt_setDockMenu): menu]; Change-Id: I80838d0098e7f172d9b8124f04e91dba64764318 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Android: Don't show '&' character in menusPaul Olav Tvete2013-04-041-6/+23
| | | | | | | | | | | | | | | | | | Strip out shortcut indicator before showing the text. Task-number: QTBUG-30507 Change-Id: I8fa2ef8a2052f4c43d14b3babfd5aca0a08e29d5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | QPA/Mac: Fix resources leakingKonstantin Ritt2013-04-033-7/+13
| | | | | | | | | | | | | | | | | | | | | | Having static QFont instance leads to a resources leaking, since QFontCache is unable to clean-up font engines when the application exits. Relates to QTBUG-25434 Change-Id: I71d91094de27c07ab2434c415e4c28b6acab3646 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-04-038-14/+30
|\ \ | | | | | | | | | refs/staging/stable
| * | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-04-038-14/+30
| |\| | | | | | | | | | Change-Id: Icedabda08961326a0a447ec71f1b0f0f5df075eb
| | * Fix gcc OOM error when compiling in release modeKai Koehne2013-04-021-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | O3 leads to gcc bailing out with OOM on e.g. MinGW with gcc 4.7.3 onwards. Task-number: QTBUG-29099 Change-Id: I3ce49794fa4857e756d2994454d4144cfb44ce58 Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * qdoc: Use 'org.qt-project.' prefix in namespaceSergio Ahumada2013-03-271-1/+1
| | | | | | | | | | | | | | | | | | | | | Standarize the qdoc namespace to match all the others configurations. Change-Id: I364d41f20084b77ab3805e72c870147c05da1d42 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * Revert "qclass_lib_map.h: Fix include of the QDeclarativeView widget."Friedemann Kleint2013-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7b655eef489038a96c5c5ba2e80d6129eca3cf41. QDeclarativeView is back in QDeclarative. Task-number: QTBUG-25196 Change-Id: Ibe40e790c98b5129bbd844924f71cf3ca0202b5f Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| | * qt.conf: default LibraryExecutables to bin/ on windowsOswald Buddenhagen2013-03-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this matches the platform-specific configure default. as a "side effect", this fixes the in-builddir execution of webkit examples, as the non-installed qmake now agrees with QLibraryInfo about the location of QWebProcess.exe. Task-number: QTBUG-30322 Change-Id: Id28f2c246e4bfda6d5f4d719a66a16f24bb7cdb7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
| | * Windows: Fix reported screen metrics.Friedemann Kleint2013-03-262-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | A call to SetProcessDPIAware() is required in some cases. Task-number: QTBUG-30063 Change-Id: Iba0203d76c8e7068bf9fd4581770c1aca76a4708 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
| | * Doc: Fix typo in the property system documentationTopi Reinio2013-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | priorty -> priority Task-number: QTBUG-28756 Change-Id: I79138f49db78ee6d1b96e44585ae4c1565920b18 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
| | * Doc: Changed title of Qt Print Support's C++ Classes page.Jerome Pasion2013-03-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | -old title created broken links in Assistant. -conforms to Qt 5 naming scheme. Change-Id: Iaf619c1264edc1f9d2fd24f7031fe6c07efd2c1d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Doc: Replaced canConvert() with canConvert(Int)Venu2013-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change amends my earlier change to make the function reference relevant to the example being discussed. Task-number: QTBUG-28204 Change-Id: I841a561ba117f83a96b8b4a3661cea2a7a3e47da Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* | | If the menu item is merged then we should not release itAndy Shaw2013-04-031-2/+2
|/ / | | | | | | | | | | | | | | | | | | When a menu item is merged then we do not want to release it as it will cause a problem with the Application menu. Therefore we just hide it instead. Change-Id: Ia9f7acfe063001111769841c9a360cac369f7ed7 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Also version.xml needs to be installedBogDan Vatra2013-04-031-0/+1
| | | | | | | | | | | | | | | | | | This file is used by QtCreator to decide if the java files need to be updated. Change-Id: Ib4875c32a071dd768f89950582c81ccdd420feca Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | ApplicationState: Add new event class: ApplicationStateChangeEventRichard Moe Gustavsen2013-04-035-5/+43
| | | | | | | | | | | | | | | | | | | | | | This patch will follow up on e27ca37 (add more state to QT::ApplicationState), and add a new event class QApplicationStateChangeEvent with type Qt::ApplicationStateChange. Change-Id: Idee724f181f1fbb2321ddad7e0df00c88b3488b1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | qdoc: Use Q_QDOC in quuid.h to help qdocMartin Smith2013-04-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Some new ctor initializers were added that use curly braces. qdoc's dumb C++ parser can't handle curly braces in the ctor area; it thinks they are the body of the function. In this update, the Q_QDOC macro is used to isolate these problems so qdoc doesn't have to deal with them. Task-number: QTBUG-30254 Change-Id: Ie318e4ac58861f4ebd8a7b9f004d2677f850436e Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Make sure QThreadData and QAdoptedThread object is destroyed at app exitjian liang2013-04-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-30134 Restore the lines in qcoreapplication.cpp removed by commit 950b35cf97ad398f97883efd2a18ee97994a8a9c to ensure QThreadData and QAdoptedThread object of main thread is destroyed at application exit. We don't set QCoreApplicationPriavte::theMainThread to 0 as before since it will be set to zero in QThreadData::~QThreadData() Change-Id: I8ee56aff5a933ce1d812b07fb00a29ed0839ab6e Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Doc: Fix the documentation for QWindow::focusObjectChanged()Topi Reinio2013-04-031-3/+3
| | | | | | | | | | | | | | | | Fix the documented function signature to match the declared one. Task-number: QTBUG-30398 Change-Id: I0d4894e2597f70e29a3edd4ceda91a4dddb9941e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Correct location of mtdev define.Robin Burchell2013-04-031-1/+1
| | | | | | | | | | | | | | | | evdevtouch moved to platform support, so the location in the plugin is now wrong (as was the file name) Change-Id: I976f5d7ee68f5da5ed1f61773b3d5da683e12c6f Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | make bootstrapping of qdoc optionalOswald Buddenhagen2013-04-032-2/+4
| | | | | | | | | | | | | | the weird QLibraryInfo dependency is gone. Change-Id: Iebaa5af6bc529999a2415b2ce3d2a5dca362dd5a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | add qcryptographichash to bootstrap libOswald Buddenhagen2013-04-032-4/+5
| | | | | | | | | | | | | | needed to make qdoc bootstrapping optional Change-Id: Ie630d129ed038fd90078197588a6df723eddf553 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QTextCharFormat::setFont(): Preserve the font hinting preferenceKonstantin Ritt2013-04-021-0/+1
| | | | | | | | | | | | | | Task-number: QTBUG-22653 Change-Id: I9153486ff7793ba4427b64459896ab1328d51548 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Apply Qt-specific changes to the bundled FreeTypeKonstantin Ritt2013-04-028-7/+29
| | | | | | | | | | | | Change-Id: Ia2e737b513f542c702f24986ec9fcb24b5631e36 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Move the dbmstype to QSqlDriverPrivate so it can be used for all driversAndy Shaw2013-04-0214-62/+130
| | | | | | | | | | | | | | | | | | By moving it to QSqlDriverPrivate we make it easier to check what database is actually connected which is particularly useful for the autotests. Change-Id: I54d1c2c998919c1d54efb1b6ac9303070ece54aa Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* | Use Bionic's __pthread_cond_timedwait_relativeThiago Macieira2013-04-021-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The Linux futex interface uses relative timeouts anyway, so this avoids a double round-trip through clock_gettime: once in Qt code to calculate absolute from relative and once in libc for reversing. Glibc does not offer such a function because its pthread_cond objects use a kernel interface that works on absolute times. Change-Id: I8fbcd3f73d4364a16716b0eea17e8f5f9ab5cd05 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add a function to do the relative waits, simplifying the code a littleThiago Macieira2013-04-021-3/+8
| | | | | | | | | | | | | | More to come. Change-Id: I108f23e94c322ad4e1466ff69100ad6af91d95e9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Fix build on Android: libpthread is deficient and lacks functionsThiago Macieira2013-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | Even if the monotonic clock is available, Android's Bionic lacks the pthread_condattr_setclock function, so we can't tell it to use the monotonic clock. Task-number: QTBUG-30450 Change-Id: I4f53708b1e834ff5d9462b3bf778b96c22662a04 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | fix non-bootstrapped buildOswald Buddenhagen2013-04-021-1/+1
| | | | | | | | | | Change-Id: Ic615dc3bee423e2bb05798ce861ca809ac89a23c Reviewed-by: hjk <hjk121@nokiamail.com>
* | move the setup of QT_INSTALL_DOCS from qdoc to qt_docs.prfOswald Buddenhagen2013-04-021-12/+0
| | | | | | | | | | | | | | | | | | | | this is a qt specific option and really should not be hard-coded. also, the implementation used undocumented api that is internal to the bootstrapped process, which made it impossible to de-bootstrap it. Change-Id: If706960671744e64a9a7c366437977a800a6058e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-0232-638/+1020
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since there already is a one-to-one relationship between QObject and QAccessibleInterface it makes little sense to create and destroy the interfaces on each call to queryAccessibleInterface. Add a cache and keep created interfaces around for the lifetime of the corresponding QObject. This changes the memory management rules: accessible interfaces must no longer be deleted. If you get an QAccessibleIntrface pointer that pointer will stay valid as long as the corresponding QObject is not deleted. This also re-enables accessibility for Mac. We limit the range of the IDs so that they are useable for Windows directly. That means we can get rid of the event cache there. This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | QSqlTableModel: expose methods for getting primary valuesMark Brand2013-04-025-29/+41
| | | | | | | | | | | | | | These methods are very useful in subclasses. Change-Id: Ifdfee9d90cbdad97f349e46b587582f1d9e7cd7a Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* | make QSqlResultPrivate::fieldSerial() virtualMark Brand2013-04-023-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Qt psql driver has its own implementation of fieldSerial() it uses when it invokes positionalToNamedBinding() to generate a query using its native naming style. Now that QPSQLResultPrivate is derived from QSqlResultPrivate this can be implemented more conventionally using a virtual function instead of pointers to static functions. Note that this change preserves the current behavior of executedQuery() which will continue to return the query with positional syntax that is presented to virtual prepare() by QSqlResult::savePrepare(). Since the driver does not have the NamedPlaceholders feature, QSqlResult::savePrepare() will not use positionaltoNamedBinding() to set executedQuery. Although QPSQLResult::prepare() calls positionaltoNamedBinding(), it does not put the result into executedQuery. Change-Id: I7740f386cbfec9eadd9e4d6a7df3e590294655a5 Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* | QPSQLResultPrivate inherit QSqlResultPrivateMark Brand2013-04-022-12/+29
| | | | | | | | | | | | | | | | | | | | | | Follow the usual pattern that a subclass's private class inherits its base classes's private class. This will allow the private class to use virtual functions. Change-Id: Iafdf1cb5db672d973ad1f60bdd7e37b9072fbb1b Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* | QPSQLResultPrivate: do not duplicate reference to private driverMark Brand2013-04-022-17/+19
| | | | | | | | | | | | | | | | | | The "private driver" is already known, so don't keep an extra reference to it. Change-Id: I34ec4108694bfbc3da3107f79598ae50a699911c Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br> Reviewed-by: Mark Brand <mabrand@mabrand.nl>