Changeset View
Changeset View
Standalone View
Standalone View
src/kpageview.cpp
Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Line(s) | 39 | { | |||
---|---|---|---|---|---|
73 | if (faceType == KPageView::Tabbed) { | 73 | if (faceType == KPageView::Tabbed) { | ||
74 | stack->setVisible(false); | 74 | stack->setVisible(false); | ||
75 | layout->removeWidget(stack); | 75 | layout->removeWidget(stack); | ||
76 | } else { | 76 | } else { | ||
77 | layout->addWidget(stack, 2, 1); | 77 | layout->addWidget(stack, 2, 1); | ||
78 | stack->setVisible(true); | 78 | stack->setVisible(true); | ||
79 | } | 79 | } | ||
80 | 80 | | |||
81 | layout->removeWidget(titleWidget); | ||||
82 | | ||||
83 | if (pageHeader) { | ||||
84 | layout->removeWidget(pageHeader); | ||||
85 | pageHeader->setVisible(q->showPageHeader()); | ||||
86 | titleWidget->setVisible(false); | ||||
87 | | ||||
88 | if (faceType == KPageView::Tabbed) { | ||||
89 | layout->addWidget(pageHeader, 1, 1); | ||||
90 | } else { | ||||
91 | layout->addWidget(pageHeader, 1, 1, 1, 2); | ||||
92 | } | ||||
93 | } else { | ||||
81 | titleWidget->setVisible(q->showPageHeader()); | 94 | titleWidget->setVisible(q->showPageHeader()); | ||
95 | if (faceType == KPageView::Tabbed) { | ||||
96 | layout->addWidget(titleWidget, 1, 1); | ||||
97 | } else { | ||||
98 | layout->addWidget(titleWidget, 1, 1, 1, 2); | ||||
99 | } | ||||
100 | } | ||||
82 | 101 | | |||
83 | Qt::Alignment alignment = q->viewPosition(); | 102 | Qt::Alignment alignment = q->viewPosition(); | ||
84 | if (alignment & Qt::AlignTop) { | 103 | if (alignment & Qt::AlignTop) { | ||
85 | layout->addWidget(view, 2, 1); | 104 | layout->addWidget(view, 2, 1); | ||
86 | } else if (alignment & Qt::AlignRight) { | 105 | } else if (alignment & Qt::AlignRight) { | ||
87 | layout->addWidget(view, 1, 2, 2, 1); | 106 | layout->addWidget(view, 1, 2, 4, 1); | ||
88 | } else if (alignment & Qt::AlignBottom) { | 107 | } else if (alignment & Qt::AlignBottom) { | ||
89 | layout->addWidget(view, 4, 1); | 108 | layout->addWidget(view, 4, 1); | ||
90 | } else if (alignment & Qt::AlignLeft) { | 109 | } else if (alignment & Qt::AlignLeft) { | ||
91 | layout->addWidget(view, 1, 0, 2, 1); | 110 | layout->addWidget(view, 1, 0, 4, 1); | ||
92 | } | 111 | } | ||
93 | } | 112 | } | ||
94 | 113 | | |||
95 | void KPageViewPrivate::updateSelection() | 114 | void KPageViewPrivate::updateSelection() | ||
96 | { | 115 | { | ||
97 | /** | 116 | /** | ||
98 | * Select the first item in the view if not done yet. | 117 | * Select the first item in the view if not done yet. | ||
99 | */ | 118 | */ | ||
▲ Show 20 Lines • Show All 198 Lines • ▼ Show 20 Line(s) | 316 | : q_ptr(_parent), model(nullptr), faceType(KPageView::Auto), | |||
298 | layout(nullptr), stack(nullptr), titleWidget(nullptr), view(nullptr) | 317 | layout(nullptr), stack(nullptr), titleWidget(nullptr), view(nullptr) | ||
299 | { | 318 | { | ||
300 | } | 319 | } | ||
301 | 320 | | |||
302 | void KPageViewPrivate::init() | 321 | void KPageViewPrivate::init() | ||
303 | { | 322 | { | ||
304 | Q_Q(KPageView); | 323 | Q_Q(KPageView); | ||
305 | layout = new QGridLayout(q); | 324 | layout = new QGridLayout(q); | ||
325 | layout->setContentsMargins(0, 0, 0, 0); | ||||
306 | stack = new KPageStackedWidget(q); | 326 | stack = new KPageStackedWidget(q); | ||
307 | titleWidget = new KTitleWidget(q); | 327 | titleWidget = new KTitleWidget(q); | ||
308 | QPixmap emptyPixmap(22, 22); | 328 | QPixmap emptyPixmap(22, 22); | ||
309 | emptyPixmap.fill(Qt::transparent); | 329 | emptyPixmap.fill(Qt::transparent); | ||
310 | titleWidget->setPixmap(emptyPixmap); | 330 | titleWidget->setPixmap(emptyPixmap); | ||
311 | layout->addWidget(titleWidget, 1, 1); | 331 | layout->addWidget(titleWidget, 1, 1, 1, 2); | ||
312 | layout->addWidget(stack, 2, 1); | 332 | layout->addWidget(stack, 2, 1); | ||
313 | 333 | | |||
314 | defaultWidget = new QWidget(q); | 334 | defaultWidget = new QWidget(q); | ||
315 | stack->addWidget(defaultWidget); | 335 | stack->addWidget(defaultWidget); | ||
316 | 336 | | |||
317 | // stack should use most space | 337 | // stack should use most space | ||
318 | layout->setColumnStretch(1, 1); | 338 | layout->setColumnStretch(1, 1); | ||
319 | layout->setRowStretch(2, 1); | 339 | layout->setRowStretch(2, 1); | ||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Line(s) | 445 | { | |||
437 | d->defaultWidget = widget; | 457 | d->defaultWidget = widget; | ||
438 | d->stack->addWidget(d->defaultWidget); | 458 | d->stack->addWidget(d->defaultWidget); | ||
439 | 459 | | |||
440 | if (isCurrent) { | 460 | if (isCurrent) { | ||
441 | d->stack->setCurrentWidget(d->defaultWidget); | 461 | d->stack->setCurrentWidget(d->defaultWidget); | ||
442 | } | 462 | } | ||
443 | } | 463 | } | ||
444 | 464 | | |||
465 | void KPageView::setPageHeader(QWidget *header) | ||||
466 | { | ||||
467 | Q_D(KPageView); | ||||
468 | if (d->pageHeader == header) { | ||||
469 | return; | ||||
470 | } | ||||
471 | | ||||
472 | if (d->pageHeader) { | ||||
cfeck: This check is duplicated. | |||||
473 | d->layout->removeWidget(d->pageHeader); | ||||
474 | } | ||||
475 | d->layout->removeWidget(d->titleWidget); | ||||
476 | | ||||
477 | d->pageHeader = header; | ||||
478 | | ||||
479 | // Give it a colSpan of 2 to add a margin to the right | ||||
480 | if (d->pageHeader) { | ||||
481 | d->layout->addWidget(d->pageHeader, 1, 1, 1, 2); | ||||
482 | d->pageHeader->setVisible(showPageHeader()); | ||||
483 | } else { | ||||
484 | d->layout->addWidget(d->titleWidget, 1, 1, 1, 2); | ||||
485 | d->titleWidget->setVisible(showPageHeader()); | ||||
486 | } | ||||
487 | } | ||||
488 | | ||||
489 | QWidget *KPageView::pageHeader() const | ||||
490 | { | ||||
cfeck: Please remove this empty line. | |||||
491 | Q_D(const KPageView); | ||||
492 | return d->pageHeader; | ||||
493 | } | ||||
494 | | ||||
495 | void KPageView::setPageFooter(QWidget *footer) | ||||
496 | { | ||||
497 | Q_D(KPageView); | ||||
498 | if (d->pageFooter == footer) { | ||||
499 | return; | ||||
500 | } | ||||
501 | | ||||
502 | if (d->pageFooter) { | ||||
503 | d->layout->removeWidget(d->pageFooter); | ||||
504 | } | ||||
505 | | ||||
506 | d->pageFooter = footer; | ||||
507 | | ||||
508 | if (footer) { | ||||
509 | d->layout->addWidget(d->pageFooter, 3, 1); | ||||
510 | } | ||||
511 | } | ||||
512 | | ||||
513 | QWidget *KPageView::pageFooter() const | ||||
514 | { | ||||
515 | Q_D(const KPageView); | ||||
516 | return d->pageFooter; | ||||
517 | } | ||||
518 | | ||||
445 | QAbstractItemView *KPageView::createView() | 519 | QAbstractItemView *KPageView::createView() | ||
446 | { | 520 | { | ||
447 | Q_D(KPageView); | 521 | Q_D(KPageView); | ||
448 | if (d->faceType == Auto) { | 522 | if (d->faceType == Auto) { | ||
449 | const FaceType faceType = d->detectAutoFace(); | 523 | const FaceType faceType = d->detectAutoFace(); | ||
450 | 524 | | |||
451 | if (faceType == Plain) { | 525 | if (faceType == Plain) { | ||
452 | return new KDEPrivate::KPagePlainView(this); | 526 | return new KDEPrivate::KPagePlainView(this); | ||
Show All 24 Lines | 548 | { | |||
477 | 551 | | |||
478 | if (faceType == Auto) { | 552 | if (faceType == Auto) { | ||
479 | faceType = d->detectAutoFace(); | 553 | faceType = d->detectAutoFace(); | ||
480 | } | 554 | } | ||
481 | 555 | | |||
482 | if (faceType == Tabbed) { | 556 | if (faceType == Tabbed) { | ||
483 | return false; | 557 | return false; | ||
484 | } else { | 558 | } else { | ||
485 | return !d->titleWidget->text().isEmpty(); | 559 | return d->pageHeader || !d->titleWidget->text().isEmpty(); | ||
486 | } | 560 | } | ||
487 | } | 561 | } | ||
488 | 562 | | |||
489 | Qt::Alignment KPageView::viewPosition() const | 563 | Qt::Alignment KPageView::viewPosition() const | ||
490 | { | 564 | { | ||
491 | Q_D(const KPageView); | 565 | Q_D(const KPageView); | ||
492 | FaceType faceType = d->faceType; | 566 | FaceType faceType = d->faceType; | ||
493 | 567 | | |||
Show All 12 Lines |
This check is duplicated.