| Line | Source Code | Coverage |
|---|
| 1 | /**************************************************************************** | - |
| 2 | ** | - |
| 3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). | - |
| 4 | ** Contact: http://www.qt-project.org/legal | - |
| 5 | ** | - |
| 6 | ** This file is part of the QtGui module of the Qt Toolkit. | - |
| 7 | ** | - |
| 8 | ** $QT_BEGIN_LICENSE:LGPL$ | - |
| 9 | ** Commercial License Usage | - |
| 10 | ** Licensees holding valid commercial Qt licenses may use this file in | - |
| 11 | ** accordance with the commercial license agreement provided with the | - |
| 12 | ** Software or, alternatively, in accordance with the terms contained in | - |
| 13 | ** a written agreement between you and Digia. For licensing terms and | - |
| 14 | ** conditions see http://qt.digia.com/licensing. For further information | - |
| 15 | ** use the contact form at http://qt.digia.com/contact-us. | - |
| 16 | ** | - |
| 17 | ** GNU Lesser General Public License Usage | - |
| 18 | ** Alternatively, this file may be used under the terms of the GNU Lesser | - |
| 19 | ** General Public License version 2.1 as published by the Free Software | - |
| 20 | ** Foundation and appearing in the file LICENSE.LGPL included in the | - |
| 21 | ** packaging of this file. Please review the following information to | - |
| 22 | ** ensure the GNU Lesser General Public License version 2.1 requirements | - |
| 23 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | - |
| 24 | ** | - |
| 25 | ** In addition, as a special exception, Digia gives you certain additional | - |
| 26 | ** rights. These rights are described in the Digia Qt LGPL Exception | - |
| 27 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | - |
| 28 | ** | - |
| 29 | ** GNU General Public License Usage | - |
| 30 | ** Alternatively, this file may be used under the terms of the GNU | - |
| 31 | ** General Public License version 3.0 as published by the Free Software | - |
| 32 | ** Foundation and appearing in the file LICENSE.GPL included in the | - |
| 33 | ** packaging of this file. Please review the following information to | - |
| 34 | ** ensure the GNU General Public License version 3.0 requirements will be | - |
| 35 | ** met: http://www.gnu.org/copyleft/gpl.html. | - |
| 36 | ** | - |
| 37 | ** | - |
| 38 | ** $QT_END_LICENSE$ | - |
| 39 | ** | - |
| 40 | ****************************************************************************/ | - |
| 41 | | - |
| 42 | #include "qmainwindowlayout_p.h" | - |
| 43 | #include "qdockarealayout_p.h" | - |
| 44 | | - |
| 45 | #ifndef QT_NO_MAINWINDOW | - |
| 46 | #include "qdockwidget.h" | - |
| 47 | #include "qdockwidget_p.h" | - |
| 48 | #include "qtoolbar_p.h" | - |
| 49 | #include "qmainwindow.h" | - |
| 50 | #include "qtoolbar.h" | - |
| 51 | #include "qtoolbarlayout_p.h" | - |
| 52 | #include "qwidgetanimator_p.h" | - |
| 53 | #include "qrubberband.h" | - |
| 54 | #include "qtabbar_p.h" | - |
| 55 | | - |
| 56 | #include <qapplication.h> | - |
| 57 | #include <qstatusbar.h> | - |
| 58 | #include <qstring.h> | - |
| 59 | #include <qstyle.h> | - |
| 60 | #include <qvarlengtharray.h> | - |
| 61 | #include <qstack.h> | - |
| 62 | #include <qmap.h> | - |
| 63 | #include <qtimer.h> | - |
| 64 | | - |
| 65 | #include <qdebug.h> | - |
| 66 | | - |
| 67 | #include <private/qapplication_p.h> | - |
| 68 | #include <private/qlayoutengine_p.h> | - |
| 69 | #ifdef Q_WS_MAC | - |
| 70 | # include <private/qcore_mac_p.h> | - |
| 71 | # include <private/qt_cocoa_helpers_mac_p.h> | - |
| 72 | #endif | - |
| 73 | | - |
| 74 | #ifdef QT_NO_DOCKWIDGET | - |
| 75 | extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window); | - |
| 76 | #endif | - |
| 77 | | - |
| 78 | #ifdef Q_DEBUG_MAINWINDOW_LAYOUT | - |
| 79 | # include <QTextStream> | - |
| 80 | #endif | - |
| 81 | | - |
| 82 | QT_BEGIN_NAMESPACE | - |
| 83 | | - |
| 84 | /****************************************************************************** | - |
| 85 | ** debug | - |
| 86 | */ | - |
| 87 | | - |
| 88 | #if defined(Q_DEBUG_MAINWINDOW_LAYOUT) && !defined(QT_NO_DOCKWIDGET) | - |
| 89 | | - |
| 90 | static QTextStream qout(stderr, QIODevice::WriteOnly); | - |
| 91 | | - |
| 92 | static void dumpLayout(QTextStream &qout, const QDockAreaLayoutInfo &layout, QString indent); | - |
| 93 | | - |
| 94 | static void dumpLayout(QTextStream &qout, const QDockAreaLayoutItem &item, QString indent) | - |
| 95 | { | - |
| 96 | qout << indent << "QDockAreaLayoutItem: " | - |
| 97 | << "pos: " << item.pos << " size:" << item.size | - |
| 98 | << " gap:" << (item.flags & QDockAreaLayoutItem::GapItem) | - |
| 99 | << " keepSize:" << (item.flags & QDockAreaLayoutItem::KeepSize) << '\n'; | - |
| 100 | indent += QLatin1String(" "); | - |
| 101 | if (item.widgetItem != 0) { | - |
| 102 | qout << indent << "widget: " | - |
| 103 | << item.widgetItem->widget()->metaObject()->className() | - |
| 104 | << ' ' << item.widgetItem->widget()->windowTitle() << '\n'; | - |
| 105 | } else if (item.subinfo != 0) { | - |
| 106 | qout << indent << "subinfo:\n"; | - |
| 107 | dumpLayout(qout, *item.subinfo, indent + QLatin1String(" ")); | - |
| 108 | } else if (item.placeHolderItem != 0) { | - |
| 109 | QRect r = item.placeHolderItem->topLevelRect; | - |
| 110 | qout << indent << "placeHolder: " | - |
| 111 | << "pos: " << item.pos << " size:" << item.size | - |
| 112 | << " gap:" << (item.flags & QDockAreaLayoutItem::GapItem) | - |
| 113 | << " keepSize:" << (item.flags & QDockAreaLayoutItem::KeepSize) | - |
| 114 | << " objectName:" << item.placeHolderItem->objectName | - |
| 115 | << " hidden:" << item.placeHolderItem->hidden | - |
| 116 | << " window:" << item.placeHolderItem->window | - |
| 117 | << " rect:" << r.x() << ',' << r.y() << ' ' | - |
| 118 | << r.width() << 'x' << r.height() << '\n'; | - |
| 119 | } | - |
| 120 | qout.flush(); | - |
| 121 | } | - |
| 122 | | - |
| 123 | static void dumpLayout(QTextStream &qout, const QDockAreaLayoutInfo &layout, QString indent) | - |
| 124 | { | - |
| 125 | qout << indent << "QDockAreaLayoutInfo: " | - |
| 126 | << layout.rect.left() << ',' | - |
| 127 | << layout.rect.top() << ' ' | - |
| 128 | << layout.rect.width() << 'x' | - |
| 129 | << layout.rect.height() | - |
| 130 | << " orient:" << layout.o | - |
| 131 | << " tabbed:" << layout.tabbed | - |
| 132 | << " tbshape:" << layout.tabBarShape << '\n'; | - |
| 133 | | - |
| 134 | indent += QLatin1String(" "); | - |
| 135 | | - |
| 136 | for (int i = 0; i < layout.item_list.count(); ++i) { | - |
| 137 | qout << indent << "Item: " << i << '\n'; | - |
| 138 | dumpLayout(qout, layout.item_list.at(i), indent + QLatin1String(" ")); | - |
| 139 | } | - |
| 140 | qout.flush(); | - |
| 141 | }; | - |
| 142 | | - |
| 143 | static void dumpLayout(QTextStream &qout, const QDockAreaLayout &layout, QString indent) | - |
| 144 | { | - |
| 145 | qout << indent << "QDockAreaLayout: " | - |
| 146 | << layout.rect.left() << ',' | - |
| 147 | << layout.rect.top() << ' ' | - |
| 148 | << layout.rect.width() << 'x' | - |
| 149 | << layout.rect.height() << '\n'; | - |
| 150 | | - |
| 151 | qout << indent << "TopDockArea:\n"; | - |
| 152 | dumpLayout(qout, layout.docks[QInternal::TopDock], indent + QLatin1String(" ")); | - |
| 153 | qout << indent << "LeftDockArea:\n"; | - |
| 154 | dumpLayout(qout, layout.docks[QInternal::LeftDock], indent + QLatin1String(" ")); | - |
| 155 | qout << indent << "RightDockArea:\n"; | - |
| 156 | dumpLayout(qout, layout.docks[QInternal::RightDock], indent + QLatin1String(" ")); | - |
| 157 | qout << indent << "BottomDockArea:\n"; | - |
| 158 | dumpLayout(qout, layout.docks[QInternal::BottomDock], indent + QLatin1String(" ")); | - |
| 159 | | - |
| 160 | qout.flush(); | - |
| 161 | }; | - |
| 162 | | - |
| 163 | void qt_dumpLayout(QTextStream &qout, QMainWindow *window) | - |
| 164 | { | - |
| 165 | QMainWindowLayout *layout = qt_mainwindow_layout(window); | - |
| 166 | dumpLayout(qout, layout->layoutState.dockAreaLayout, QString()); | - |
| 167 | } | - |
| 168 | | - |
| 169 | #endif // Q_DEBUG_MAINWINDOW_LAYOUT && !QT_NO_DOCKWIDGET | - |
| 170 | | - |
| 171 | /****************************************************************************** | - |
| 172 | ** QMainWindowLayoutState | - |
| 173 | */ | - |
| 174 | | - |
| 175 | // we deal with all the #ifndefferry here so QMainWindowLayout code is clean | - |
| 176 | | - |
| 177 | QMainWindowLayoutState::QMainWindowLayoutState(QMainWindow *win) | - |
| 178 | : | - |
| 179 | #ifndef QT_NO_TOOLBAR | - |
| 180 | toolBarAreaLayout(win), | - |
| 181 | #endif | - |
| 182 | #ifndef QT_NO_DOCKWIDGET | - |
| 183 | dockAreaLayout(win) | - |
| 184 | #else | - |
| 185 | centralWidgetItem(0) | - |
| 186 | #endif | - |
| 187 | | - |
| 188 | { | - |
| 189 | mainWindow = win; executed (the execution status of this line is deduced): mainWindow = win; | - |
| 190 | } executed: }Execution Count:88 | 88 |
| 191 | | - |
| 192 | QSize QMainWindowLayoutState::sizeHint() const | - |
| 193 | { | - |
| 194 | | - |
| 195 | QSize result(0, 0); executed (the execution status of this line is deduced): QSize result(0, 0); | - |
| 196 | | - |
| 197 | #ifndef QT_NO_DOCKWIDGET | - |
| 198 | result = dockAreaLayout.sizeHint(); executed (the execution status of this line is deduced): result = dockAreaLayout.sizeHint(); | - |
| 199 | #else | - |
| 200 | if (centralWidgetItem != 0) | - |
| 201 | result = centralWidgetItem->sizeHint(); | - |
| 202 | #endif | - |
| 203 | | - |
| 204 | #ifndef QT_NO_TOOLBAR | - |
| 205 | result = toolBarAreaLayout.sizeHint(result); executed (the execution status of this line is deduced): result = toolBarAreaLayout.sizeHint(result); | - |
| 206 | #endif // QT_NO_TOOLBAR | - |
| 207 | | - |
| 208 | return result; executed: return result;Execution Count:30 | 30 |
| 209 | } | - |
| 210 | | - |
| 211 | QSize QMainWindowLayoutState::minimumSize() const | - |
| 212 | { | - |
| 213 | QSize result(0, 0); executed (the execution status of this line is deduced): QSize result(0, 0); | - |
| 214 | | - |
| 215 | #ifndef QT_NO_DOCKWIDGET | - |
| 216 | result = dockAreaLayout.minimumSize(); executed (the execution status of this line is deduced): result = dockAreaLayout.minimumSize(); | - |
| 217 | #else | - |
| 218 | if (centralWidgetItem != 0) | - |
| 219 | result = centralWidgetItem->minimumSize(); | - |
| 220 | #endif | - |
| 221 | | - |
| 222 | #ifndef QT_NO_TOOLBAR | - |
| 223 | result = toolBarAreaLayout.minimumSize(result); executed (the execution status of this line is deduced): result = toolBarAreaLayout.minimumSize(result); | - |
| 224 | #endif // QT_NO_TOOLBAR | - |
| 225 | | - |
| 226 | return result; executed: return result;Execution Count:167 | 167 |
| 227 | } | - |
| 228 | | - |
| 229 | void QMainWindowLayoutState::apply(bool animated) | - |
| 230 | { | - |
| 231 | #ifndef QT_NO_TOOLBAR | - |
| 232 | toolBarAreaLayout.apply(animated); executed (the execution status of this line is deduced): toolBarAreaLayout.apply(animated); | - |
| 233 | #endif | - |
| 234 | | - |
| 235 | #ifndef QT_NO_DOCKWIDGET | - |
| 236 | // dumpLayout(dockAreaLayout, QString()); | - |
| 237 | dockAreaLayout.apply(animated); executed (the execution status of this line is deduced): dockAreaLayout.apply(animated); | - |
| 238 | #else | - |
| 239 | if (centralWidgetItem != 0) { | - |
| 240 | QMainWindowLayout *layout = qt_mainwindow_layout(mainWindow); | - |
| 241 | Q_ASSERT(layout != 0); | - |
| 242 | layout->widgetAnimator.animate(centralWidgetItem->widget(), centralWidgetRect, animated); | - |
| 243 | } | - |
| 244 | #endif | - |
| 245 | } executed: }Execution Count:237 | 237 |
| 246 | | - |
| 247 | void QMainWindowLayoutState::fitLayout() | - |
| 248 | { | - |
| 249 | QRect r; executed (the execution status of this line is deduced): QRect r; | - |
| 250 | #ifdef QT_NO_TOOLBAR | - |
| 251 | r = rect; | - |
| 252 | #else | - |
| 253 | toolBarAreaLayout.rect = rect; executed (the execution status of this line is deduced): toolBarAreaLayout.rect = rect; | - |
| 254 | r = toolBarAreaLayout.fitLayout(); executed (the execution status of this line is deduced): r = toolBarAreaLayout.fitLayout(); | - |
| 255 | #endif // QT_NO_TOOLBAR | - |
| 256 | | - |
| 257 | #ifndef QT_NO_DOCKWIDGET | - |
| 258 | dockAreaLayout.rect = r; executed (the execution status of this line is deduced): dockAreaLayout.rect = r; | - |
| 259 | dockAreaLayout.fitLayout(); executed (the execution status of this line is deduced): dockAreaLayout.fitLayout(); | - |
| 260 | #else | - |
| 261 | centralWidgetRect = r; | - |
| 262 | #endif | - |
| 263 | } executed: }Execution Count:237 | 237 |
| 264 | | - |
| 265 | void QMainWindowLayoutState::deleteAllLayoutItems() | - |
| 266 | { | - |
| 267 | #ifndef QT_NO_TOOLBAR | - |
| 268 | toolBarAreaLayout.deleteAllLayoutItems(); executed (the execution status of this line is deduced): toolBarAreaLayout.deleteAllLayoutItems(); | - |
| 269 | #endif | - |
| 270 | | - |
| 271 | #ifndef QT_NO_DOCKWIDGET | - |
| 272 | dockAreaLayout.deleteAllLayoutItems(); executed (the execution status of this line is deduced): dockAreaLayout.deleteAllLayoutItems(); | - |
| 273 | #endif | - |
| 274 | } executed: }Execution Count:45 | 45 |
| 275 | | - |
| 276 | void QMainWindowLayoutState::deleteCentralWidgetItem() | - |
| 277 | { | - |
| 278 | #ifndef QT_NO_DOCKWIDGET | - |
| 279 | delete dockAreaLayout.centralWidgetItem; executed (the execution status of this line is deduced): delete dockAreaLayout.centralWidgetItem; | - |
| 280 | dockAreaLayout.centralWidgetItem = 0; executed (the execution status of this line is deduced): dockAreaLayout.centralWidgetItem = 0; | - |
| 281 | #else | - |
| 282 | delete centralWidgetItem; | - |
| 283 | centralWidgetItem = 0; | - |
| 284 | #endif | - |
| 285 | } executed: }Execution Count:61 | 61 |
| 286 | | - |
| 287 | QLayoutItem *QMainWindowLayoutState::itemAt(int index, int *x) const | - |
| 288 | { | - |
| 289 | #ifndef QT_NO_TOOLBAR | - |
| 290 | if (QLayoutItem *ret = toolBarAreaLayout.itemAt(x, index)) evaluated: QLayoutItem *ret = toolBarAreaLayout.itemAt(x, index)| yes Evaluation Count:7 | yes Evaluation Count:410 |
| 7-410 |
| 291 | return ret; executed: return ret;Execution Count:7 | 7 |
| 292 | #endif | - |
| 293 | | - |
| 294 | #ifndef QT_NO_DOCKWIDGET | - |
| 295 | if (QLayoutItem *ret = dockAreaLayout.itemAt(x, index)) evaluated: QLayoutItem *ret = dockAreaLayout.itemAt(x, index)| yes Evaluation Count:178 | yes Evaluation Count:232 |
| 178-232 |
| 296 | return ret; executed: return ret;Execution Count:178 | 178 |
| 297 | #else | - |
| 298 | if (centralWidgetItem != 0 && (*x)++ == index) | - |
| 299 | return centralWidgetItem; | - |
| 300 | #endif | - |
| 301 | | - |
| 302 | return 0; executed: return 0;Execution Count:232 | 232 |
| 303 | } | - |
| 304 | | - |
| 305 | QLayoutItem *QMainWindowLayoutState::takeAt(int index, int *x) | - |
| 306 | { | - |
| 307 | #ifndef QT_NO_TOOLBAR | - |
| 308 | if (QLayoutItem *ret = toolBarAreaLayout.takeAt(x, index)) evaluated: QLayoutItem *ret = toolBarAreaLayout.takeAt(x, index)| yes Evaluation Count:1 | yes Evaluation Count:22 |
| 1-22 |
| 309 | return ret; executed: return ret;Execution Count:1 | 1 |
| 310 | #endif | - |
| 311 | | - |
| 312 | #ifndef QT_NO_DOCKWIDGET | - |
| 313 | if (QLayoutItem *ret = dockAreaLayout.takeAt(x, index)) evaluated: QLayoutItem *ret = dockAreaLayout.takeAt(x, index)| yes Evaluation Count:21 | yes Evaluation Count:1 |
| 1-21 |
| 314 | return ret; executed: return ret;Execution Count:21 | 21 |
| 315 | #else | - |
| 316 | if (centralWidgetItem != 0 && (*x)++ == index) { | - |
| 317 | QLayoutItem *ret = centralWidgetItem; | - |
| 318 | centralWidgetItem = 0; | - |
| 319 | return ret; | - |
| 320 | } | - |
| 321 | #endif | - |
| 322 | | - |
| 323 | return 0; executed: return 0;Execution Count:1 | 1 |
| 324 | } | - |
| 325 | | - |
| 326 | QList<int> QMainWindowLayoutState::indexOf(QWidget *widget) const | - |
| 327 | { | - |
| 328 | QList<int> result; never executed (the execution status of this line is deduced): QList<int> result; | - |
| 329 | | - |
| 330 | #ifndef QT_NO_TOOLBAR | - |
| 331 | // is it a toolbar? | - |
| 332 | if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) { never evaluated: QToolBar *toolBar = qobject_cast<QToolBar*>(widget) | 0 |
| 333 | result = toolBarAreaLayout.indexOf(toolBar); never executed (the execution status of this line is deduced): result = toolBarAreaLayout.indexOf(toolBar); | - |
| 334 | if (!result.isEmpty()) never evaluated: !result.isEmpty() | 0 |
| 335 | result.prepend(0); never executed: result.prepend(0); | 0 |
| 336 | return result; never executed: return result; | 0 |
| 337 | } | - |
| 338 | #endif | - |
| 339 | | - |
| 340 | #ifndef QT_NO_DOCKWIDGET | - |
| 341 | // is it a dock widget? | - |
| 342 | if (QDockWidget *dockWidget = qobject_cast<QDockWidget *>(widget)) { never evaluated: QDockWidget *dockWidget = qobject_cast<QDockWidget *>(widget) | 0 |
| 343 | result = dockAreaLayout.indexOf(dockWidget); never executed (the execution status of this line is deduced): result = dockAreaLayout.indexOf(dockWidget); | - |
| 344 | if (!result.isEmpty()) never evaluated: !result.isEmpty() | 0 |
| 345 | result.prepend(1); never executed: result.prepend(1); | 0 |
| 346 | return result; never executed: return result; | 0 |
| 347 | } | - |
| 348 | #endif //QT_NO_DOCKWIDGET | - |
| 349 | | - |
| 350 | return result; never executed: return result; | 0 |
| 351 | } | - |
| 352 | | - |
| 353 | bool QMainWindowLayoutState::contains(QWidget *widget) const | - |
| 354 | { | - |
| 355 | #ifndef QT_NO_DOCKWIDGET | - |
| 356 | if (dockAreaLayout.centralWidgetItem != 0 && dockAreaLayout.centralWidgetItem->widget() == widget) never evaluated: dockAreaLayout.centralWidgetItem != 0 never evaluated: dockAreaLayout.centralWidgetItem->widget() == widget | 0 |
| 357 | return true; never executed: return true; | 0 |
| 358 | if (!dockAreaLayout.indexOf(widget).isEmpty()) never evaluated: !dockAreaLayout.indexOf(widget).isEmpty() | 0 |
| 359 | return true; never executed: return true; | 0 |
| 360 | #else | - |
| 361 | if (centralWidgetItem != 0 && centralWidgetItem->widget() == widget) | - |
| 362 | return true; | - |
| 363 | #endif | - |
| 364 | | - |
| 365 | #ifndef QT_NO_TOOLBAR | - |
| 366 | if (!toolBarAreaLayout.indexOf(widget).isEmpty()) never evaluated: !toolBarAreaLayout.indexOf(widget).isEmpty() | 0 |
| 367 | return true; never executed: return true; | 0 |
| 368 | #endif | - |
| 369 | return false; never executed: return false; | 0 |
| 370 | } | - |
| 371 | | - |
| 372 | void QMainWindowLayoutState::setCentralWidget(QWidget *widget) | - |
| 373 | { | - |
| 374 | QLayoutItem *item = 0; executed (the execution status of this line is deduced): QLayoutItem *item = 0; | - |
| 375 | //make sure we remove the widget | - |
| 376 | deleteCentralWidgetItem(); executed (the execution status of this line is deduced): deleteCentralWidgetItem(); | - |
| 377 | | - |
| 378 | if (widget != 0) partially evaluated: widget != 0| yes Evaluation Count:18 | no Evaluation Count:0 |
| 0-18 |
| 379 | item = new QWidgetItemV2(widget); executed: item = new QWidgetItemV2(widget);Execution Count:18 | 18 |
| 380 | | - |
| 381 | #ifndef QT_NO_DOCKWIDGET | - |
| 382 | dockAreaLayout.centralWidgetItem = item; executed (the execution status of this line is deduced): dockAreaLayout.centralWidgetItem = item; | - |
| 383 | #else | - |
| 384 | centralWidgetItem = item; | - |
| 385 | #endif | - |
| 386 | } executed: }Execution Count:18 | 18 |
| 387 | | - |
| 388 | QWidget *QMainWindowLayoutState::centralWidget() const | - |
| 389 | { | - |
| 390 | QLayoutItem *item = 0; executed (the execution status of this line is deduced): QLayoutItem *item = 0; | - |
| 391 | | - |
| 392 | #ifndef QT_NO_DOCKWIDGET | - |
| 393 | item = dockAreaLayout.centralWidgetItem; executed (the execution status of this line is deduced): item = dockAreaLayout.centralWidgetItem; | - |
| 394 | #else | - |
| 395 | item = centralWidgetItem; | - |
| 396 | #endif | - |
| 397 | | - |
| 398 | if (item != 0) partially evaluated: item != 0| no Evaluation Count:0 | yes Evaluation Count:24 |
| 0-24 |
| 399 | return item->widget(); never executed: return item->widget(); | 0 |
| 400 | return 0; executed: return 0;Execution Count:24 | 24 |
| 401 | } | - |
| 402 | | - |
| 403 | QList<int> QMainWindowLayoutState::gapIndex(QWidget *widget, | - |
| 404 | const QPoint &pos) const | - |
| 405 | { | - |
| 406 | QList<int> result; never executed (the execution status of this line is deduced): QList<int> result; | - |
| 407 | | - |
| 408 | #ifndef QT_NO_TOOLBAR | - |
| 409 | // is it a toolbar? | - |
| 410 | if (qobject_cast<QToolBar*>(widget) != 0) { never evaluated: qobject_cast<QToolBar*>(widget) != 0 | 0 |
| 411 | result = toolBarAreaLayout.gapIndex(pos); never executed (the execution status of this line is deduced): result = toolBarAreaLayout.gapIndex(pos); | - |
| 412 | if (!result.isEmpty()) never evaluated: !result.isEmpty() | 0 |
| 413 | result.prepend(0); never executed: result.prepend(0); | 0 |
| 414 | return result; never executed: return result; | 0 |
| 415 | } | - |
| 416 | #endif | - |
| 417 | | - |
| 418 | #ifndef QT_NO_DOCKWIDGET | - |
| 419 | // is it a dock widget? | - |
| 420 | if (qobject_cast<QDockWidget *>(widget) != 0) { never evaluated: qobject_cast<QDockWidget *>(widget) != 0 | 0 |
| 421 | result = dockAreaLayout.gapIndex(pos); never executed (the execution status of this line is deduced): result = dockAreaLayout.gapIndex(pos); | - |
| 422 | if (!result.isEmpty()) never evaluated: !result.isEmpty() | 0 |
| 423 | result.prepend(1); never executed: result.prepend(1); | 0 |
| 424 | return result; never executed: return result; | 0 |
| 425 | } | - |
| 426 | #endif //QT_NO_DOCKWIDGET | - |
| 427 | | - |
| 428 | return result; never executed: return result; | 0 |
| 429 | } | - |
| 430 | | - |
| 431 | bool QMainWindowLayoutState::insertGap(const QList<int> &path, QLayoutItem *item) | - |
| 432 | { | - |
| 433 | if (path.isEmpty()) never evaluated: path.isEmpty() | 0 |
| 434 | return false; never executed: return false; | 0 |
| 435 | | - |
| 436 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 437 | | - |
| 438 | #ifndef QT_NO_TOOLBAR | - |
| 439 | if (i == 0) { | 0 |
| 440 | Q_ASSERT(qobject_cast<QToolBar*>(item->widget()) != 0); never executed (the execution status of this line is deduced): qt_noop(); | - |
| 441 | return toolBarAreaLayout.insertGap(path.mid(1), item); never executed: return toolBarAreaLayout.insertGap(path.mid(1), item); | 0 |
| 442 | } | - |
| 443 | #endif | - |
| 444 | | - |
| 445 | #ifndef QT_NO_DOCKWIDGET | - |
| 446 | if (i == 1) { | 0 |
| 447 | Q_ASSERT(qobject_cast<QDockWidget*>(item->widget()) != 0); never executed (the execution status of this line is deduced): qt_noop(); | - |
| 448 | return dockAreaLayout.insertGap(path.mid(1), item); never executed: return dockAreaLayout.insertGap(path.mid(1), item); | 0 |
| 449 | } | - |
| 450 | #endif //QT_NO_DOCKWIDGET | - |
| 451 | | - |
| 452 | return false; never executed: return false; | 0 |
| 453 | } | - |
| 454 | | - |
| 455 | void QMainWindowLayoutState::remove(const QList<int> &path) | - |
| 456 | { | - |
| 457 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 458 | | - |
| 459 | #ifndef QT_NO_TOOLBAR | - |
| 460 | if (i == 0) | 0 |
| 461 | toolBarAreaLayout.remove(path.mid(1)); never executed: toolBarAreaLayout.remove(path.mid(1)); | 0 |
| 462 | #endif | - |
| 463 | | - |
| 464 | #ifndef QT_NO_DOCKWIDGET | - |
| 465 | if (i == 1) | 0 |
| 466 | dockAreaLayout.remove(path.mid(1)); never executed: dockAreaLayout.remove(path.mid(1)); | 0 |
| 467 | #endif //QT_NO_DOCKWIDGET | - |
| 468 | } | 0 |
| 469 | | - |
| 470 | void QMainWindowLayoutState::remove(QLayoutItem *item) | - |
| 471 | { | - |
| 472 | #ifndef QT_NO_TOOLBAR | - |
| 473 | toolBarAreaLayout.remove(item); never executed (the execution status of this line is deduced): toolBarAreaLayout.remove(item); | - |
| 474 | #endif | - |
| 475 | | - |
| 476 | #ifndef QT_NO_DOCKWIDGET | - |
| 477 | // is it a dock widget? | - |
| 478 | if (QDockWidget *dockWidget = qobject_cast<QDockWidget *>(item->widget())) { never evaluated: QDockWidget *dockWidget = qobject_cast<QDockWidget *>(item->widget()) | 0 |
| 479 | QList<int> path = dockAreaLayout.indexOf(dockWidget); never executed (the execution status of this line is deduced): QList<int> path = dockAreaLayout.indexOf(dockWidget); | - |
| 480 | if (!path.isEmpty()) never evaluated: !path.isEmpty() | 0 |
| 481 | dockAreaLayout.remove(path); never executed: dockAreaLayout.remove(path); | 0 |
| 482 | } | 0 |
| 483 | #endif //QT_NO_DOCKWIDGET | - |
| 484 | } | 0 |
| 485 | | - |
| 486 | void QMainWindowLayoutState::clear() | - |
| 487 | { | - |
| 488 | #ifndef QT_NO_TOOLBAR | - |
| 489 | toolBarAreaLayout.clear(); executed (the execution status of this line is deduced): toolBarAreaLayout.clear(); | - |
| 490 | #endif | - |
| 491 | | - |
| 492 | #ifndef QT_NO_DOCKWIDGET | - |
| 493 | dockAreaLayout.clear(); executed (the execution status of this line is deduced): dockAreaLayout.clear(); | - |
| 494 | #else | - |
| 495 | centralWidgetRect = QRect(); | - |
| 496 | #endif | - |
| 497 | | - |
| 498 | rect = QRect(); executed (the execution status of this line is deduced): rect = QRect(); | - |
| 499 | } executed: }Execution Count:4 | 4 |
| 500 | | - |
| 501 | bool QMainWindowLayoutState::isValid() const | - |
| 502 | { | - |
| 503 | return rect.isValid(); executed: return rect.isValid();Execution Count:279 | 279 |
| 504 | } | - |
| 505 | | - |
| 506 | QLayoutItem *QMainWindowLayoutState::item(const QList<int> &path) | - |
| 507 | { | - |
| 508 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 509 | | - |
| 510 | #ifndef QT_NO_TOOLBAR | - |
| 511 | if (i == 0) | 0 |
| 512 | return toolBarAreaLayout.item(path.mid(1)).widgetItem; never executed: return toolBarAreaLayout.item(path.mid(1)).widgetItem; | 0 |
| 513 | #endif | - |
| 514 | | - |
| 515 | #ifndef QT_NO_DOCKWIDGET | - |
| 516 | if (i == 1) | 0 |
| 517 | return dockAreaLayout.item(path.mid(1)).widgetItem; never executed: return dockAreaLayout.item(path.mid(1)).widgetItem; | 0 |
| 518 | #endif //QT_NO_DOCKWIDGET | - |
| 519 | | - |
| 520 | return 0; never executed: return 0; | 0 |
| 521 | } | - |
| 522 | | - |
| 523 | QRect QMainWindowLayoutState::itemRect(const QList<int> &path) const | - |
| 524 | { | - |
| 525 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 526 | | - |
| 527 | #ifndef QT_NO_TOOLBAR | - |
| 528 | if (i == 0) | 0 |
| 529 | return toolBarAreaLayout.itemRect(path.mid(1)); never executed: return toolBarAreaLayout.itemRect(path.mid(1)); | 0 |
| 530 | #endif | - |
| 531 | | - |
| 532 | #ifndef QT_NO_DOCKWIDGET | - |
| 533 | if (i == 1) | 0 |
| 534 | return dockAreaLayout.itemRect(path.mid(1)); never executed: return dockAreaLayout.itemRect(path.mid(1)); | 0 |
| 535 | #endif //QT_NO_DOCKWIDGET | - |
| 536 | | - |
| 537 | return QRect(); never executed: return QRect(); | 0 |
| 538 | } | - |
| 539 | | - |
| 540 | QRect QMainWindowLayoutState::gapRect(const QList<int> &path) const | - |
| 541 | { | - |
| 542 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 543 | | - |
| 544 | #ifndef QT_NO_TOOLBAR | - |
| 545 | if (i == 0) | 0 |
| 546 | return toolBarAreaLayout.itemRect(path.mid(1)); never executed: return toolBarAreaLayout.itemRect(path.mid(1)); | 0 |
| 547 | #endif | - |
| 548 | | - |
| 549 | #ifndef QT_NO_DOCKWIDGET | - |
| 550 | if (i == 1) | 0 |
| 551 | return dockAreaLayout.gapRect(path.mid(1)); never executed: return dockAreaLayout.gapRect(path.mid(1)); | 0 |
| 552 | #endif //QT_NO_DOCKWIDGET | - |
| 553 | | - |
| 554 | return QRect(); never executed: return QRect(); | 0 |
| 555 | } | - |
| 556 | | - |
| 557 | QLayoutItem *QMainWindowLayoutState::plug(const QList<int> &path) | - |
| 558 | { | - |
| 559 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 560 | | - |
| 561 | #ifndef QT_NO_TOOLBAR | - |
| 562 | if (i == 0) | 0 |
| 563 | return toolBarAreaLayout.plug(path.mid(1)); never executed: return toolBarAreaLayout.plug(path.mid(1)); | 0 |
| 564 | #endif | - |
| 565 | | - |
| 566 | #ifndef QT_NO_DOCKWIDGET | - |
| 567 | if (i == 1) | 0 |
| 568 | return dockAreaLayout.plug(path.mid(1)); never executed: return dockAreaLayout.plug(path.mid(1)); | 0 |
| 569 | #endif //QT_NO_DOCKWIDGET | - |
| 570 | | - |
| 571 | return 0; never executed: return 0; | 0 |
| 572 | } | - |
| 573 | | - |
| 574 | QLayoutItem *QMainWindowLayoutState::unplug(const QList<int> &path, QMainWindowLayoutState *other) | - |
| 575 | { | - |
| 576 | int i = path.first(); never executed (the execution status of this line is deduced): int i = path.first(); | - |
| 577 | | - |
| 578 | #ifdef QT_NO_TOOLBAR | - |
| 579 | Q_UNUSED(other); | - |
| 580 | #else | - |
| 581 | if (i == 0) | 0 |
| 582 | return toolBarAreaLayout.unplug(path.mid(1), other ? &other->toolBarAreaLayout : 0); never executed: return toolBarAreaLayout.unplug(path.mid(1), other ? &other->toolBarAreaLayout : 0); | 0 |
| 583 | #endif | - |
| 584 | | - |
| 585 | #ifndef QT_NO_DOCKWIDGET | - |
| 586 | if (i == 1) | 0 |
| 587 | return dockAreaLayout.unplug(path.mid(1)); never executed: return dockAreaLayout.unplug(path.mid(1)); | 0 |
| 588 | #endif //QT_NO_DOCKWIDGET | - |
| 589 | | - |
| 590 | return 0; never executed: return 0; | 0 |
| 591 | } | - |
| 592 | | - |
| 593 | void QMainWindowLayoutState::saveState(QDataStream &stream) const | - |
| 594 | { | - |
| 595 | #ifndef QT_NO_DOCKWIDGET | - |
| 596 | dockAreaLayout.saveState(stream); executed (the execution status of this line is deduced): dockAreaLayout.saveState(stream); | - |
| 597 | #endif | - |
| 598 | #ifndef QT_NO_TOOLBAR | - |
| 599 | toolBarAreaLayout.saveState(stream); executed (the execution status of this line is deduced): toolBarAreaLayout.saveState(stream); | - |
| 600 | #endif | - |
| 601 | } executed: }Execution Count:2 | 2 |
| 602 | | - |
| 603 | template <typename T> | - |
| 604 | static QList<T> findChildrenHelper(const QObject *o) | - |
| 605 | { | - |
| 606 | const QObjectList &list = o->children(); executed (the execution status of this line is deduced): const QObjectList &list = o->children(); | - |
| 607 | QList<T> result; executed (the execution status of this line is deduced): QList<T> result; | - |
| 608 | | - |
| 609 | for (int i=0; i < list.size(); ++i) { evaluated: i < list.size()| yes Evaluation Count:33 | yes Evaluation Count:8 |
| 8-33 |
| 610 | if (T t = qobject_cast<T>(list[i])) { evaluated: T t = qobject_cast<T>(list[i])| yes Evaluation Count:6 | yes Evaluation Count:27 |
| 6-27 |
| 611 | result.append(t); executed (the execution status of this line is deduced): result.append(t); | - |
| 612 | } executed: }Execution Count:6 | 6 |
| 613 | } executed: }Execution Count:33 | 33 |
| 614 | | - |
| 615 | return result; executed: return result;Execution Count:8 | 8 |
| 616 | } | - |
| 617 | | - |
| 618 | //pre4.3 tests the format that was used before 4.3 | - |
| 619 | bool QMainWindowLayoutState::checkFormat(QDataStream &stream, bool pre43) | - |
| 620 | { | - |
| 621 | #ifdef QT_NO_TOOLBAR | - |
| 622 | Q_UNUSED(pre43); | - |
| 623 | #endif | - |
| 624 | while (!stream.atEnd()) { evaluated: !stream.atEnd()| yes Evaluation Count:4 | yes Evaluation Count:2 |
| 2-4 |
| 625 | uchar marker; executed (the execution status of this line is deduced): uchar marker; | - |
| 626 | stream >> marker; executed (the execution status of this line is deduced): stream >> marker; | - |
| 627 | switch(marker) | - |
| 628 | { | - |
| 629 | #ifndef QT_NO_TOOLBAR | - |
| 630 | case QToolBarAreaLayout::ToolBarStateMarker: | - |
| 631 | case QToolBarAreaLayout::ToolBarStateMarkerEx: | - |
| 632 | { | - |
| 633 | QList<QToolBar *> toolBars = findChildrenHelper<QToolBar*>(mainWindow); executed (the execution status of this line is deduced): QList<QToolBar *> toolBars = findChildrenHelper<QToolBar*>(mainWindow); | - |
| 634 | if (!toolBarAreaLayout.restoreState(stream, toolBars, marker, partially evaluated: !toolBarAreaLayout.restoreState(stream, toolBars, marker, pre43 , true )| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 635 | pre43 /*testing 4.3 format*/, true /*testing*/)) { partially evaluated: !toolBarAreaLayout.restoreState(stream, toolBars, marker, pre43 , true )| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 636 | return false; never executed: return false; | 0 |
| 637 | } | - |
| 638 | } | - |
| 639 | break; executed: break;Execution Count:2 | 2 |
| 640 | #endif // QT_NO_TOOLBAR | - |
| 641 | | - |
| 642 | #ifndef QT_NO_DOCKWIDGET | - |
| 643 | case QDockAreaLayout::DockWidgetStateMarker: | - |
| 644 | { | - |
| 645 | QList<QDockWidget *> dockWidgets = findChildrenHelper<QDockWidget*>(mainWindow); executed (the execution status of this line is deduced): QList<QDockWidget *> dockWidgets = findChildrenHelper<QDockWidget*>(mainWindow); | - |
| 646 | if (!dockAreaLayout.restoreState(stream, dockWidgets, true /*testing*/)) { partially evaluated: !dockAreaLayout.restoreState(stream, dockWidgets, true )| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 647 | return false; never executed: return false; | 0 |
| 648 | } | - |
| 649 | } | - |
| 650 | break; executed: break;Execution Count:2 | 2 |
| 651 | #endif | - |
| 652 | default: | - |
| 653 | //there was an error during the parsing | - |
| 654 | return false; never executed: return false; | 0 |
| 655 | }// switch | - |
| 656 | } //while executed: }Execution Count:4 | 4 |
| 657 | | - |
| 658 | //everything went fine: it must be a pre-4.3 saved state | - |
| 659 | return true; executed: return true;Execution Count:2 | 2 |
| 660 | } | - |
| 661 | | - |
| 662 | bool QMainWindowLayoutState::restoreState(QDataStream &_stream, | - |
| 663 | const QMainWindowLayoutState &oldState) | - |
| 664 | { | - |
| 665 | //make a copy of the data so that we can read it more than once | - |
| 666 | QByteArray copy; executed (the execution status of this line is deduced): QByteArray copy; | - |
| 667 | while(!_stream.atEnd()) { evaluated: !_stream.atEnd()| yes Evaluation Count:2 | yes Evaluation Count:2 |
| 2 |
| 668 | int length = 1024; executed (the execution status of this line is deduced): int length = 1024; | - |
| 669 | QByteArray ba(length, '\0'); executed (the execution status of this line is deduced): QByteArray ba(length, '\0'); | - |
| 670 | length = _stream.readRawData(ba.data(), ba.size()); executed (the execution status of this line is deduced): length = _stream.readRawData(ba.data(), ba.size()); | - |
| 671 | ba.resize(length); executed (the execution status of this line is deduced): ba.resize(length); | - |
| 672 | copy += ba; executed (the execution status of this line is deduced): copy += ba; | - |
| 673 | } executed: }Execution Count:2 | 2 |
| 674 | | - |
| 675 | QDataStream ds(copy); executed (the execution status of this line is deduced): QDataStream ds(copy); | - |
| 676 | const bool oldFormat = !checkFormat(ds, false); executed (the execution status of this line is deduced): const bool oldFormat = !checkFormat(ds, false); | - |
| 677 | if (oldFormat) { partially evaluated: oldFormat| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 678 | //we should try with the old format | - |
| 679 | QDataStream ds2(copy); never executed (the execution status of this line is deduced): QDataStream ds2(copy); | - |
| 680 | if (!checkFormat(ds2, true)) { never evaluated: !checkFormat(ds2, true) | 0 |
| 681 | return false; //format unknown never executed: return false; | 0 |
| 682 | } | - |
| 683 | } | 0 |
| 684 | | - |
| 685 | QDataStream stream(copy); executed (the execution status of this line is deduced): QDataStream stream(copy); | - |
| 686 | | - |
| 687 | while (!stream.atEnd()) { evaluated: !stream.atEnd()| yes Evaluation Count:4 | yes Evaluation Count:2 |
| 2-4 |
| 688 | uchar marker; executed (the execution status of this line is deduced): uchar marker; | - |
| 689 | stream >> marker; executed (the execution status of this line is deduced): stream >> marker; | - |
| 690 | switch(marker) | - |
| 691 | { | - |
| 692 | #ifndef QT_NO_DOCKWIDGET | - |
| 693 | case QDockAreaLayout::DockWidgetStateMarker: | - |
| 694 | { | - |
| 695 | QList<QDockWidget *> dockWidgets = findChildrenHelper<QDockWidget*>(mainWindow); executed (the execution status of this line is deduced): QList<QDockWidget *> dockWidgets = findChildrenHelper<QDockWidget*>(mainWindow); | - |
| 696 | if (!dockAreaLayout.restoreState(stream, dockWidgets)) partially evaluated: !dockAreaLayout.restoreState(stream, dockWidgets)| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 697 | return false; never executed: return false; | 0 |
| 698 | | - |
| 699 | for (int i = 0; i < dockWidgets.size(); ++i) { evaluated: i < dockWidgets.size()| yes Evaluation Count:3 | yes Evaluation Count:2 |
| 2-3 |
| 700 | QDockWidget *w = dockWidgets.at(i); executed (the execution status of this line is deduced): QDockWidget *w = dockWidgets.at(i); | - |
| 701 | QList<int> path = dockAreaLayout.indexOf(w); executed (the execution status of this line is deduced): QList<int> path = dockAreaLayout.indexOf(w); | - |
| 702 | if (path.isEmpty()) { partially evaluated: path.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
| 703 | QList<int> oldPath = oldState.dockAreaLayout.indexOf(w); never executed (the execution status of this line is deduced): QList<int> oldPath = oldState.dockAreaLayout.indexOf(w); | - |
| 704 | if (oldPath.isEmpty()) { never evaluated: oldPath.isEmpty() | 0 |
| 705 | continue; never executed: continue; | 0 |
| 706 | } | - |
| 707 | QDockAreaLayoutInfo *info = dockAreaLayout.info(oldPath); never executed (the execution status of this line is deduced): QDockAreaLayoutInfo *info = dockAreaLayout.info(oldPath); | - |
| 708 | if (info == 0) { never evaluated: info == 0 | 0 |
| 709 | continue; never executed: continue; | 0 |
| 710 | } | - |
| 711 | info->item_list.append(QDockAreaLayoutItem(new QDockWidgetItem(w))); never executed (the execution status of this line is deduced): info->item_list.append(QDockAreaLayoutItem(new QDockWidgetItem(w))); | - |
| 712 | } | 0 |
| 713 | } executed: }Execution Count:3 | 3 |
| 714 | } | - |
| 715 | break; executed: break;Execution Count:2 | 2 |
| 716 | #endif // QT_NO_DOCKWIDGET | - |
| 717 | | - |
| 718 | #ifndef QT_NO_TOOLBAR | - |
| 719 | case QToolBarAreaLayout::ToolBarStateMarker: | - |
| 720 | case QToolBarAreaLayout::ToolBarStateMarkerEx: | - |
| 721 | { | - |
| 722 | QList<QToolBar *> toolBars = findChildrenHelper<QToolBar*>(mainWindow); executed (the execution status of this line is deduced): QList<QToolBar *> toolBars = findChildrenHelper<QToolBar*>(mainWindow); | - |
| 723 | if (!toolBarAreaLayout.restoreState(stream, toolBars, marker, oldFormat)) partially evaluated: !toolBarAreaLayout.restoreState(stream, toolBars, marker, oldFormat)| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 724 | return false; never executed: return false; | 0 |
| 725 | | - |
| 726 | for (int i = 0; i < toolBars.size(); ++i) { partially evaluated: i < toolBars.size()| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 727 | QToolBar *w = toolBars.at(i); never executed (the execution status of this line is deduced): QToolBar *w = toolBars.at(i); | - |
| 728 | QList<int> path = toolBarAreaLayout.indexOf(w); never executed (the execution status of this line is deduced): QList<int> path = toolBarAreaLayout.indexOf(w); | - |
| 729 | if (path.isEmpty()) { never evaluated: path.isEmpty() | 0 |
| 730 | QList<int> oldPath = oldState.toolBarAreaLayout.indexOf(w); never executed (the execution status of this line is deduced): QList<int> oldPath = oldState.toolBarAreaLayout.indexOf(w); | - |
| 731 | if (oldPath.isEmpty()) { never evaluated: oldPath.isEmpty() | 0 |
| 732 | continue; never executed: continue; | 0 |
| 733 | } | - |
| 734 | toolBarAreaLayout.docks[oldPath.at(0)].insertToolBar(0, w); never executed (the execution status of this line is deduced): toolBarAreaLayout.docks[oldPath.at(0)].insertToolBar(0, w); | - |
| 735 | } | 0 |
| 736 | } | 0 |
| 737 | } | - |
| 738 | break; executed: break;Execution Count:2 | 2 |
| 739 | #endif //QT_NO_TOOLBAR | - |
| 740 | default: | - |
| 741 | return false; never executed: return false; | 0 |
| 742 | }// switch | - |
| 743 | } //while executed: }Execution Count:4 | 4 |
| 744 | | - |
| 745 | | - |
| 746 | return true; executed: return true;Execution Count:2 | 2 |
| 747 | } | - |
| 748 | | - |
| 749 | /****************************************************************************** | - |
| 750 | ** QMainWindowLayoutState - toolbars | - |
| 751 | */ | - |
| 752 | | - |
| 753 | #ifndef QT_NO_TOOLBAR | - |
| 754 | | - |
| 755 | static inline void validateToolBarArea(Qt::ToolBarArea &area) | - |
| 756 | { | - |
| 757 | switch (area) { | - |
| 758 | case Qt::LeftToolBarArea: | - |
| 759 | case Qt::RightToolBarArea: | - |
| 760 | case Qt::TopToolBarArea: | - |
| 761 | case Qt::BottomToolBarArea: | - |
| 762 | break; executed: break;Execution Count:2 | 2 |
| 763 | default: | - |
| 764 | area = Qt::TopToolBarArea; never executed (the execution status of this line is deduced): area = Qt::TopToolBarArea; | - |
| 765 | } | 0 |
| 766 | } executed: }Execution Count:2 | 2 |
| 767 | | - |
| 768 | static QInternal::DockPosition toDockPos(Qt::ToolBarArea area) | - |
| 769 | { | - |
| 770 | switch (area) { | - |
| 771 | case Qt::LeftToolBarArea: return QInternal::LeftDock; never executed: return QInternal::LeftDock; | 0 |
| 772 | case Qt::RightToolBarArea: return QInternal::RightDock; never executed: return QInternal::RightDock; | 0 |
| 773 | case Qt::TopToolBarArea: return QInternal::TopDock; executed: return QInternal::TopDock;Execution Count:2 | 2 |
| 774 | case Qt::BottomToolBarArea: return QInternal::BottomDock; never executed: return QInternal::BottomDock; | 0 |
| 775 | default: | - |
| 776 | break; | 0 |
| 777 | } | - |
| 778 | | - |
| 779 | return QInternal::DockCount; never executed: return QInternal::DockCount; | 0 |
| 780 | } | - |
| 781 | | - |
| 782 | static Qt::ToolBarArea toToolBarArea(QInternal::DockPosition pos) | - |
| 783 | { | - |
| 784 | switch (pos) { | - |
| 785 | case QInternal::LeftDock: return Qt::LeftToolBarArea; never executed: return Qt::LeftToolBarArea; | 0 |
| 786 | case QInternal::RightDock: return Qt::RightToolBarArea; never executed: return Qt::RightToolBarArea; | 0 |
| 787 | case QInternal::TopDock: return Qt::TopToolBarArea; never executed: return Qt::TopToolBarArea; | 0 |
| 788 | case QInternal::BottomDock: return Qt::BottomToolBarArea; never executed: return Qt::BottomToolBarArea; | 0 |
| 789 | default: break; | 0 |
| 790 | } | - |
| 791 | return Qt::NoToolBarArea; never executed: return Qt::NoToolBarArea; | 0 |
| 792 | } | - |
| 793 | | - |
| 794 | static inline Qt::ToolBarArea toToolBarArea(int pos) | - |
| 795 | { | - |
| 796 | return toToolBarArea(static_cast<QInternal::DockPosition>(pos)); never executed: return toToolBarArea(static_cast<QInternal::DockPosition>(pos)); | 0 |
| 797 | } | - |
| 798 | | - |
| 799 | void QMainWindowLayout::addToolBarBreak(Qt::ToolBarArea area) | - |
| 800 | { | - |
| 801 | validateToolBarArea(area); never executed (the execution status of this line is deduced): validateToolBarArea(area); | - |
| 802 | | - |
| 803 | layoutState.toolBarAreaLayout.addToolBarBreak(toDockPos(area)); never executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.addToolBarBreak(toDockPos(area)); | - |
| 804 | if (savedState.isValid()) never evaluated: savedState.isValid() | 0 |
| 805 | savedState.toolBarAreaLayout.addToolBarBreak(toDockPos(area)); never executed: savedState.toolBarAreaLayout.addToolBarBreak(toDockPos(area)); | 0 |
| 806 | | - |
| 807 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 808 | } | 0 |
| 809 | | - |
| 810 | void QMainWindowLayout::insertToolBarBreak(QToolBar *before) | - |
| 811 | { | - |
| 812 | layoutState.toolBarAreaLayout.insertToolBarBreak(before); never executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.insertToolBarBreak(before); | - |
| 813 | if (savedState.isValid()) never evaluated: savedState.isValid() | 0 |
| 814 | savedState.toolBarAreaLayout.insertToolBarBreak(before); never executed: savedState.toolBarAreaLayout.insertToolBarBreak(before); | 0 |
| 815 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 816 | } | 0 |
| 817 | | - |
| 818 | void QMainWindowLayout::removeToolBarBreak(QToolBar *before) | - |
| 819 | { | - |
| 820 | layoutState.toolBarAreaLayout.removeToolBarBreak(before); never executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.removeToolBarBreak(before); | - |
| 821 | if (savedState.isValid()) never evaluated: savedState.isValid() | 0 |
| 822 | savedState.toolBarAreaLayout.removeToolBarBreak(before); never executed: savedState.toolBarAreaLayout.removeToolBarBreak(before); | 0 |
| 823 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 824 | } | 0 |
| 825 | | - |
| 826 | void QMainWindowLayout::moveToolBar(QToolBar *toolbar, int pos) | - |
| 827 | { | - |
| 828 | layoutState.toolBarAreaLayout.moveToolBar(toolbar, pos); never executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.moveToolBar(toolbar, pos); | - |
| 829 | if (savedState.isValid()) never evaluated: savedState.isValid() | 0 |
| 830 | savedState.toolBarAreaLayout.moveToolBar(toolbar, pos); never executed: savedState.toolBarAreaLayout.moveToolBar(toolbar, pos); | 0 |
| 831 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 832 | } | 0 |
| 833 | | - |
| 834 | /* Removes the toolbar from the mainwindow so that it can be added again. Does not | - |
| 835 | explicitly hide the toolbar. */ | - |
| 836 | void QMainWindowLayout::removeToolBar(QToolBar *toolbar) | - |
| 837 | { | - |
| 838 | if (toolbar) { | 0 |
| 839 | QObject::disconnect(parentWidget(), SIGNAL(iconSizeChanged(QSize)), never executed (the execution status of this line is deduced): QObject::disconnect(parentWidget(), "2""iconSizeChanged(QSize)", | - |
| 840 | toolbar, SLOT(_q_updateIconSize(QSize))); never executed (the execution status of this line is deduced): toolbar, "1""_q_updateIconSize(QSize)"); | - |
| 841 | QObject::disconnect(parentWidget(), SIGNAL(toolButtonStyleChanged(Qt::ToolButtonStyle)), never executed (the execution status of this line is deduced): QObject::disconnect(parentWidget(), "2""toolButtonStyleChanged(Qt::ToolButtonStyle)", | - |
| 842 | toolbar, SLOT(_q_updateToolButtonStyle(Qt::ToolButtonStyle))); never executed (the execution status of this line is deduced): toolbar, "1""_q_updateToolButtonStyle(Qt::ToolButtonStyle)"); | - |
| 843 | | - |
| 844 | #ifdef Q_WS_MAC | - |
| 845 | if (usesHIToolBar(toolbar)) { | - |
| 846 | removeFromMacToolbar(toolbar); | - |
| 847 | } else | - |
| 848 | #endif // Q_WS_MAC | - |
| 849 | { | - |
| 850 | removeWidget(toolbar); never executed (the execution status of this line is deduced): removeWidget(toolbar); | - |
| 851 | } | - |
| 852 | } | 0 |
| 853 | } | 0 |
| 854 | | - |
| 855 | /*! | - |
| 856 | Adds \a toolbar to \a area, continuing the current line. | - |
| 857 | */ | - |
| 858 | void QMainWindowLayout::addToolBar(Qt::ToolBarArea area, | - |
| 859 | QToolBar *toolbar, | - |
| 860 | bool) | - |
| 861 | { | - |
| 862 | validateToolBarArea(area); executed (the execution status of this line is deduced): validateToolBarArea(area); | - |
| 863 | #ifdef Q_WS_MAC | - |
| 864 | if ((area == Qt::TopToolBarArea) | - |
| 865 | && layoutState.mainWindow->unifiedTitleAndToolBarOnMac()) { | - |
| 866 | insertIntoMacToolbar(0, toolbar); | - |
| 867 | } else | - |
| 868 | #endif | - |
| 869 | { | - |
| 870 | //let's add the toolbar to the layout | - |
| 871 | addChildWidget(toolbar); executed (the execution status of this line is deduced): addChildWidget(toolbar); | - |
| 872 | QLayoutItem * item = layoutState.toolBarAreaLayout.addToolBar(toDockPos(area), toolbar); executed (the execution status of this line is deduced): QLayoutItem * item = layoutState.toolBarAreaLayout.addToolBar(toDockPos(area), toolbar); | - |
| 873 | if (savedState.isValid() && item) { partially evaluated: savedState.isValid()| no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: item | 0-2 |
| 874 | // copy the toolbar also in the saved state | - |
| 875 | savedState.toolBarAreaLayout.insertItem(toDockPos(area), item); never executed (the execution status of this line is deduced): savedState.toolBarAreaLayout.insertItem(toDockPos(area), item); | - |
| 876 | } | 0 |
| 877 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 878 | | - |
| 879 | //this ensures that the toolbar has the right window flags (not floating any more) | - |
| 880 | toolbar->d_func()->updateWindowFlags(false /*floating*/); executed (the execution status of this line is deduced): toolbar->d_func()->updateWindowFlags(false ); | - |
| 881 | } | - |
| 882 | } executed: }Execution Count:2 | 2 |
| 883 | | - |
| 884 | /*! | - |
| 885 | Adds \a toolbar before \a before | - |
| 886 | */ | - |
| 887 | void QMainWindowLayout::insertToolBar(QToolBar *before, QToolBar *toolbar) | - |
| 888 | { | - |
| 889 | #ifdef Q_WS_MAC | - |
| 890 | if (usesHIToolBar(before)) { | - |
| 891 | insertIntoMacToolbar(before, toolbar); | - |
| 892 | } else | - |
| 893 | #endif // Q_WS_MAC | - |
| 894 | { | - |
| 895 | addChildWidget(toolbar); never executed (the execution status of this line is deduced): addChildWidget(toolbar); | - |
| 896 | QLayoutItem * item = layoutState.toolBarAreaLayout.insertToolBar(before, toolbar); never executed (the execution status of this line is deduced): QLayoutItem * item = layoutState.toolBarAreaLayout.insertToolBar(before, toolbar); | - |
| 897 | if (savedState.isValid() && item) { never evaluated: savedState.isValid() never evaluated: item | 0 |
| 898 | // copy the toolbar also in the saved state | - |
| 899 | savedState.toolBarAreaLayout.insertItem(before, item); never executed (the execution status of this line is deduced): savedState.toolBarAreaLayout.insertItem(before, item); | - |
| 900 | } | 0 |
| 901 | if (!currentGapPos.isEmpty() && currentGapPos.first() == 0) { never evaluated: !currentGapPos.isEmpty() never evaluated: currentGapPos.first() == 0 | 0 |
| 902 | currentGapPos = layoutState.toolBarAreaLayout.currentGapIndex(); never executed (the execution status of this line is deduced): currentGapPos = layoutState.toolBarAreaLayout.currentGapIndex(); | - |
| 903 | if (!currentGapPos.isEmpty()) { never evaluated: !currentGapPos.isEmpty() | 0 |
| 904 | currentGapPos.prepend(0); never executed (the execution status of this line is deduced): currentGapPos.prepend(0); | - |
| 905 | currentGapRect = layoutState.itemRect(currentGapPos); never executed (the execution status of this line is deduced): currentGapRect = layoutState.itemRect(currentGapPos); | - |
| 906 | } | 0 |
| 907 | } | 0 |
| 908 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 909 | } | - |
| 910 | } | 0 |
| 911 | | - |
| 912 | Qt::ToolBarArea QMainWindowLayout::toolBarArea(QToolBar *toolbar) const | - |
| 913 | { | - |
| 914 | QInternal::DockPosition pos = layoutState.toolBarAreaLayout.findToolBar(toolbar); executed (the execution status of this line is deduced): QInternal::DockPosition pos = layoutState.toolBarAreaLayout.findToolBar(toolbar); | - |
| 915 | switch (pos) { | - |
| 916 | case QInternal::LeftDock: return Qt::LeftToolBarArea; never executed: return Qt::LeftToolBarArea; | 0 |
| 917 | case QInternal::RightDock: return Qt::RightToolBarArea; never executed: return Qt::RightToolBarArea; | 0 |
| 918 | case QInternal::TopDock: return Qt::TopToolBarArea; executed: return Qt::TopToolBarArea;Execution Count:30 | 30 |
| 919 | case QInternal::BottomDock: return Qt::BottomToolBarArea; never executed: return Qt::BottomToolBarArea; | 0 |
| 920 | default: break; executed: break;Execution Count:3 | 3 |
| 921 | } | - |
| 922 | #ifdef Q_WS_MAC | - |
| 923 | if (pos == QInternal::DockCount) { | - |
| 924 | if (qtoolbarsInUnifiedToolbarList.contains(toolbar)) | - |
| 925 | return Qt::TopToolBarArea; | - |
| 926 | } | - |
| 927 | #endif | - |
| 928 | return Qt::NoToolBarArea; executed: return Qt::NoToolBarArea;Execution Count:3 | 3 |
| 929 | } | - |
| 930 | | - |
| 931 | bool QMainWindowLayout::toolBarBreak(QToolBar *toolBar) const | - |
| 932 | { | - |
| 933 | return layoutState.toolBarAreaLayout.toolBarBreak(toolBar); never executed: return layoutState.toolBarAreaLayout.toolBarBreak(toolBar); | 0 |
| 934 | } | - |
| 935 | | - |
| 936 | void QMainWindowLayout::getStyleOptionInfo(QStyleOptionToolBar *option, QToolBar *toolBar) const | - |
| 937 | { | - |
| 938 | option->toolBarArea = toolBarArea(toolBar); executed (the execution status of this line is deduced): option->toolBarArea = toolBarArea(toolBar); | - |
| 939 | layoutState.toolBarAreaLayout.getStyleOptionInfo(option, toolBar); executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.getStyleOptionInfo(option, toolBar); | - |
| 940 | } executed: }Execution Count:33 | 33 |
| 941 | | - |
| 942 | void QMainWindowLayout::toggleToolBarsVisible() | - |
| 943 | { | - |
| 944 | bool updateNonUnifiedParts = true; never executed (the execution status of this line is deduced): bool updateNonUnifiedParts = true; | - |
| 945 | #ifdef Q_WS_MAC | - |
| 946 | if (layoutState.mainWindow->unifiedTitleAndToolBarOnMac()) { | - |
| 947 | // If we hit this case, someone has pressed the "toolbar button" which will | - |
| 948 | // toggle the unified toolbar visibility, because that's what the user wants. | - |
| 949 | // We might be in a situation where someone has hidden all the toolbars | - |
| 950 | // beforehand (maybe in construction), but now they've hit this button and | - |
| 951 | // and are expecting the items to show. What do we do? | - |
| 952 | // 1) Check the visibility of all the toolbars, if one is visible, do nothing, this | - |
| 953 | // preserves what people would expect (these toolbars were visible when I clicked last time). | - |
| 954 | // 2) If NONE are visible, then show them all. Again, this preserves the user expectation | - |
| 955 | // of, "I want to see the toolbars." The user may get more toolbars than expected, but this | - |
| 956 | // is better seeing nothing. | - |
| 957 | // Don't worry about any of this if we are going invisible. This does mean we may get | - |
| 958 | // into issues when switching into and out of fullscreen mode, but this is probably minor. | - |
| 959 | // If we ever need to do hiding, that would have to be taken care of after the unified toolbar | - |
| 960 | // has finished hiding. | - |
| 961 | // People can of course handle the QEvent::ToolBarChange event themselves and do | - |
| 962 | // WHATEVER they want if they don't like what we are doing (though the unified toolbar | - |
| 963 | // will fire regardless). | - |
| 964 | | - |
| 965 | // Check if we REALLY need to update the geometry below. If we only have items in the | - |
| 966 | // unified toolbar, all the docks will be empty, so there's very little point | - |
| 967 | // in doing the geometry as Apple will do it (we also avoid flicker in Cocoa as well). | - |
| 968 | // FWIW, layoutState.toolBarAreaLayout.visible and the state of the unified toolbar | - |
| 969 | // visibility can get out of sync. I really don't think it's a big issue. It is kept | - |
| 970 | // to a minimum because we only change the visibility if we absolutely must. | - |
| 971 | // update the "non unified parts." | - |
| 972 | updateNonUnifiedParts = !layoutState.toolBarAreaLayout.isEmpty(); | - |
| 973 | | - |
| 974 | // We get this function before the unified toolbar does its thing. | - |
| 975 | // So, the value will be opposite of what we expect. | - |
| 976 | bool goingVisible = !macWindowToolbarIsVisible(qt_mac_window_for(layoutState.mainWindow)); | - |
| 977 | if (goingVisible) { | - |
| 978 | const int ToolBarCount = qtoolbarsInUnifiedToolbarList.size(); | - |
| 979 | bool needAllVisible = true; | - |
| 980 | for (int i = 0; i < ToolBarCount; ++i) { | - |
| 981 | if (!qtoolbarsInUnifiedToolbarList.at(i)->isHidden()) { | - |
| 982 | needAllVisible = false; | - |
| 983 | break; | - |
| 984 | } | - |
| 985 | } | - |
| 986 | if (needAllVisible) { | - |
| 987 | QBoolBlocker blocker(blockVisiblityCheck); // Disable the visibilty check because | - |
| 988 | // the toggle has already happened. | - |
| 989 | for (int i = 0; i < ToolBarCount; ++i) | - |
| 990 | qtoolbarsInUnifiedToolbarList.at(i)->setVisible(true); | - |
| 991 | } | - |
| 992 | } | - |
| 993 | if (!updateNonUnifiedParts) | - |
| 994 | layoutState.toolBarAreaLayout.visible = goingVisible; | - |
| 995 | } | - |
| 996 | #endif | - |
| 997 | if (updateNonUnifiedParts) { never evaluated: updateNonUnifiedParts | 0 |
| 998 | layoutState.toolBarAreaLayout.visible = !layoutState.toolBarAreaLayout.visible; never executed (the execution status of this line is deduced): layoutState.toolBarAreaLayout.visible = !layoutState.toolBarAreaLayout.visible; | - |
| 999 | if (!layoutState.mainWindow->isMaximized()) { never evaluated: !layoutState.mainWindow->isMaximized() | 0 |
| 1000 | QPoint topLeft = parentWidget()->geometry().topLeft(); never executed (the execution status of this line is deduced): QPoint topLeft = parentWidget()->geometry().topLeft(); | - |
| 1001 | QRect r = parentWidget()->geometry(); never executed (the execution status of this line is deduced): QRect r = parentWidget()->geometry(); | - |
| 1002 | r = layoutState.toolBarAreaLayout.rectHint(r); never executed (the execution status of this line is deduced): r = layoutState.toolBarAreaLayout.rectHint(r); | - |
| 1003 | r.moveTo(topLeft); never executed (the execution status of this line is deduced): r.moveTo(topLeft); | - |
| 1004 | parentWidget()->setGeometry(r); never executed (the execution status of this line is deduced): parentWidget()->setGeometry(r); | - |
| 1005 | } else { | 0 |
| 1006 | update(); never executed (the execution status of this line is deduced): update(); | - |
| 1007 | } | 0 |
| 1008 | } | - |
| 1009 | } | 0 |
| 1010 | | - |
| 1011 | #endif // QT_NO_TOOLBAR | - |
| 1012 | | - |
| 1013 | /****************************************************************************** | - |
| 1014 | ** QMainWindowLayoutState - dock areas | - |
| 1015 | */ | - |
| 1016 | | - |
| 1017 | #ifndef QT_NO_DOCKWIDGET | - |
| 1018 | | - |
| 1019 | static inline void validateDockWidgetArea(Qt::DockWidgetArea &area) | - |
| 1020 | { | - |
| 1021 | switch (area) { | - |
| 1022 | case Qt::LeftDockWidgetArea: | - |
| 1023 | case Qt::RightDockWidgetArea: | - |
| 1024 | case Qt::TopDockWidgetArea: | - |
| 1025 | case Qt::BottomDockWidgetArea: | - |
| 1026 | break; | 0 |
| 1027 | default: | - |
| 1028 | area = Qt::LeftDockWidgetArea; never executed (the execution status of this line is deduced): area = Qt::LeftDockWidgetArea; | - |
| 1029 | } | 0 |
| 1030 | } | 0 |
| 1031 | | - |
| 1032 | static QInternal::DockPosition toDockPos(Qt::DockWidgetArea area) | - |
| 1033 | { | - |
| 1034 | switch (area) { | - |
| 1035 | case Qt::LeftDockWidgetArea: return QInternal::LeftDock; executed: return QInternal::LeftDock;Execution Count:9 | 9 |
| 1036 | case Qt::RightDockWidgetArea: return QInternal::RightDock; executed: return QInternal::RightDock;Execution Count:5 | 5 |
| 1037 | case Qt::TopDockWidgetArea: return QInternal::TopDock; executed: return QInternal::TopDock;Execution Count:3 | 3 |
| 1038 | case Qt::BottomDockWidgetArea: return QInternal::BottomDock; executed: return QInternal::BottomDock;Execution Count:1 | 1 |
| 1039 | default: | - |
| 1040 | break; | 0 |
| 1041 | } | - |
| 1042 | | - |
| 1043 | return QInternal::DockCount; never executed: return QInternal::DockCount; | 0 |
| 1044 | } | - |
| 1045 | | - |
| 1046 | static Qt::DockWidgetArea toDockWidgetArea(QInternal::DockPosition pos) | - |
| 1047 | { | - |
| 1048 | switch (pos) { | - |
| 1049 | case QInternal::LeftDock : return Qt::LeftDockWidgetArea; executed: return Qt::LeftDockWidgetArea;Execution Count:6 | 6 |
| 1050 | case QInternal::RightDock : return Qt::RightDockWidgetArea; executed: return Qt::RightDockWidgetArea;Execution Count:2 | 2 |
| 1051 | case QInternal::TopDock : return Qt::TopDockWidgetArea; executed: return Qt::TopDockWidgetArea;Execution Count:11 | 11 |
| 1052 | case QInternal::BottomDock : return Qt::BottomDockWidgetArea; never executed: return Qt::BottomDockWidgetArea; | 0 |
| 1053 | default: | - |
| 1054 | break; | 0 |
| 1055 | } | - |
| 1056 | | - |
| 1057 | return Qt::NoDockWidgetArea; never executed: return Qt::NoDockWidgetArea; | 0 |
| 1058 | } | - |
| 1059 | | - |
| 1060 | inline static Qt::DockWidgetArea toDockWidgetArea(int pos) | - |
| 1061 | { | - |
| 1062 | return toDockWidgetArea(static_cast<QInternal::DockPosition>(pos)); executed: return toDockWidgetArea(static_cast<QInternal::DockPosition>(pos));Execution Count:19 | 19 |
| 1063 | } | - |
| 1064 | | - |
| 1065 | void QMainWindowLayout::setCorner(Qt::Corner corner, Qt::DockWidgetArea area) | - |
| 1066 | { | - |
| 1067 | if (layoutState.dockAreaLayout.corners[corner] == area) never evaluated: layoutState.dockAreaLayout.corners[corner] == area | 0 |
| 1068 | return; | 0 |
| 1069 | layoutState.dockAreaLayout.corners[corner] = area; never executed (the execution status of this line is deduced): layoutState.dockAreaLayout.corners[corner] = area; | - |
| 1070 | if (savedState.isValid()) never evaluated: savedState.isValid() | 0 |
| 1071 | savedState.dockAreaLayout.corners[corner] = area; never executed: savedState.dockAreaLayout.corners[corner] = area; | 0 |
| 1072 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 1073 | } | 0 |
| 1074 | | - |
| 1075 | Qt::DockWidgetArea QMainWindowLayout::corner(Qt::Corner corner) const | - |
| 1076 | { | - |
| 1077 | return layoutState.dockAreaLayout.corners[corner]; never executed: return layoutState.dockAreaLayout.corners[corner]; | 0 |
| 1078 | } | - |
| 1079 | | - |
| 1080 | void QMainWindowLayout::addDockWidget(Qt::DockWidgetArea area, | - |
| 1081 | QDockWidget *dockwidget, | - |
| 1082 | Qt::Orientation orientation) | - |
| 1083 | { | - |
| 1084 | addChildWidget(dockwidget); executed (the execution status of this line is deduced): addChildWidget(dockwidget); | - |
| 1085 | | - |
| 1086 | // If we are currently moving a separator, then we need to abort the move, since each | - |
| 1087 | // time we move the mouse layoutState is replaced by savedState modified by the move. | - |
| 1088 | if (!movingSeparator.isEmpty()) partially evaluated: !movingSeparator.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:18 |
| 0-18 |
| 1089 | endSeparatorMove(movingSeparatorPos); never executed: endSeparatorMove(movingSeparatorPos); | 0 |
| 1090 | | - |
| 1091 | layoutState.dockAreaLayout.addDockWidget(toDockPos(area), dockwidget, orientation); executed (the execution status of this line is deduced): layoutState.dockAreaLayout.addDockWidget(toDockPos(area), dockwidget, orientation); | - |
| 1092 | emit dockwidget->dockLocationChanged(area); executed (the execution status of this line is deduced): dockwidget->dockLocationChanged(area); | - |
| 1093 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 1094 | } executed: }Execution Count:18 | 18 |
| 1095 | | - |
| 1096 | void QMainWindowLayout::tabifyDockWidget(QDockWidget *first, QDockWidget *second) | - |
| 1097 | { | - |
| 1098 | addChildWidget(second); executed (the execution status of this line is deduced): addChildWidget(second); | - |
| 1099 | layoutState.dockAreaLayout.tabifyDockWidget(first, second); executed (the execution status of this line is deduced): layoutState.dockAreaLayout.tabifyDockWidget(first, second); | - |
| 1100 | emit second->dockLocationChanged(dockWidgetArea(first)); executed (the execution status of this line is deduced): second->dockLocationChanged(dockWidgetArea(first)); | - |
| 1101 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 1102 | } executed: }Execution Count:4 | 4 |
| 1103 | | - |
| 1104 | bool QMainWindowLayout::restoreDockWidget(QDockWidget *dockwidget) | - |
| 1105 | { | - |
| 1106 | addChildWidget(dockwidget); never executed (the execution status of this line is deduced): addChildWidget(dockwidget); | - |
| 1107 | if (!layoutState.dockAreaLayout.restoreDockWidget(dockwidget)) never evaluated: !layoutState.dockAreaLayout.restoreDockWidget(dockwidget) | 0 |
| 1108 | return false; never executed: return false; | 0 |
| 1109 | emit dockwidget->dockLocationChanged(dockWidgetArea(dockwidget)); never executed (the execution status of this line is deduced): dockwidget->dockLocationChanged(dockWidgetArea(dockwidget)); | - |
| 1110 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 1111 | return true; never executed: return true; | 0 |
| 1112 | } | - |
| 1113 | | - |
| 1114 | #ifndef QT_NO_TABBAR | - |
| 1115 | bool QMainWindowLayout::documentMode() const | - |
| 1116 | { | - |
| 1117 | return _documentMode; never executed: return _documentMode; | 0 |
| 1118 | } | - |
| 1119 | | - |
| 1120 | void QMainWindowLayout::setDocumentMode(bool enabled) | - |
| 1121 | { | - |
| 1122 | if (_documentMode == enabled) never evaluated: _documentMode == enabled | 0 |
| 1123 | return; | 0 |
| 1124 | | - |
| 1125 | _documentMode = enabled; never executed (the execution status of this line is deduced): _documentMode = enabled; | - |
| 1126 | | - |
| 1127 | // Update the document mode for all tab bars | - |
| 1128 | foreach (QTabBar *bar, usedTabBars) never executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(usedTabBars)> _container_(usedTabBars); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QTabBar *bar = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 1129 | bar->setDocumentMode(_documentMode); never executed: bar->setDocumentMode(_documentMode); | 0 |
| 1130 | foreach (QTabBar *bar, unusedTabBars) never executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(unusedTabBars)> _container_(unusedTabBars); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QTabBar *bar = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 1131 | bar->setDocumentMode(_documentMode); never executed: bar->setDocumentMode(_documentMode); | 0 |
| 1132 | } | 0 |
| 1133 | #endif // QT_NO_TABBAR | - |
| 1134 | | - |
| 1135 | void QMainWindowLayout::setVerticalTabsEnabled(bool enabled) | - |
| 1136 | { | - |
| 1137 | #ifdef QT_NO_TABBAR | - |
| 1138 | Q_UNUSED(enabled); | - |
| 1139 | #else | - |
| 1140 | if (verticalTabsEnabled == enabled) never evaluated: verticalTabsEnabled == enabled | 0 |
| 1141 | return; | 0 |
| 1142 | | - |
| 1143 | verticalTabsEnabled = enabled; never executed (the execution status of this line is deduced): verticalTabsEnabled = enabled; | - |
| 1144 | | - |
| 1145 | updateTabBarShapes(); never executed (the execution status of this line is deduced): updateTabBarShapes(); | - |
| 1146 | #endif // QT_NO_TABBAR | - |
| 1147 | } | 0 |
| 1148 | | - |
| 1149 | #ifndef QT_NO_TABWIDGET | - |
| 1150 | QTabWidget::TabShape QMainWindowLayout::tabShape() const | - |
| 1151 | { | - |
| 1152 | return _tabShape; never executed: return _tabShape; | 0 |
| 1153 | } | - |
| 1154 | | - |
| 1155 | void QMainWindowLayout::setTabShape(QTabWidget::TabShape tabShape) | - |
| 1156 | { | - |
| 1157 | if (_tabShape == tabShape) never evaluated: _tabShape == tabShape | 0 |
| 1158 | return; | 0 |
| 1159 | | - |
| 1160 | _tabShape = tabShape; never executed (the execution status of this line is deduced): _tabShape = tabShape; | - |
| 1161 | | - |
| 1162 | updateTabBarShapes(); never executed (the execution status of this line is deduced): updateTabBarShapes(); | - |
| 1163 | } | 0 |
| 1164 | | - |
| 1165 | QTabWidget::TabPosition QMainWindowLayout::tabPosition(Qt::DockWidgetArea area) const | - |
| 1166 | { | - |
| 1167 | return tabPositions[toDockPos(area)]; never executed: return tabPositions[toDockPos(area)]; | 0 |
| 1168 | } | - |
| 1169 | | - |
| 1170 | void QMainWindowLayout::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition) | - |
| 1171 | { | - |
| 1172 | const Qt::DockWidgetArea dockWidgetAreas[] = { never executed (the execution status of this line is deduced): const Qt::DockWidgetArea dockWidgetAreas[] = { | - |
| 1173 | Qt::TopDockWidgetArea, never executed (the execution status of this line is deduced): Qt::TopDockWidgetArea, | - |
| 1174 | Qt::LeftDockWidgetArea, never executed (the execution status of this line is deduced): Qt::LeftDockWidgetArea, | - |
| 1175 | Qt::BottomDockWidgetArea, never executed (the execution status of this line is deduced): Qt::BottomDockWidgetArea, | - |
| 1176 | Qt::RightDockWidgetArea never executed (the execution status of this line is deduced): Qt::RightDockWidgetArea | - |
| 1177 | }; never executed (the execution status of this line is deduced): }; | - |
| 1178 | const QInternal::DockPosition dockPositions[] = { never executed (the execution status of this line is deduced): const QInternal::DockPosition dockPositions[] = { | - |
| 1179 | QInternal::TopDock, never executed (the execution status of this line is deduced): QInternal::TopDock, | - |
| 1180 | QInternal::LeftDock, never executed (the execution status of this line is deduced): QInternal::LeftDock, | - |
| 1181 | QInternal::BottomDock, never executed (the execution status of this line is deduced): QInternal::BottomDock, | - |
| 1182 | QInternal::RightDock never executed (the execution status of this line is deduced): QInternal::RightDock | - |
| 1183 | }; never executed (the execution status of this line is deduced): }; | - |
| 1184 | | - |
| 1185 | for (int i = 0; i < QInternal::DockCount; ++i) never evaluated: i < QInternal::DockCount | 0 |
| 1186 | if (areas & dockWidgetAreas[i]) never evaluated: areas & dockWidgetAreas[i] | 0 |
| 1187 | tabPositions[dockPositions[i]] = tabPosition; never executed: tabPositions[dockPositions[i]] = tabPosition; | 0 |
| 1188 | | - |
| 1189 | updateTabBarShapes(); never executed (the execution status of this line is deduced): updateTabBarShapes(); | - |
| 1190 | } | 0 |
| 1191 | | - |
| 1192 | static inline QTabBar::Shape tabBarShapeFrom(QTabWidget::TabShape shape, QTabWidget::TabPosition position) | - |
| 1193 | { | - |
| 1194 | const bool rounded = (shape == QTabWidget::Rounded); never executed (the execution status of this line is deduced): const bool rounded = (shape == QTabWidget::Rounded); | - |
| 1195 | if (position == QTabWidget::North) never evaluated: position == QTabWidget::North | 0 |
| 1196 | return rounded ? QTabBar::RoundedNorth : QTabBar::TriangularNorth; never executed: return rounded ? QTabBar::RoundedNorth : QTabBar::TriangularNorth; | 0 |
| 1197 | if (position == QTabWidget::South) never evaluated: position == QTabWidget::South | 0 |
| 1198 | return rounded ? QTabBar::RoundedSouth : QTabBar::TriangularSouth; never executed: return rounded ? QTabBar::RoundedSouth : QTabBar::TriangularSouth; | 0 |
| 1199 | if (position == QTabWidget::East) never evaluated: position == QTabWidget::East | 0 |
| 1200 | return rounded ? QTabBar::RoundedEast : QTabBar::TriangularEast; never executed: return rounded ? QTabBar::RoundedEast : QTabBar::TriangularEast; | 0 |
| 1201 | if (position == QTabWidget::West) never evaluated: position == QTabWidget::West | 0 |
| 1202 | return rounded ? QTabBar::RoundedWest : QTabBar::TriangularWest; never executed: return rounded ? QTabBar::RoundedWest : QTabBar::TriangularWest; | 0 |
| 1203 | return QTabBar::RoundedNorth; never executed: return QTabBar::RoundedNorth; | 0 |
| 1204 | } | - |
| 1205 | #endif // QT_NO_TABWIDGET | - |
| 1206 | | - |
| 1207 | #ifndef QT_NO_TABBAR | - |
| 1208 | void QMainWindowLayout::updateTabBarShapes() | - |
| 1209 | { | - |
| 1210 | #ifndef QT_NO_TABWIDGET | - |
| 1211 | const QTabWidget::TabPosition vertical[] = { never executed (the execution status of this line is deduced): const QTabWidget::TabPosition vertical[] = { | - |
| 1212 | QTabWidget::West, never executed (the execution status of this line is deduced): QTabWidget::West, | - |
| 1213 | QTabWidget::East, never executed (the execution status of this line is deduced): QTabWidget::East, | - |
| 1214 | QTabWidget::North, never executed (the execution status of this line is deduced): QTabWidget::North, | - |
| 1215 | QTabWidget::South never executed (the execution status of this line is deduced): QTabWidget::South | - |
| 1216 | }; never executed (the execution status of this line is deduced): }; | - |
| 1217 | #else | - |
| 1218 | const QTabBar::Shape vertical[] = { | - |
| 1219 | QTabBar::RoundedWest, | - |
| 1220 | QTabBar::RoundedEast, | - |
| 1221 | QTabBar::RoundedNorth, | - |
| 1222 | QTabBar::RoundedSouth | - |
| 1223 | }; | - |
| 1224 | #endif | - |
| 1225 | | - |
| 1226 | QDockAreaLayout &layout = layoutState.dockAreaLayout; never executed (the execution status of this line is deduced): QDockAreaLayout &layout = layoutState.dockAreaLayout; | - |
| 1227 | | - |
| 1228 | for (int i = 0; i < QInternal::DockCount; ++i) { never evaluated: i < QInternal::DockCount | 0 |
| 1229 | #ifndef QT_NO_TABWIDGET | - |
| 1230 | QTabWidget::TabPosition pos = verticalTabsEnabled ? vertical[i] : tabPositions[i]; never evaluated: verticalTabsEnabled | 0 |
| 1231 | QTabBar::Shape shape = tabBarShapeFrom(_tabShape, pos); never executed (the execution status of this line is deduced): QTabBar::Shape shape = tabBarShapeFrom(_tabShape, pos); | - |
| 1232 | #else | - |
| 1233 | QTabBar::Shape shape = verticalTabsEnabled ? vertical[i] : QTabBar::RoundedSouth; | - |
| 1234 | #endif | - |
| 1235 | layout.docks[i].setTabBarShape(shape); never executed (the execution status of this line is deduced): layout.docks[i].setTabBarShape(shape); | - |
| 1236 | } | 0 |
| 1237 | } | 0 |
| 1238 | #endif // QT_NO_TABBAR | - |
| 1239 | | - |
| 1240 | void QMainWindowLayout::splitDockWidget(QDockWidget *after, | - |
| 1241 | QDockWidget *dockwidget, | - |
| 1242 | Qt::Orientation orientation) | - |
| 1243 | { | - |
| 1244 | addChildWidget(dockwidget); executed (the execution status of this line is deduced): addChildWidget(dockwidget); | - |
| 1245 | layoutState.dockAreaLayout.splitDockWidget(after, dockwidget, orientation); executed (the execution status of this line is deduced): layoutState.dockAreaLayout.splitDockWidget(after, dockwidget, orientation); | - |
| 1246 | emit dockwidget->dockLocationChanged(dockWidgetArea(after)); executed (the execution status of this line is deduced): dockwidget->dockLocationChanged(dockWidgetArea(after)); | - |
| 1247 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 1248 | } executed: }Execution Count:1 | 1 |
| 1249 | | - |
| 1250 | Qt::DockWidgetArea QMainWindowLayout::dockWidgetArea(QDockWidget *widget) const | - |
| 1251 | { | - |
| 1252 | QList<int> pathToWidget = layoutState.dockAreaLayout.indexOf(widget); executed (the execution status of this line is deduced): QList<int> pathToWidget = layoutState.dockAreaLayout.indexOf(widget); | - |
| 1253 | if (pathToWidget.isEmpty()) evaluated: pathToWidget.isEmpty()| yes Evaluation Count:2 | yes Evaluation Count:19 |
| 2-19 |
| 1254 | return Qt::NoDockWidgetArea; executed: return Qt::NoDockWidgetArea;Execution Count:2 | 2 |
| 1255 | return toDockWidgetArea(pathToWidget.first()); executed: return toDockWidgetArea(pathToWidget.first());Execution Count:19 | 19 |
| 1256 | } | - |
| 1257 | | - |
| 1258 | void QMainWindowLayout::keepSize(QDockWidget *w) | - |
| 1259 | { | - |
| 1260 | layoutState.dockAreaLayout.keepSize(w); executed (the execution status of this line is deduced): layoutState.dockAreaLayout.keepSize(w); | - |
| 1261 | } executed: }Execution Count:15 | 15 |
| 1262 | | - |
| 1263 | #ifndef QT_NO_TABBAR | - |
| 1264 | | - |
| 1265 | class QMainWindowTabBar : public QTabBar | - |
| 1266 | { | - |
| 1267 | public: | - |
| 1268 | QMainWindowTabBar(QWidget *parent); | - |
| 1269 | protected: | - |
| 1270 | bool event(QEvent *e); | - |
| 1271 | }; | - |
| 1272 | | - |
| 1273 | QMainWindowTabBar::QMainWindowTabBar(QWidget *parent) | - |
| 1274 | : QTabBar(parent) | - |
| 1275 | { | - |
| 1276 | setExpanding(false); executed (the execution status of this line is deduced): setExpanding(false); | - |
| 1277 | } executed: }Execution Count:5 | 5 |
| 1278 | | - |
| 1279 | bool QMainWindowTabBar::event(QEvent *e) | - |
| 1280 | { | - |
| 1281 | // show the tooltip if tab is too small to fit label | - |
| 1282 | | - |
| 1283 | if (e->type() != QEvent::ToolTip) partially evaluated: e->type() != QEvent::ToolTip| yes Evaluation Count:92 | no Evaluation Count:0 |
| 0-92 |
| 1284 | return QTabBar::event(e); executed: return QTabBar::event(e);Execution Count:92 | 92 |
| 1285 | QSize size = this->size(); never executed (the execution status of this line is deduced): QSize size = this->size(); | - |
| 1286 | QSize hint = sizeHint(); never executed (the execution status of this line is deduced): QSize hint = sizeHint(); | - |
| 1287 | if (shape() == QTabBar::RoundedWest || shape() == QTabBar::RoundedEast) { never evaluated: shape() == QTabBar::RoundedWest never evaluated: shape() == QTabBar::RoundedEast | 0 |
| 1288 | size.transpose(); never executed (the execution status of this line is deduced): size.transpose(); | - |
| 1289 | hint.transpose(); never executed (the execution status of this line is deduced): hint.transpose(); | - |
| 1290 | } | 0 |
| 1291 | if (size.width() < hint.width()) never evaluated: size.width() < hint.width() | 0 |
| 1292 | return QTabBar::event(e); never executed: return QTabBar::event(e); | 0 |
| 1293 | e->accept(); never executed (the execution status of this line is deduced): e->accept(); | - |
| 1294 | return true; never executed: return true; | 0 |
| 1295 | } | - |
| 1296 | | - |
| 1297 | QTabBar *QMainWindowLayout::getTabBar() | - |
| 1298 | { | - |
| 1299 | QTabBar *result = 0; executed (the execution status of this line is deduced): QTabBar *result = 0; | - |
| 1300 | if (!unusedTabBars.isEmpty()) { partially evaluated: !unusedTabBars.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
| 1301 | result = unusedTabBars.takeLast(); never executed (the execution status of this line is deduced): result = unusedTabBars.takeLast(); | - |
| 1302 | } else { | 0 |
| 1303 | result = new QMainWindowTabBar(parentWidget()); executed (the execution status of this line is deduced): result = new QMainWindowTabBar(parentWidget()); | - |
| 1304 | result->setDrawBase(true); executed (the execution status of this line is deduced): result->setDrawBase(true); | - |
| 1305 | result->setElideMode(Qt::ElideRight); executed (the execution status of this line is deduced): result->setElideMode(Qt::ElideRight); | - |
| 1306 | result->setDocumentMode(_documentMode); executed (the execution status of this line is deduced): result->setDocumentMode(_documentMode); | - |
| 1307 | connect(result, SIGNAL(currentChanged(int)), this, SLOT(tabChanged())); executed (the execution status of this line is deduced): connect(result, "2""currentChanged(int)", this, "1""tabChanged()"); | - |
| 1308 | } executed: }Execution Count:5 | 5 |
| 1309 | | - |
| 1310 | usedTabBars.insert(result); executed (the execution status of this line is deduced): usedTabBars.insert(result); | - |
| 1311 | return result; executed: return result;Execution Count:5 | 5 |
| 1312 | } | - |
| 1313 | | - |
| 1314 | // Allocates a new separator widget if needed | - |
| 1315 | QWidget *QMainWindowLayout::getSeparatorWidget() | - |
| 1316 | { | - |
| 1317 | QWidget *result = 0; never executed (the execution status of this line is deduced): QWidget *result = 0; | - |
| 1318 | if (!unusedSeparatorWidgets.isEmpty()) { never evaluated: !unusedSeparatorWidgets.isEmpty() | 0 |
| 1319 | result = unusedSeparatorWidgets.takeLast(); never executed (the execution status of this line is deduced): result = unusedSeparatorWidgets.takeLast(); | - |
| 1320 | } else { | 0 |
| 1321 | result = new QWidget(parentWidget()); never executed (the execution status of this line is deduced): result = new QWidget(parentWidget()); | - |
| 1322 | result->setAttribute(Qt::WA_MouseNoMask, true); never executed (the execution status of this line is deduced): result->setAttribute(Qt::WA_MouseNoMask, true); | - |
| 1323 | result->setAutoFillBackground(false); never executed (the execution status of this line is deduced): result->setAutoFillBackground(false); | - |
| 1324 | result->setObjectName(QLatin1String("qt_qmainwindow_extended_splitter")); never executed (the execution status of this line is deduced): result->setObjectName(QLatin1String("qt_qmainwindow_extended_splitter")); | - |
| 1325 | } | 0 |
| 1326 | usedSeparatorWidgets.insert(result); never executed (the execution status of this line is deduced): usedSeparatorWidgets.insert(result); | - |
| 1327 | return result; never executed: return result; | 0 |
| 1328 | } | - |
| 1329 | | - |
| 1330 | void QMainWindowLayout::tabChanged() | - |
| 1331 | { | - |
| 1332 | QTabBar *tb = qobject_cast<QTabBar*>(sender()); executed (the execution status of this line is deduced): QTabBar *tb = qobject_cast<QTabBar*>(sender()); | - |
| 1333 | if (tb == 0) partially evaluated: tb == 0| no Evaluation Count:0 | yes Evaluation Count:8 |
| 0-8 |
| 1334 | return; | 0 |
| 1335 | QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(tb); executed (the execution status of this line is deduced): QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(tb); | - |
| 1336 | if (info == 0) evaluated: info == 0| yes Evaluation Count:2 | yes Evaluation Count:6 |
| 2-6 |
| 1337 | return; executed: return;Execution Count:2 | 2 |
| 1338 | info->apply(false); executed (the execution status of this line is deduced): info->apply(false); | - |
| 1339 | | - |
| 1340 | if (QWidget *w = centralWidget()) partially evaluated: QWidget *w = centralWidget()| no Evaluation Count:0 | yes Evaluation Count:6 |
| 0-6 |
| 1341 | w->raise(); never executed: w->raise(); | 0 |
| 1342 | } executed: }Execution Count:6 | 6 |
| 1343 | #endif // QT_NO_TABBAR | - |
| 1344 | | - |
| 1345 | bool QMainWindowLayout::startSeparatorMove(const QPoint &pos) | - |
| 1346 | { | - |
| 1347 | movingSeparator = layoutState.dockAreaLayout.findSeparator(pos); never executed (the execution status of this line is deduced): movingSeparator = layoutState.dockAreaLayout.findSeparator(pos); | - |
| 1348 | | - |
| 1349 | if (movingSeparator.isEmpty()) never evaluated: movingSeparator.isEmpty() | 0 |
| 1350 | return false; never executed: return false; | 0 |
| 1351 | | - |
| 1352 | layoutState.dockAreaLayout.fallbackToSizeHints = false; never executed (the execution status of this line is deduced): layoutState.dockAreaLayout.fallbackToSizeHints = false; | - |
| 1353 | | - |
| 1354 | savedState = layoutState; never executed (the execution status of this line is deduced): savedState = layoutState; | - |
| 1355 | movingSeparatorPos = movingSeparatorOrigin = pos; never executed (the execution status of this line is deduced): movingSeparatorPos = movingSeparatorOrigin = pos; | - |
| 1356 | | - |
| 1357 | return true; never executed: return true; | 0 |
| 1358 | } | - |
| 1359 | | - |
| 1360 | bool QMainWindowLayout::separatorMove(const QPoint &pos) | - |
| 1361 | { | - |
| 1362 | if (movingSeparator.isEmpty()) never evaluated: movingSeparator.isEmpty() | 0 |
| 1363 | return false; never executed: return false; | 0 |
| 1364 | movingSeparatorPos = pos; never executed (the execution status of this line is deduced): movingSeparatorPos = pos; | - |
| 1365 | separatorMoveTimer.start(0, this); never executed (the execution status of this line is deduced): separatorMoveTimer.start(0, this); | - |
| 1366 | return true; never executed: return true; | 0 |
| 1367 | } | - |
| 1368 | | - |
| 1369 | bool QMainWindowLayout::endSeparatorMove(const QPoint&) | - |
| 1370 | { | - |
| 1371 | if (movingSeparator.isEmpty()) never evaluated: movingSeparator.isEmpty() | 0 |
| 1372 | return false; never executed: return false; | 0 |
| 1373 | movingSeparator.clear(); never executed (the execution status of this line is deduced): movingSeparator.clear(); | - |
| 1374 | savedState.clear(); never executed (the execution status of this line is deduced): savedState.clear(); | - |
| 1375 | return true; never executed: return true; | 0 |
| 1376 | } | - |
| 1377 | | - |
| 1378 | void QMainWindowLayout::raise(QDockWidget *widget) | - |
| 1379 | { | - |
| 1380 | QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(widget); executed (the execution status of this line is deduced): QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(widget); | - |
| 1381 | if (info == 0) partially evaluated: info == 0| no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
| 1382 | return; | 0 |
| 1383 | #ifndef QT_NO_TABBAR | - |
| 1384 | if (!info->tabbed) partially evaluated: !info->tabbed| no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
| 1385 | return; | 0 |
| 1386 | info->setCurrentTab(widget); executed (the execution status of this line is deduced): info->setCurrentTab(widget); | - |
| 1387 | #endif | - |
| 1388 | } executed: }Execution Count:4 | 4 |
| 1389 | | - |
| 1390 | #endif // QT_NO_DOCKWIDGET | - |
| 1391 | | - |
| 1392 | | - |
| 1393 | /****************************************************************************** | - |
| 1394 | ** QMainWindowLayoutState - layout interface | - |
| 1395 | */ | - |
| 1396 | | - |
| 1397 | int QMainWindowLayout::count() const | - |
| 1398 | { | - |
| 1399 | qWarning("QMainWindowLayout::count: ?"); never executed (the execution status of this line is deduced): QMessageLogger("widgets/qmainwindowlayout.cpp", 1399, __PRETTY_FUNCTION__).warning("QMainWindowLayout::count: ?"); | - |
| 1400 | return 0; //################################################# never executed: return 0; | 0 |
| 1401 | } | - |
| 1402 | | - |
| 1403 | QLayoutItem *QMainWindowLayout::itemAt(int index) const | - |
| 1404 | { | - |
| 1405 | int x = 0; executed (the execution status of this line is deduced): int x = 0; | - |
| 1406 | | - |
| 1407 | if (QLayoutItem *ret = layoutState.itemAt(index, &x)) evaluated: QLayoutItem *ret = layoutState.itemAt(index, &x)| yes Evaluation Count:185 | yes Evaluation Count:232 |
| 185-232 |
| 1408 | return ret; executed: return ret;Execution Count:185 | 185 |
| 1409 | | - |
| 1410 | if (statusbar && x++ == index) evaluated: statusbar| yes Evaluation Count:59 | yes Evaluation Count:173 |
evaluated: x++ == index| yes Evaluation Count:30 | yes Evaluation Count:29 |
| 29-173 |
| 1411 | return statusbar; executed: return statusbar;Execution Count:30 | 30 |
| 1412 | | - |
| 1413 | return 0; executed: return 0;Execution Count:202 | 202 |
| 1414 | } | - |
| 1415 | | - |
| 1416 | QLayoutItem *QMainWindowLayout::takeAt(int index) | - |
| 1417 | { | - |
| 1418 | int x = 0; executed (the execution status of this line is deduced): int x = 0; | - |
| 1419 | | - |
| 1420 | if (QLayoutItem *ret = layoutState.takeAt(index, &x)) { evaluated: QLayoutItem *ret = layoutState.takeAt(index, &x)| yes Evaluation Count:22 | yes Evaluation Count:1 |
| 1-22 |
| 1421 | // the widget might in fact have been destroyed by now | - |
| 1422 | if (QWidget *w = ret->widget()) { partially evaluated: QWidget *w = ret->widget()| yes Evaluation Count:22 | no Evaluation Count:0 |
| 0-22 |
| 1423 | widgetAnimator.abort(w); executed (the execution status of this line is deduced): widgetAnimator.abort(w); | - |
| 1424 | if (w == pluggingWidget) partially evaluated: w == pluggingWidget| no Evaluation Count:0 | yes Evaluation Count:22 |
| 0-22 |
| 1425 | pluggingWidget = 0; never executed: pluggingWidget = 0; | 0 |
| 1426 | } executed: }Execution Count:22 | 22 |
| 1427 | | - |
| 1428 | if (savedState.isValid() ) { partially evaluated: savedState.isValid()| no Evaluation Count:0 | yes Evaluation Count:22 |
| 0-22 |
| 1429 | //we need to remove the item also from the saved state to prevent crash | - |
| 1430 | savedState.remove(ret); never executed (the execution status of this line is deduced): savedState.remove(ret); | - |
| 1431 | //Also, the item may be contained several times as a gap item. | - |
| 1432 | layoutState.remove(ret); never executed (the execution status of this line is deduced): layoutState.remove(ret); | - |
| 1433 | } | 0 |
| 1434 | | - |
| 1435 | #ifndef QT_NO_TOOLBAR | - |
| 1436 | if (!currentGapPos.isEmpty() && currentGapPos.first() == 0) { partially evaluated: !currentGapPos.isEmpty()| no Evaluation Count:0 | yes Evaluation Count:22 |
never evaluated: currentGapPos.first() == 0 | 0-22 |
| 1437 | currentGapPos = layoutState.toolBarAreaLayout.currentGapIndex(); never executed (the execution status of this line is deduced): currentGapPos = layoutState.toolBarAreaLayout.currentGapIndex(); | - |
| 1438 | if (!currentGapPos.isEmpty()) { never evaluated: !currentGapPos.isEmpty() | 0 |
| 1439 | currentGapPos.prepend(0); never executed (the execution status of this line is deduced): currentGapPos.prepend(0); | - |
| 1440 | currentGapRect = layoutState.itemRect(currentGapPos); never executed (the execution status of this line is deduced): currentGapRect = layoutState.itemRect(currentGapPos); | - |
| 1441 | } | 0 |
| 1442 | } | 0 |
| 1443 | #endif | - |
| 1444 | | - |
| 1445 | return ret; executed: return ret;Execution Count:22 | 22 |
| 1446 | } | - |
| 1447 | | - |
| 1448 | if (statusbar && x++ == index) { partially evaluated: statusbar| yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: x++ == index| yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-1 |
| 1449 | QLayoutItem *ret = statusbar; executed (the execution status of this line is deduced): QLayoutItem *ret = statusbar; | - |
| 1450 | statusbar = 0; executed (the execution status of this line is deduced): statusbar = 0; | - |
| 1451 | return ret; executed: return ret;Execution Count:1 | 1 |
| 1452 | } | - |
| 1453 | | - |
| 1454 | return 0; never executed: return 0; | 0 |
| 1455 | } | - |
| 1456 | | - |
| 1457 | void QMainWindowLayout::setGeometry(const QRect &_r) | - |
| 1458 | { | - |
| 1459 | if (savedState.isValid()) partially evaluated: savedState.isValid()| no Evaluation Count:0 | yes Evaluation Count:237 |
| 0-237 |
| 1460 | return; | 0 |
| 1461 | | - |
| 1462 | QRect r = _r; executed (the execution status of this line is deduced): QRect r = _r; | - |
| 1463 | | - |
| 1464 | QLayout::setGeometry(r); executed (the execution status of this line is deduced): QLayout::setGeometry(r); | - |
| 1465 | | - |
| 1466 | if (statusbar) { evaluated: statusbar| yes Evaluation Count:29 | yes Evaluation Count:208 |
| 29-208 |
| 1467 | QRect sbr(QPoint(0, 0), executed (the execution status of this line is deduced): QRect sbr(QPoint(0, 0), | - |
| 1468 | QSize(r.width(), statusbar->heightForWidth(r.width())) executed (the execution status of this line is deduced): QSize(r.width(), statusbar->heightForWidth(r.width())) | - |
| 1469 | .expandedTo(statusbar->minimumSize())); executed (the execution status of this line is deduced): .expandedTo(statusbar->minimumSize())); | - |
| 1470 | sbr.moveBottom(r.bottom()); executed (the execution status of this line is deduced): sbr.moveBottom(r.bottom()); | - |
| 1471 | QRect vr = QStyle::visualRect(parentWidget()->layoutDirection(), _r, sbr); executed (the execution status of this line is deduced): QRect vr = QStyle::visualRect(parentWidget()->layoutDirection(), _r, sbr); | - |
| 1472 | statusbar->setGeometry(vr); executed (the execution status of this line is deduced): statusbar->setGeometry(vr); | - |
| 1473 | r.setBottom(sbr.top() - 1); executed (the execution status of this line is deduced): r.setBottom(sbr.top() - 1); | - |
| 1474 | } executed: }Execution Count:29 | 29 |
| 1475 | | - |
| 1476 | layoutState.rect = r; executed (the execution status of this line is deduced): layoutState.rect = r; | - |
| 1477 | layoutState.fitLayout(); executed (the execution status of this line is deduced): layoutState.fitLayout(); | - |
| 1478 | applyState(layoutState, false); executed (the execution status of this line is deduced): applyState(layoutState, false); | - |
| 1479 | } executed: }Execution Count:237 | 237 |
| 1480 | | - |
| 1481 | void QMainWindowLayout::addItem(QLayoutItem *) | - |
| 1482 | { qWarning("QMainWindowLayout::addItem: Please use the public QMainWindow API instead"); } | 0 |
| 1483 | | - |
| 1484 | QSize QMainWindowLayout::sizeHint() const | - |
| 1485 | { | - |
| 1486 | if (!szHint.isValid()) { partially evaluated: !szHint.isValid()| yes Evaluation Count:30 | no Evaluation Count:0 |
| 0-30 |
| 1487 | szHint = layoutState.sizeHint(); executed (the execution status of this line is deduced): szHint = layoutState.sizeHint(); | - |
| 1488 | const QSize sbHint = statusbar ? statusbar->sizeHint() : QSize(0, 0); evaluated: statusbar| yes Evaluation Count:3 | yes Evaluation Count:27 |
| 3-27 |
| 1489 | szHint = QSize(qMax(sbHint.width(), szHint.width()), executed (the execution status of this line is deduced): szHint = QSize(qMax(sbHint.width(), szHint.width()), | - |
| 1490 | sbHint.height() + szHint.height()); executed (the execution status of this line is deduced): sbHint.height() + szHint.height()); | - |
| 1491 | } executed: }Execution Count:30 | 30 |
| 1492 | return szHint; executed: return szHint;Execution Count:30 | 30 |
| 1493 | } | - |
| 1494 | | - |
| 1495 | QSize QMainWindowLayout::minimumSize() const | - |
| 1496 | { | - |
| 1497 | if (!minSize.isValid()) { partially evaluated: !minSize.isValid()| yes Evaluation Count:167 | no Evaluation Count:0 |
| 0-167 |
| 1498 | minSize = layoutState.minimumSize(); executed (the execution status of this line is deduced): minSize = layoutState.minimumSize(); | - |
| 1499 | const QSize sbMin = statusbar ? statusbar->minimumSize() : QSize(0, 0); evaluated: statusbar| yes Evaluation Count:21 | yes Evaluation Count:146 |
| 21-146 |
| 1500 | minSize = QSize(qMax(sbMin.width(), minSize.width()), executed (the execution status of this line is deduced): minSize = QSize(qMax(sbMin.width(), minSize.width()), | - |
| 1501 | sbMin.height() + minSize.height()); executed (the execution status of this line is deduced): sbMin.height() + minSize.height()); | - |
| 1502 | #ifdef Q_WS_MAC | - |
| 1503 | const QSize storedSize = minSize; | - |
| 1504 | int minWidth = 0; | - |
| 1505 | foreach (QToolBar *toolbar, qtoolbarsInUnifiedToolbarList) { | - |
| 1506 | minWidth += toolbar->sizeHint().width() + 20; | - |
| 1507 | } | - |
| 1508 | minSize = QSize(qMax(minWidth, storedSize.width()), storedSize.height()); | - |
| 1509 | #endif | - |
| 1510 | } executed: }Execution Count:167 | 167 |
| 1511 | return minSize; executed: return minSize;Execution Count:167 | 167 |
| 1512 | } | - |
| 1513 | | - |
| 1514 | void QMainWindowLayout::invalidate() | - |
| 1515 | { | - |
| 1516 | QLayout::invalidate(); executed (the execution status of this line is deduced): QLayout::invalidate(); | - |
| 1517 | minSize = szHint = QSize(); executed (the execution status of this line is deduced): minSize = szHint = QSize(); | - |
| 1518 | } executed: }Execution Count:825 | 825 |
| 1519 | | - |
| 1520 | /****************************************************************************** | - |
| 1521 | ** QMainWindowLayout - remaining stuff | - |
| 1522 | */ | - |
| 1523 | | - |
| 1524 | static void fixToolBarOrientation(QLayoutItem *item, int dockPos) | - |
| 1525 | { | - |
| 1526 | #ifndef QT_NO_TOOLBAR | - |
| 1527 | QToolBar *toolBar = qobject_cast<QToolBar*>(item->widget()); never executed (the execution status of this line is deduced): QToolBar *toolBar = qobject_cast<QToolBar*>(item->widget()); | - |
| 1528 | if (toolBar == 0) never evaluated: toolBar == 0 | 0 |
| 1529 | return; | 0 |
| 1530 | | - |
| 1531 | QRect oldGeo = toolBar->geometry(); never executed (the execution status of this line is deduced): QRect oldGeo = toolBar->geometry(); | - |
| 1532 | | - |
| 1533 | QInternal::DockPosition pos never executed (the execution status of this line is deduced): QInternal::DockPosition pos | - |
| 1534 | = static_cast<QInternal::DockPosition>(dockPos); never executed (the execution status of this line is deduced): = static_cast<QInternal::DockPosition>(dockPos); | - |
| 1535 | Qt::Orientation o = pos == QInternal::TopDock || pos == QInternal::BottomDock never evaluated: pos == QInternal::TopDock never evaluated: pos == QInternal::BottomDock | 0 |
| 1536 | ? Qt::Horizontal : Qt::Vertical; never executed (the execution status of this line is deduced): ? Qt::Horizontal : Qt::Vertical; | - |
| 1537 | if (o != toolBar->orientation()) never evaluated: o != toolBar->orientation() | 0 |
| 1538 | toolBar->setOrientation(o); never executed: toolBar->setOrientation(o); | 0 |
| 1539 | | - |
| 1540 | QSize hint = toolBar->sizeHint().boundedTo(toolBar->maximumSize()) never executed (the execution status of this line is deduced): QSize hint = toolBar->sizeHint().boundedTo(toolBar->maximumSize()) | - |
| 1541 | .expandedTo(toolBar->minimumSize()); never executed (the execution status of this line is deduced): .expandedTo(toolBar->minimumSize()); | - |
| 1542 | | - |
| 1543 | if (toolBar->size() != hint) { never evaluated: toolBar->size() != hint | 0 |
| 1544 | QRect newGeo(oldGeo.topLeft(), hint); never executed (the execution status of this line is deduced): QRect newGeo(oldGeo.topLeft(), hint); | - |
| 1545 | if (toolBar->layoutDirection() == Qt::RightToLeft) never evaluated: toolBar->layoutDirection() == Qt::RightToLeft | 0 |
| 1546 | newGeo.moveRight(oldGeo.right()); never executed: newGeo.moveRight(oldGeo.right()); | 0 |
| 1547 | toolBar->setGeometry(newGeo); never executed (the execution status of this line is deduced): toolBar->setGeometry(newGeo); | - |
| 1548 | } | 0 |
| 1549 | | - |
| 1550 | #else | - |
| 1551 | Q_UNUSED(item); | - |
| 1552 | Q_UNUSED(dockPos); | - |
| 1553 | #endif | - |
| 1554 | } | 0 |
| 1555 | | - |
| 1556 | void QMainWindowLayout::revert(QLayoutItem *widgetItem) | - |
| 1557 | { | - |
| 1558 | if (!savedState.isValid()) never evaluated: !savedState.isValid() | 0 |
| 1559 | return; | 0 |
| 1560 | | - |
| 1561 | QWidget *widget = widgetItem->widget(); never executed (the execution status of this line is deduced): QWidget *widget = widgetItem->widget(); | - |
| 1562 | layoutState = savedState; never executed (the execution status of this line is deduced): layoutState = savedState; | - |
| 1563 | currentGapPos = layoutState.indexOf(widget); never executed (the execution status of this line is deduced): currentGapPos = layoutState.indexOf(widget); | - |
| 1564 | fixToolBarOrientation(widgetItem, currentGapPos.at(1)); never executed (the execution status of this line is deduced): fixToolBarOrientation(widgetItem, currentGapPos.at(1)); | - |
| 1565 | layoutState.unplug(currentGapPos); never executed (the execution status of this line is deduced): layoutState.unplug(currentGapPos); | - |
| 1566 | layoutState.fitLayout(); never executed (the execution status of this line is deduced): layoutState.fitLayout(); | - |
| 1567 | currentGapRect = layoutState.itemRect(currentGapPos); never executed (the execution status of this line is deduced): currentGapRect = layoutState.itemRect(currentGapPos); | - |
| 1568 | | - |
| 1569 | plug(widgetItem); never executed (the execution status of this line is deduced): plug(widgetItem); | - |
| 1570 | } | 0 |
| 1571 | | - |
| 1572 | bool QMainWindowLayout::plug(QLayoutItem *widgetItem) | - |
| 1573 | { | - |
| 1574 | if (!parentWidget()->isVisible() || parentWidget()->isMinimized() || currentGapPos.isEmpty()) never evaluated: !parentWidget()->isVisible() never evaluated: parentWidget()->isMinimized() never evaluated: currentGapPos.isEmpty() | 0 |
| 1575 | return false; never executed: return false; | 0 |
| 1576 | | - |
| 1577 | fixToolBarOrientation(widgetItem, currentGapPos.at(1)); never executed (the execution status of this line is deduced): fixToolBarOrientation(widgetItem, currentGapPos.at(1)); | - |
| 1578 | | - |
| 1579 | QWidget *widget = widgetItem->widget(); never executed (the execution status of this line is deduced): QWidget *widget = widgetItem->widget(); | - |
| 1580 | | - |
| 1581 | QList<int> previousPath = layoutState.indexOf(widget); never executed (the execution status of this line is deduced): QList<int> previousPath = layoutState.indexOf(widget); | - |
| 1582 | | - |
| 1583 | QLayoutItem *it = layoutState.plug(currentGapPos); never executed (the execution status of this line is deduced): QLayoutItem *it = layoutState.plug(currentGapPos); | - |
| 1584 | Q_ASSERT(it == widgetItem); never executed (the execution status of this line is deduced): qt_noop(); | - |
| 1585 | Q_UNUSED(it); never executed (the execution status of this line is deduced): (void)it;; | - |
| 1586 | if (!previousPath.isEmpty()) never evaluated: !previousPath.isEmpty() | 0 |
| 1587 | layoutState.remove(previousPath); never executed: layoutState.remove(previousPath); | 0 |
| 1588 | | - |
| 1589 | pluggingWidget = widget; never executed (the execution status of this line is deduced): pluggingWidget = widget; | - |
| 1590 | QRect globalRect = currentGapRect; never executed (the execution status of this line is deduced): QRect globalRect = currentGapRect; | - |
| 1591 | globalRect.moveTopLeft(parentWidget()->mapToGlobal(globalRect.topLeft())); never executed (the execution status of this line is deduced): globalRect.moveTopLeft(parentWidget()->mapToGlobal(globalRect.topLeft())); | - |
| 1592 | #ifndef QT_NO_DOCKWIDGET | - |
| 1593 | if (qobject_cast<QDockWidget*>(widget) != 0) { never evaluated: qobject_cast<QDockWidget*>(widget) != 0 | 0 |
| 1594 | QDockWidgetLayout *layout = qobject_cast<QDockWidgetLayout*>(widget->layout()); never executed (the execution status of this line is deduced): QDockWidgetLayout *layout = qobject_cast<QDockWidgetLayout*>(widget->layout()); | - |
| 1595 | if (layout->nativeWindowDeco()) { never evaluated: layout->nativeWindowDeco() | 0 |
| 1596 | globalRect.adjust(0, layout->titleHeight(), 0, 0); never executed (the execution status of this line is deduced): globalRect.adjust(0, layout->titleHeight(), 0, 0); | - |
| 1597 | } else { | 0 |
| 1598 | int fw = widget->style()->pixelMetric(QStyle::PM_DockWidgetFrameWidth, 0, widget); never executed (the execution status of this line is deduced): int fw = widget->style()->pixelMetric(QStyle::PM_DockWidgetFrameWidth, 0, widget); | - |
| 1599 | globalRect.adjust(-fw, -fw, fw, fw); never executed (the execution status of this line is deduced): globalRect.adjust(-fw, -fw, fw, fw); | - |
| 1600 | } | 0 |
| 1601 | } | - |
| 1602 | #endif | - |
| 1603 | widgetAnimator.animate(widget, globalRect, dockOptions & QMainWindow::AnimatedDocks); never executed (the execution status of this line is deduced): widgetAnimator.animate(widget, globalRect, dockOptions & QMainWindow::AnimatedDocks); | - |
| 1604 | | - |
| 1605 | return true; never executed: return true; | 0 |
| 1606 | } | - |
| 1607 | | - |
| 1608 | void QMainWindowLayout::animationFinished(QWidget *widget) | - |
| 1609 | { | - |
| 1610 | //this function is called from within the Widget Animator whenever an animation is finished | - |
| 1611 | //on a certain widget | - |
| 1612 | #ifndef QT_NO_TOOLBAR | - |
| 1613 | if (QToolBar *tb = qobject_cast<QToolBar*>(widget)) { evaluated: QToolBar *tb = qobject_cast<QToolBar*>(widget)| yes Evaluation Count:10 | yes Evaluation Count:210 |
| 10-210 |
| 1614 | QToolBarLayout *tbl = qobject_cast<QToolBarLayout*>(tb->layout()); executed (the execution status of this line is deduced): QToolBarLayout *tbl = qobject_cast<QToolBarLayout*>(tb->layout()); | - |
| 1615 | if (tbl->animating) { partially evaluated: tbl->animating| no Evaluation Count:0 | yes Evaluation Count:10 |
| 0-10 |
| 1616 | tbl->animating = false; never executed (the execution status of this line is deduced): tbl->animating = false; | - |
| 1617 | if (tbl->expanded) never evaluated: tbl->expanded | 0 |
| 1618 | tbl->layoutActions(tb->size()); never executed: tbl->layoutActions(tb->size()); | 0 |
| 1619 | tb->update(); never executed (the execution status of this line is deduced): tb->update(); | - |
| 1620 | } | 0 |
| 1621 | } executed: }Execution Count:10 | 10 |
| 1622 | #endif | - |
| 1623 | | - |
| 1624 | if (widget == pluggingWidget) { partially evaluated: widget == pluggingWidget| no Evaluation Count:0 | yes Evaluation Count:220 |
| 0-220 |
| 1625 | | - |
| 1626 | #ifndef QT_NO_DOCKWIDGET | - |
| 1627 | if (QDockWidget *dw = qobject_cast<QDockWidget*>(widget)) never evaluated: QDockWidget *dw = qobject_cast<QDockWidget*>(widget) | 0 |
| 1628 | dw->d_func()->plug(currentGapRect); never executed: dw->d_func()->plug(currentGapRect); | 0 |
| 1629 | #endif | - |
| 1630 | #ifndef QT_NO_TOOLBAR | - |
| 1631 | if (QToolBar *tb = qobject_cast<QToolBar*>(widget)) never evaluated: QToolBar *tb = qobject_cast<QToolBar*>(widget) | 0 |
| 1632 | tb->d_func()->plug(currentGapRect); never executed: tb->d_func()->plug(currentGapRect); | 0 |
| 1633 | #endif | - |
| 1634 | | - |
| 1635 | savedState.clear(); never executed (the execution status of this line is deduced): savedState.clear(); | - |
| 1636 | currentGapPos.clear(); never executed (the execution status of this line is deduced): currentGapPos.clear(); | - |
| 1637 | pluggingWidget = 0; never executed (the execution status of this line is deduced): pluggingWidget = 0; | - |
| 1638 | //applying the state will make sure that the currentGap is updated correctly | - |
| 1639 | //and all the geometries (especially the one from the central widget) is correct | - |
| 1640 | layoutState.apply(false); never executed (the execution status of this line is deduced): layoutState.apply(false); | - |
| 1641 | | - |
| 1642 | #ifndef QT_NO_DOCKWIDGET | - |
| 1643 | #ifndef QT_NO_TABBAR | - |
| 1644 | if (qobject_cast<QDockWidget*>(widget) != 0) { never evaluated: qobject_cast<QDockWidget*>(widget) != 0 | 0 |
| 1645 | // info() might return null if the widget is destroyed while | - |
| 1646 | // animating but before the animationFinished signal is received. | - |
| 1647 | if (QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(widget)) never evaluated: QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(widget) | 0 |
| 1648 | info->setCurrentTab(widget); never executed: info->setCurrentTab(widget); | 0 |
| 1649 | } | 0 |
| 1650 | #endif | - |
| 1651 | #endif | - |
| 1652 | } | 0 |
| 1653 | | - |
| 1654 | if (!widgetAnimator.animating()) { partially evaluated: !widgetAnimator.animating()| yes Evaluation Count:220 | no Evaluation Count:0 |
| 0-220 |
| 1655 | //all animations are finished | - |
| 1656 | #ifndef QT_NO_DOCKWIDGET | - |
| 1657 | parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); executed (the execution status of this line is deduced): parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); | - |
| 1658 | #ifndef QT_NO_TABBAR | - |
| 1659 | foreach (QTabBar *tab_bar, usedTabBars) executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(usedTabBars)> _container_(usedTabBars); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QTabBar *tab_bar = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 1660 | tab_bar->show(); executed: tab_bar->show();Execution Count:48 | 48 |
| 1661 | #endif // QT_NO_TABBAR | - |
| 1662 | #endif // QT_NO_DOCKWIDGET | - |
| 1663 | } executed: }Execution Count:220 | 220 |
| 1664 | | - |
| 1665 | updateGapIndicator(); executed (the execution status of this line is deduced): updateGapIndicator(); | - |
| 1666 | } executed: }Execution Count:220 | 220 |
| 1667 | | - |
| 1668 | void QMainWindowLayout::restore(bool keepSavedState) | - |
| 1669 | { | - |
| 1670 | if (!savedState.isValid()) never evaluated: !savedState.isValid() | 0 |
| 1671 | return; | 0 |
| 1672 | | - |
| 1673 | layoutState = savedState; never executed (the execution status of this line is deduced): layoutState = savedState; | - |
| 1674 | applyState(layoutState); never executed (the execution status of this line is deduced): applyState(layoutState); | - |
| 1675 | if (!keepSavedState) never evaluated: !keepSavedState | 0 |
| 1676 | savedState.clear(); never executed: savedState.clear(); | 0 |
| 1677 | currentGapPos.clear(); never executed (the execution status of this line is deduced): currentGapPos.clear(); | - |
| 1678 | pluggingWidget = 0; never executed (the execution status of this line is deduced): pluggingWidget = 0; | - |
| 1679 | updateGapIndicator(); never executed (the execution status of this line is deduced): updateGapIndicator(); | - |
| 1680 | } | 0 |
| 1681 | | - |
| 1682 | QMainWindowLayout::QMainWindowLayout(QMainWindow *mainwindow, QLayout *parentLayout) | - |
| 1683 | : QLayout(parentLayout ? static_cast<QWidget *>(0) : mainwindow) | - |
| 1684 | , layoutState(mainwindow) | - |
| 1685 | , savedState(mainwindow) | - |
| 1686 | , dockOptions(QMainWindow::AnimatedDocks | QMainWindow::AllowTabbedDocks) | - |
| 1687 | , statusbar(0) | - |
| 1688 | #ifndef QT_NO_DOCKWIDGET | - |
| 1689 | #ifndef QT_NO_TABBAR | - |
| 1690 | , _documentMode(false) | - |
| 1691 | , verticalTabsEnabled(false) | - |
| 1692 | #ifndef QT_NO_TABWIDGET | - |
| 1693 | , _tabShape(QTabWidget::Rounded) | - |
| 1694 | #endif | - |
| 1695 | #endif | - |
| 1696 | #endif // QT_NO_DOCKWIDGET | - |
| 1697 | , widgetAnimator(this) | - |
| 1698 | , pluggingWidget(0) | - |
| 1699 | #ifndef QT_NO_RUBBERBAND | - |
| 1700 | , gapIndicator(new QRubberBand(QRubberBand::Rectangle, mainwindow)) | - |
| 1701 | #endif //QT_NO_RUBBERBAND | - |
| 1702 | #ifdef Q_WS_MAC | - |
| 1703 | , blockVisiblityCheck(false) | - |
| 1704 | #endif | - |
| 1705 | { | - |
| 1706 | if (parentLayout) partially evaluated: parentLayout| no Evaluation Count:0 | yes Evaluation Count:44 |
| 0-44 |
| 1707 | setParent(parentLayout); never executed: setParent(parentLayout); | 0 |
| 1708 | | - |
| 1709 | #ifndef QT_NO_DOCKWIDGET | - |
| 1710 | #ifndef QT_NO_TABBAR | - |
| 1711 | sep = mainwindow->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, mainwindow); executed (the execution status of this line is deduced): sep = mainwindow->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, mainwindow); | - |
| 1712 | #endif | - |
| 1713 | | - |
| 1714 | #ifndef QT_NO_TABWIDGET | - |
| 1715 | for (int i = 0; i < QInternal::DockCount; ++i) evaluated: i < QInternal::DockCount| yes Evaluation Count:176 | yes Evaluation Count:44 |
| 44-176 |
| 1716 | tabPositions[i] = QTabWidget::South; executed: tabPositions[i] = QTabWidget::South;Execution Count:176 | 176 |
| 1717 | #endif | - |
| 1718 | #endif // QT_NO_DOCKWIDGET | - |
| 1719 | | - |
| 1720 | #ifndef QT_NO_RUBBERBAND | - |
| 1721 | // For accessibility to identify this special widget. | - |
| 1722 | gapIndicator->setObjectName(QLatin1String("qt_rubberband")); executed (the execution status of this line is deduced): gapIndicator->setObjectName(QLatin1String("qt_rubberband")); | - |
| 1723 | gapIndicator->hide(); executed (the execution status of this line is deduced): gapIndicator->hide(); | - |
| 1724 | #endif | - |
| 1725 | pluggingWidget = 0; executed (the execution status of this line is deduced): pluggingWidget = 0; | - |
| 1726 | | - |
| 1727 | setObjectName(mainwindow->objectName() + QLatin1String("_layout")); executed (the execution status of this line is deduced): setObjectName(mainwindow->objectName() + QLatin1String("_layout")); | - |
| 1728 | } executed: }Execution Count:44 | 44 |
| 1729 | | - |
| 1730 | QMainWindowLayout::~QMainWindowLayout() | - |
| 1731 | { | - |
| 1732 | layoutState.deleteAllLayoutItems(); executed (the execution status of this line is deduced): layoutState.deleteAllLayoutItems(); | - |
| 1733 | layoutState.deleteCentralWidgetItem(); executed (the execution status of this line is deduced): layoutState.deleteCentralWidgetItem(); | - |
| 1734 | | - |
| 1735 | #ifdef Q_WS_MAC | - |
| 1736 | cleanUpMacToolbarItems(); | - |
| 1737 | #endif | - |
| 1738 | | - |
| 1739 | delete statusbar; executed (the execution status of this line is deduced): delete statusbar; | - |
| 1740 | } executed: }Execution Count:43 | 43 |
| 1741 | | - |
| 1742 | void QMainWindowLayout::setDockOptions(QMainWindow::DockOptions opts) | - |
| 1743 | { | - |
| 1744 | if (opts == dockOptions) never evaluated: opts == dockOptions | 0 |
| 1745 | return; | 0 |
| 1746 | | - |
| 1747 | dockOptions = opts; never executed (the execution status of this line is deduced): dockOptions = opts; | - |
| 1748 | | - |
| 1749 | #ifndef QT_NO_DOCKWIDGET | - |
| 1750 | setVerticalTabsEnabled(opts & QMainWindow::VerticalTabs); never executed (the execution status of this line is deduced): setVerticalTabsEnabled(opts & QMainWindow::VerticalTabs); | - |
| 1751 | #endif | - |
| 1752 | | - |
| 1753 | invalidate(); never executed (the execution status of this line is deduced): invalidate(); | - |
| 1754 | } | 0 |
| 1755 | | - |
| 1756 | #ifndef QT_NO_STATUSBAR | - |
| 1757 | QStatusBar *QMainWindowLayout::statusBar() const | - |
| 1758 | { return statusbar ? qobject_cast<QStatusBar *>(statusbar->widget()) : 0; } executed: return statusbar ? qobject_cast<QStatusBar *>(statusbar->widget()) : 0;Execution Count:97 | 97 |
| 1759 | | - |
| 1760 | void QMainWindowLayout::setStatusBar(QStatusBar *sb) | - |
| 1761 | { | - |
| 1762 | if (sb) partially evaluated: sb| yes Evaluation Count:5 | no Evaluation Count:0 |
| 0-5 |
| 1763 | addChildWidget(sb); executed: addChildWidget(sb);Execution Count:5 | 5 |
| 1764 | delete statusbar; executed (the execution status of this line is deduced): delete statusbar; | - |
| 1765 | statusbar = sb ? new QWidgetItemV2(sb) : 0; partially evaluated: sb| yes Evaluation Count:5 | no Evaluation Count:0 |
| 0-5 |
| 1766 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 1767 | } executed: }Execution Count:5 | 5 |
| 1768 | #endif // QT_NO_STATUSBAR | - |
| 1769 | | - |
| 1770 | QWidget *QMainWindowLayout::centralWidget() const | - |
| 1771 | { | - |
| 1772 | return layoutState.centralWidget(); executed: return layoutState.centralWidget();Execution Count:24 | 24 |
| 1773 | } | - |
| 1774 | | - |
| 1775 | void QMainWindowLayout::setCentralWidget(QWidget *widget) | - |
| 1776 | { | - |
| 1777 | if (widget != 0) partially evaluated: widget != 0| yes Evaluation Count:18 | no Evaluation Count:0 |
| 0-18 |
| 1778 | addChildWidget(widget); executed: addChildWidget(widget);Execution Count:18 | 18 |
| 1779 | layoutState.setCentralWidget(widget); executed (the execution status of this line is deduced): layoutState.setCentralWidget(widget); | - |
| 1780 | if (savedState.isValid()) { partially evaluated: savedState.isValid()| no Evaluation Count:0 | yes Evaluation Count:18 |
| 0-18 |
| 1781 | #ifndef QT_NO_DOCKWIDGET | - |
| 1782 | savedState.dockAreaLayout.centralWidgetItem = layoutState.dockAreaLayout.centralWidgetItem; never executed (the execution status of this line is deduced): savedState.dockAreaLayout.centralWidgetItem = layoutState.dockAreaLayout.centralWidgetItem; | - |
| 1783 | savedState.dockAreaLayout.fallbackToSizeHints = true; never executed (the execution status of this line is deduced): savedState.dockAreaLayout.fallbackToSizeHints = true; | - |
| 1784 | #else | - |
| 1785 | savedState.centralWidgetItem = layoutState.centralWidgetItem; | - |
| 1786 | #endif | - |
| 1787 | } | 0 |
| 1788 | invalidate(); executed (the execution status of this line is deduced): invalidate(); | - |
| 1789 | } executed: }Execution Count:18 | 18 |
| 1790 | | - |
| 1791 | QLayoutItem *QMainWindowLayout::unplug(QWidget *widget) | - |
| 1792 | { | - |
| 1793 | QList<int> path = layoutState.indexOf(widget); never executed (the execution status of this line is deduced): QList<int> path = layoutState.indexOf(widget); | - |
| 1794 | if (path.isEmpty()) never evaluated: path.isEmpty() | 0 |
| 1795 | return 0; never executed: return 0; | 0 |
| 1796 | | - |
| 1797 | QLayoutItem *item = layoutState.item(path); never executed (the execution status of this line is deduced): QLayoutItem *item = layoutState.item(path); | - |
| 1798 | if (widget->isWindow()) never evaluated: widget->isWindow() | 0 |
| 1799 | return item; never executed: return item; | 0 |
| 1800 | | - |
| 1801 | QRect r = layoutState.itemRect(path); never executed (the execution status of this line is deduced): QRect r = layoutState.itemRect(path); | - |
| 1802 | savedState = layoutState; never executed (the execution status of this line is deduced): savedState = layoutState; | - |
| 1803 | | - |
| 1804 | #ifndef QT_NO_DOCKWIDGET | - |
| 1805 | if (QDockWidget *dw = qobject_cast<QDockWidget*>(widget)) { never evaluated: QDockWidget *dw = qobject_cast<QDockWidget*>(widget) | 0 |
| 1806 | dw->d_func()->unplug(r); never executed (the execution status of this line is deduced): dw->d_func()->unplug(r); | - |
| 1807 | } | 0 |
| 1808 | #endif | - |
| 1809 | #ifndef QT_NO_TOOLBAR | - |
| 1810 | if (QToolBar *tb = qobject_cast<QToolBar*>(widget)) { never evaluated: QToolBar *tb = qobject_cast<QToolBar*>(widget) | 0 |
| 1811 | tb->d_func()->unplug(r); never executed (the execution status of this line is deduced): tb->d_func()->unplug(r); | - |
| 1812 | } | 0 |
| 1813 | #endif | - |
| 1814 | | - |
| 1815 | | - |
| 1816 | layoutState.unplug(path ,&savedState); never executed (the execution status of this line is deduced): layoutState.unplug(path ,&savedState); | - |
| 1817 | savedState.fitLayout(); never executed (the execution status of this line is deduced): savedState.fitLayout(); | - |
| 1818 | currentGapPos = path; never executed (the execution status of this line is deduced): currentGapPos = path; | - |
| 1819 | currentGapRect = r; never executed (the execution status of this line is deduced): currentGapRect = r; | - |
| 1820 | updateGapIndicator(); never executed (the execution status of this line is deduced): updateGapIndicator(); | - |
| 1821 | | - |
| 1822 | fixToolBarOrientation(item, currentGapPos.at(1)); never executed (the execution status of this line is deduced): fixToolBarOrientation(item, currentGapPos.at(1)); | - |
| 1823 | | - |
| 1824 | return item; never executed: return item; | 0 |
| 1825 | } | - |
| 1826 | | - |
| 1827 | void QMainWindowLayout::updateGapIndicator() | - |
| 1828 | { | - |
| 1829 | #ifndef QT_NO_RUBBERBAND | - |
| 1830 | gapIndicator->setVisible(!widgetAnimator.animating() && !currentGapPos.isEmpty()); executed (the execution status of this line is deduced): gapIndicator->setVisible(!widgetAnimator.animating() && !currentGapPos.isEmpty()); | - |
| 1831 | gapIndicator->setGeometry(currentGapRect); executed (the execution status of this line is deduced): gapIndicator->setGeometry(currentGapRect); | - |
| 1832 | #endif | - |
| 1833 | } executed: }Execution Count:220 | 220 |
| 1834 | | - |
| 1835 | QList<int> QMainWindowLayout::hover(QLayoutItem *widgetItem, const QPoint &mousePos) | - |
| 1836 | { | - |
| 1837 | if (!parentWidget()->isVisible() || parentWidget()->isMinimized() never evaluated: !parentWidget()->isVisible() never evaluated: parentWidget()->isMinimized() | 0 |
| 1838 | || pluggingWidget != 0 || widgetItem == 0) never evaluated: pluggingWidget != 0 never evaluated: widgetItem == 0 | 0 |
| 1839 | return QList<int>(); never executed: return QList<int>(); | 0 |
| 1840 | | - |
| 1841 | QWidget *widget = widgetItem->widget(); never executed (the execution status of this line is deduced): QWidget *widget = widgetItem->widget(); | - |
| 1842 | QPoint pos = parentWidget()->mapFromGlobal(mousePos); never executed (the execution status of this line is deduced): QPoint pos = parentWidget()->mapFromGlobal(mousePos); | - |
| 1843 | | - |
| 1844 | if (!savedState.isValid()) never evaluated: !savedState.isValid() | 0 |
| 1845 | savedState = layoutState; never executed: savedState = layoutState; | 0 |
| 1846 | | - |
| 1847 | QList<int> path = savedState.gapIndex(widget, pos); never executed (the execution status of this line is deduced): QList<int> path = savedState.gapIndex(widget, pos); | - |
| 1848 | | - |
| 1849 | if (!path.isEmpty()) { never evaluated: !path.isEmpty() | 0 |
| 1850 | bool allowed = false; never executed (the execution status of this line is deduced): bool allowed = false; | - |
| 1851 | | - |
| 1852 | #ifndef QT_NO_DOCKWIDGET | - |
| 1853 | if (QDockWidget *dw = qobject_cast<QDockWidget*>(widget)) never evaluated: QDockWidget *dw = qobject_cast<QDockWidget*>(widget) | 0 |
| 1854 | allowed = dw->isAreaAllowed(toDockWidgetArea(path.at(1))); never executed: allowed = dw->isAreaAllowed(toDockWidgetArea(path.at(1))); | 0 |
| 1855 | #endif | - |
| 1856 | #ifndef QT_NO_TOOLBAR | - |
| 1857 | if (QToolBar *tb = qobject_cast<QToolBar*>(widget)) never evaluated: QToolBar *tb = qobject_cast<QToolBar*>(widget) | 0 |
| 1858 | allowed = tb->isAreaAllowed(toToolBarArea(path.at(1))); never executed: allowed = tb->isAreaAllowed(toToolBarArea(path.at(1))); | 0 |
| 1859 | #endif | - |
| 1860 | | - |
| 1861 | if (!allowed) never evaluated: !allowed | 0 |
| 1862 | path.clear(); never executed: path.clear(); | 0 |
| 1863 | } | 0 |
| 1864 | | - |
| 1865 | if (path == currentGapPos) never evaluated: path == currentGapPos | 0 |
| 1866 | return currentGapPos; // the gap is already there never executed: return currentGapPos; | 0 |
| 1867 | | - |
| 1868 | currentGapPos = path; never executed (the execution status of this line is deduced): currentGapPos = path; | - |
| 1869 | if (path.isEmpty()) { never evaluated: path.isEmpty() | 0 |
| 1870 | fixToolBarOrientation(widgetItem, 2); // 2 = top dock, ie. horizontal never executed (the execution status of this line is deduced): fixToolBarOrientation(widgetItem, 2); | - |
| 1871 | restore(true); never executed (the execution status of this line is deduced): restore(true); | - |
| 1872 | return QList<int>(); never executed: return QList<int>(); | 0 |
| 1873 | } | - |
| 1874 | | - |
| 1875 | fixToolBarOrientation(widgetItem, currentGapPos.at(1)); never executed (the execution status of this line is deduced): fixToolBarOrientation(widgetItem, currentGapPos.at(1)); | - |
| 1876 | | - |
| 1877 | QMainWindowLayoutState newState = savedState; never executed (the execution status of this line is deduced): QMainWindowLayoutState newState = savedState; | - |
| 1878 | | - |
| 1879 | if (!newState.insertGap(path, widgetItem)) { never evaluated: !newState.insertGap(path, widgetItem) | 0 |
| 1880 | restore(true); // not enough space never executed (the execution status of this line is deduced): restore(true); | - |
| 1881 | return QList<int>(); never executed: return QList<int>(); | 0 |
| 1882 | } | - |
| 1883 | | - |
| 1884 | QSize min = newState.minimumSize(); never executed (the execution status of this line is deduced): QSize min = newState.minimumSize(); | - |
| 1885 | QSize size = newState.rect.size(); never executed (the execution status of this line is deduced): QSize size = newState.rect.size(); | - |
| 1886 | | - |
| 1887 | if (min.width() > size.width() || min.height() > size.height()) { never evaluated: min.width() > size.width() never evaluated: min.height() > size.height() | 0 |
| 1888 | restore(true); never executed (the execution status of this line is deduced): restore(true); | - |
| 1889 | return QList<int>(); never executed: return QList<int>(); | 0 |
| 1890 | } | - |
| 1891 | | - |
| 1892 | newState.fitLayout(); never executed (the execution status of this line is deduced): newState.fitLayout(); | - |
| 1893 | | - |
| 1894 | currentGapRect = newState.gapRect(currentGapPos); never executed (the execution status of this line is deduced): currentGapRect = newState.gapRect(currentGapPos); | - |
| 1895 | | - |
| 1896 | #ifndef QT_NO_DOCKWIDGET | - |
| 1897 | parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); never executed (the execution status of this line is deduced): parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); | - |
| 1898 | #endif | - |
| 1899 | layoutState = newState; never executed (the execution status of this line is deduced): layoutState = newState; | - |
| 1900 | applyState(layoutState); never executed (the execution status of this line is deduced): applyState(layoutState); | - |
| 1901 | | - |
| 1902 | updateGapIndicator(); never executed (the execution status of this line is deduced): updateGapIndicator(); | - |
| 1903 | | - |
| 1904 | return path; never executed: return path; | 0 |
| 1905 | } | - |
| 1906 | | - |
| 1907 | void QMainWindowLayout::applyState(QMainWindowLayoutState &newState, bool animate) | - |
| 1908 | { | - |
| 1909 | #ifndef QT_NO_DOCKWIDGET | - |
| 1910 | #ifndef QT_NO_TABBAR | - |
| 1911 | QSet<QTabBar*> used = newState.dockAreaLayout.usedTabBars(); executed (the execution status of this line is deduced): QSet<QTabBar*> used = newState.dockAreaLayout.usedTabBars(); | - |
| 1912 | QSet<QTabBar*> retired = usedTabBars - used; executed (the execution status of this line is deduced): QSet<QTabBar*> retired = usedTabBars - used; | - |
| 1913 | usedTabBars = used; executed (the execution status of this line is deduced): usedTabBars = used; | - |
| 1914 | foreach (QTabBar *tab_bar, retired) { executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(retired)> _container_(retired); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QTabBar *tab_bar = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 1915 | tab_bar->hide(); executed (the execution status of this line is deduced): tab_bar->hide(); | - |
| 1916 | while (tab_bar->count() > 0) evaluated: tab_bar->count() > 0| yes Evaluation Count:2 | yes Evaluation Count:1 |
| 1-2 |
| 1917 | tab_bar->removeTab(0); executed: tab_bar->removeTab(0);Execution Count:2 | 2 |
| 1918 | unusedTabBars.append(tab_bar); executed (the execution status of this line is deduced): unusedTabBars.append(tab_bar); | - |
| 1919 | } executed: }Execution Count:1 | 1 |
| 1920 | | - |
| 1921 | if (sep == 1) { partially evaluated: sep == 1| no Evaluation Count:0 | yes Evaluation Count:237 |
| 0-237 |
| 1922 | QSet<QWidget*> usedSeps = newState.dockAreaLayout.usedSeparatorWidgets(); never executed (the execution status of this line is deduced): QSet<QWidget*> usedSeps = newState.dockAreaLayout.usedSeparatorWidgets(); | - |
| 1923 | QSet<QWidget*> retiredSeps = usedSeparatorWidgets - usedSeps; never executed (the execution status of this line is deduced): QSet<QWidget*> retiredSeps = usedSeparatorWidgets - usedSeps; | - |
| 1924 | usedSeparatorWidgets = usedSeps; never executed (the execution status of this line is deduced): usedSeparatorWidgets = usedSeps; | - |
| 1925 | foreach (QWidget *sepWidget, retiredSeps) { never executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(retiredSeps)> _container_(retiredSeps); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QWidget *sepWidget = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
| 1926 | unusedSeparatorWidgets.append(sepWidget); never executed (the execution status of this line is deduced): unusedSeparatorWidgets.append(sepWidget); | - |
| 1927 | } | 0 |
| 1928 | } | 0 |
| 1929 | | - |
| 1930 | | - |
| 1931 | #endif // QT_NO_TABBAR | - |
| 1932 | #endif // QT_NO_DOCKWIDGET | - |
| 1933 | newState.apply(dockOptions & QMainWindow::AnimatedDocks && animate); executed (the execution status of this line is deduced): newState.apply(dockOptions & QMainWindow::AnimatedDocks && animate); | - |
| 1934 | } executed: }Execution Count:237 | 237 |
| 1935 | | - |
| 1936 | void QMainWindowLayout::saveState(QDataStream &stream) const | - |
| 1937 | { | - |
| 1938 | layoutState.saveState(stream); executed (the execution status of this line is deduced): layoutState.saveState(stream); | - |
| 1939 | } executed: }Execution Count:2 | 2 |
| 1940 | | - |
| 1941 | bool QMainWindowLayout::restoreState(QDataStream &stream) | - |
| 1942 | { | - |
| 1943 | savedState = layoutState; executed (the execution status of this line is deduced): savedState = layoutState; | - |
| 1944 | layoutState.clear(); executed (the execution status of this line is deduced): layoutState.clear(); | - |
| 1945 | layoutState.rect = savedState.rect; executed (the execution status of this line is deduced): layoutState.rect = savedState.rect; | - |
| 1946 | | - |
| 1947 | if (!layoutState.restoreState(stream, savedState)) { partially evaluated: !layoutState.restoreState(stream, savedState)| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 1948 | layoutState.deleteAllLayoutItems(); never executed (the execution status of this line is deduced): layoutState.deleteAllLayoutItems(); | - |
| 1949 | layoutState = savedState; never executed (the execution status of this line is deduced): layoutState = savedState; | - |
| 1950 | if (parentWidget()->isVisible()) never evaluated: parentWidget()->isVisible() | 0 |
| 1951 | applyState(layoutState, false); // hides tabBars allocated by newState never executed: applyState(layoutState, false); | 0 |
| 1952 | return false; never executed: return false; | 0 |
| 1953 | } | - |
| 1954 | | - |
| 1955 | if (parentWidget()->isVisible()) { partially evaluated: parentWidget()->isVisible()| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 1956 | layoutState.fitLayout(); never executed (the execution status of this line is deduced): layoutState.fitLayout(); | - |
| 1957 | applyState(layoutState, false); never executed (the execution status of this line is deduced): applyState(layoutState, false); | - |
| 1958 | } | 0 |
| 1959 | | - |
| 1960 | savedState.deleteAllLayoutItems(); executed (the execution status of this line is deduced): savedState.deleteAllLayoutItems(); | - |
| 1961 | savedState.clear(); executed (the execution status of this line is deduced): savedState.clear(); | - |
| 1962 | | - |
| 1963 | #ifndef QT_NO_DOCKWIDGET | - |
| 1964 | if (parentWidget()->isVisible()) { partially evaluated: parentWidget()->isVisible()| no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
| 1965 | #ifndef QT_NO_TABBAR | - |
| 1966 | foreach (QTabBar *tab_bar, usedTabBars) never executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(usedTabBars)> _container_(usedTabBars); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (QTabBar *tab_bar = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 1967 | tab_bar->show(); never executed: tab_bar->show(); | 0 |
| 1968 | | - |
| 1969 | #endif | - |
| 1970 | } | 0 |
| 1971 | #endif // QT_NO_DOCKWIDGET | - |
| 1972 | | - |
| 1973 | return true; executed: return true;Execution Count:2 | 2 |
| 1974 | } | - |
| 1975 | | - |
| 1976 | | - |
| 1977 | // Returns if this toolbar *should* be using HIToolbar. Won't work for all in between cases | - |
| 1978 | // for example, you have a toolbar in the top area and then you suddenly turn on | - |
| 1979 | // HIToolbar. | - |
| 1980 | bool QMainWindowLayout::usesHIToolBar(QToolBar *toolbar) const | - |
| 1981 | { | - |
| 1982 | #ifndef Q_WS_MAC | - |
| 1983 | Q_UNUSED(toolbar); executed (the execution status of this line is deduced): (void)toolbar;; | - |
| 1984 | return false; executed: return false;Execution Count:2 | 2 |
| 1985 | #else | - |
| 1986 | return qtoolbarsInUnifiedToolbarList.contains(toolbar) | - |
| 1987 | || ((toolBarArea(toolbar) == Qt::TopToolBarArea) | - |
| 1988 | && layoutState.mainWindow->unifiedTitleAndToolBarOnMac()); | - |
| 1989 | #endif | - |
| 1990 | } | - |
| 1991 | | - |
| 1992 | void QMainWindowLayout::timerEvent(QTimerEvent *e) | - |
| 1993 | { | - |
| 1994 | #ifndef QT_NO_DOCKWIDGET | - |
| 1995 | if (e->timerId() == separatorMoveTimer.timerId()) { never evaluated: e->timerId() == separatorMoveTimer.timerId() | 0 |
| 1996 | //let's move the separators | - |
| 1997 | separatorMoveTimer.stop(); never executed (the execution status of this line is deduced): separatorMoveTimer.stop(); | - |
| 1998 | if (movingSeparator.isEmpty()) never evaluated: movingSeparator.isEmpty() | 0 |
| 1999 | return; | 0 |
| 2000 | if (movingSeparatorOrigin == movingSeparatorPos) never evaluated: movingSeparatorOrigin == movingSeparatorPos | 0 |
| 2001 | return; | 0 |
| 2002 | | - |
| 2003 | //when moving the separator, we need to update the previous position | - |
| 2004 | parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); never executed (the execution status of this line is deduced): parentWidget()->update(layoutState.dockAreaLayout.separatorRegion()); | - |
| 2005 | | - |
| 2006 | layoutState = savedState; never executed (the execution status of this line is deduced): layoutState = savedState; | - |
| 2007 | layoutState.dockAreaLayout.separatorMove(movingSeparator, movingSeparatorOrigin, never executed (the execution status of this line is deduced): layoutState.dockAreaLayout.separatorMove(movingSeparator, movingSeparatorOrigin, | - |
| 2008 | movingSeparatorPos); never executed (the execution status of this line is deduced): movingSeparatorPos); | - |
| 2009 | movingSeparatorPos = movingSeparatorOrigin; never executed (the execution status of this line is deduced): movingSeparatorPos = movingSeparatorOrigin; | - |
| 2010 | } | 0 |
| 2011 | #endif | - |
| 2012 | QLayout::timerEvent(e); never executed (the execution status of this line is deduced): QLayout::timerEvent(e); | - |
| 2013 | } | 0 |
| 2014 | | - |
| 2015 | | - |
| 2016 | QT_END_NAMESPACE | - |
| 2017 | | - |
| 2018 | #endif // QT_NO_MAINWINDOW | - |
| 2019 | | - |
| | |