Changeset 846 for trunk/src/gui/dialogs/qwizard.cpp
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/src/gui/dialogs/qwizard.cpp
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 201 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation ([email protected]) … … 219 219 topLevelMarginBottom(-1), childMarginLeft(-1), childMarginRight(-1), 220 220 childMarginTop(-1), childMarginBottom(-1), hspacing(-1), vspacing(-1), 221 222 subTitle(false), extension(false) {}221 wizStyle(QWizard::ClassicStyle), header(false), watermark(false), title(false), 222 (false) {} 223 223 224 224 int topLevelMarginLeft; … … 239 239 bool subTitle; 240 240 bool extension; 241 241 242 242 243 bool operator==(const QWizardLayoutInfo &other); … … 262 263 && title == other.title 263 264 && subTitle == other.subTitle 264 && extension == other.extension; 265 && extension == other.extension 266 && sideWidget == other.sideWidget; 265 267 } 266 268 … … 426 428 }; 427 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 428 464 class QWizardPagePrivate : public QWidgetPrivate 429 465 { … … 502 538 inline QWizardPrivate() 503 539 : start(-1) 540 504 541 , current(-1) 505 542 , canContinue(false) … … 514 551 , headerWidget(0) 515 552 , watermarkLabel(0) 553 516 554 , titleLabel(0) 517 555 , subTitleLabel(0) … … 582 620 QSet<int> initialized; // ### remove and move bit to QWizardPage? 583 621 int start; 622 584 623 int current; 585 624 bool canContinue; … … 613 652 QWidget *placeholderWidget2; 614 653 QWizardHeader *headerWidget; 615 QLabel *watermarkLabel; 654 QWatermarkLabel *watermarkLabel; 655 QWidget *sideWidget; 616 656 QFrame *pageFrame; 617 657 QLabel *titleLabel; … … 908 948 info.header = (info.wizStyle == QWizard::ClassicStyle || info.wizStyle == QWizard::ModernStyle) 909 949 && !(opts & QWizard::IgnoreSubTitles) && !subTitleText.isEmpty(); 950 910 951 info.watermark = (info.wizStyle != QWizard::MacStyle) && (info.wizStyle != QWizard::AeroStyle) 911 952 && !watermarkPixmap.isNull(); 912 953 info.title = !info.header && !titleText.isEmpty(); 913 954 info.subTitle = !(opts & QWizard::IgnoreSubTitles) && !info.header && !subTitleText.isEmpty(); 914 info.extension = info.watermark&& (opts & QWizard::ExtendedWatermarkPixmap);955 info.extension = && (opts & QWizard::ExtendedWatermarkPixmap); 915 956 916 957 return info; … … 955 996 if (mac) { 956 997 numColumns = 3; 957 } else if (info.watermark ) {998 } else if (info.watermark) { 958 999 numColumns = 2; 959 1000 } else { … … 1097 1138 } 1098 1139 1099 if ( info.watermark&& !watermarkLabel) {1100 watermarkLabel = new Q Label(antiFlickerWidget);1140 if ( && !watermarkLabel) { 1141 watermarkLabel = new QWidget); 1101 1142 watermarkLabel->setBackgroundRole(QPalette::Base); 1102 1143 watermarkLabel->setMinimumHeight(1); … … 1174 1215 mainLayout->addLayout(buttonLayout, row++, buttonStartColumn, 1, buttonNumColumns); 1175 1216 1176 if (info.watermark ) {1217 if (info.watermark) { 1177 1218 if (info.extension) 1178 1219 watermarkEndRow = row; … … 1194 1235 bottomRuler->setVisible(classic || modern); 1195 1236 if (watermarkLabel) 1196 watermarkLabel->setVisible(info.watermark );1237 watermarkLabel->setVisible(info.watermark); 1197 1238 1198 1239 layoutInfo = info; … … 1234 1275 } 1235 1276 1236 if (info.watermark) { 1237 Q_ASSERT(page); 1238 watermarkLabel->setPixmap(page->pixmap(QWizard::WatermarkPixmap)); 1239 } 1277 if (info.watermark || info.sideWidget) { 1278 QPixmap pix; 1279 if (info.watermark) { 1280 if (page) 1281 pix = page->pixmap(QWizard::WatermarkPixmap); 1282 else 1283 pix = q->pixmap(QWizard::WatermarkPixmap); 1284 } 1285 watermarkLabel->setPixmap(pix); // in case there is no watermark and we show the side widget we need to clear the watermark 1286 } 1287 1240 1288 if (info.title) { 1241 1289 Q_ASSERT(page); … … 1268 1316 maximumSize.setWidth(headerWidget->maximumWidth()); 1269 1317 } 1270 if (info.watermark ) {1318 if (info.watermark) { 1271 1319 minimumSize.setHeight(mainLayout->totalSizeHint().height()); 1272 1320 maximumSize.setHeight(mainLayout->totalSizeHint().height()); … … 2150 2198 QWizard so far. 2151 2199 2152 \sa setPage(), page() 2200 \sa setPage(), page() 2153 2201 */ 2154 2202 int QWizard::addPage(QWizardPage *page) … … 2167 2215 Adds the given \a page to the wizard with the given \a id. 2168 2216 2169 \sa addPage(), page() 2217 \note Adding a page may influence the value of the startId property 2218 in case it was not set explicitly. 2219 2220 \sa addPage(), page(), pageAdded() 2170 2221 */ 2171 2222 void QWizard::setPage(int theid, QWizardPage *page) … … 2211 2262 page->hide(); 2212 2263 d->pageVBoxLayout->setEnabled(pageVBoxLayoutEnabled); 2264 2265 2266 2267 2213 2268 } 2214 2269 2215 2270 /*! 2216 2271 Removes the page with the given \a id. cleanupPage() will be called if necessary. 2272 2273 2274 2217 2275 \since 4.5 2218 \sa addPage(), setPage() 2276 \sa addPage(), setPage() 2219 2277 */ 2220 2278 void QWizard::removePage(int id) … … 2224 2282 QWizardPage *removedPage = 0; 2225 2283 2226 if (d->start == id) 2227 d->start = -1; 2284 // update startItem accordingly 2285 if (d->pageMap.count() > 0) { // only if we have any pages 2286 if (d->start == id) { 2287 const int firstId = d->pageMap.constBegin().key(); 2288 if (firstId == id) { 2289 if (d->pageMap.count() > 1) 2290 d->start = (++d->pageMap.constBegin()).key(); // secondId 2291 else 2292 d->start = -1; // removing the last page 2293 } else { // startSetByUser has to be "true" here 2294 d->start = firstId; 2295 } 2296 d->startSetByUser = false; 2297 } 2298 } 2299 2300 if (d->pageMap.contains(id)) 2301 emit pageRemoved(id); 2228 2302 2229 2303 if (!d->history.contains(id)) { … … 2335 2409 { 2336 2410 Q_D(QWizard); 2337 if (!d->pageMap.contains(theid)) { 2338 qWarning("QWizard::setStartId: Invalid page ID %d", theid); 2411 int newStart = theid; 2412 if (theid == -1) 2413 newStart = d->pageMap.count() ? d->pageMap.constBegin().key() : -1; 2414 2415 if (d->start == newStart) { 2416 d->startSetByUser = theid != -1; 2339 2417 return; 2340 2418 } 2341 d->start = theid; 2419 2420 if (!d->pageMap.contains(newStart)) { 2421 qWarning("QWizard::setStartId: Invalid page ID %d", newStart); 2422 return; 2423 } 2424 d->start = newStart; 2425 d->startSetByUser = theid != -1; 2342 2426 } 2343 2427 … … 2345 2429 { 2346 2430 Q_D(const QWizard); 2347 if (d->start != -1) 2348 return d->start; 2349 if (!d->pageMap.isEmpty()) 2350 return d->pageMap.constBegin().key(); 2351 return -1; 2431 return d->start; 2352 2432 } 2353 2433 … … 2826 2906 2827 2907 /*! 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2828 2957 \reimp 2829 2958 */ … … 2876 3005 2877 3006 \sa currentId(), currentPage() 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 2878 3029 */ 2879 3030
Note:
See TracChangeset
for help on using the changeset viewer.