diff options
| author | Tobias Markmann <tm@ayena.de> | 2015-05-31 09:03:46 (GMT) |
|---|---|---|
| committer | Kevin Smith <kevin.smith@isode.com> | 2015-05-31 16:51:34 (GMT) |
| commit | c62f1fc1006474809597a75ed920795da38e4113 (patch) | |
| tree | 5324b2e9079b5610dfcc3e8444a5cd9f01fa3ce0 | |
| parent | e677a606d5f3d4ef5b0e6a29ec8eb996f197600b (diff) | |
| download | swift-c62f1fc1006474809597a75ed920795da38e4113.zip swift-c62f1fc1006474809597a75ed920795da38e4113.tar.bz2 | |
Overriding QtVCardWidget::sizeHint() so ideally there is no scrolling
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.1.
Change-Id: I27ba80b9799fd8177a291ec0b8eeb0c2168e2f04
| -rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp | 22 | ||||
| -rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.h | 20 |
2 files changed, 33 insertions, 9 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp index 6b80084..e202de5 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp | |||
| @@ -5,18 +5,19 @@ | |||
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | /* | 7 | /* |
| 8 | * Copyright (c) 2014 Isode Limited. | 8 | * Copyright (c) 2014-2015 Isode Limited. |
| 9 | * All rights reserved. | 9 | * All rights reserved. |
| 10 | * See the COPYING file for more information. | 10 | * See the COPYING file for more information. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <Swift/QtUI/QtVCardWidget/QtVCardWidget.h> | 13 | #include <Swift/QtUI/QtVCardWidget/QtVCardWidget.h> |
| 14 | #include <Swift/QtUI/QtVCardWidget/ui_QtVCardWidget.h> | ||
| 14 | 15 | ||
| 15 | #include <QDebug> | 16 | #include <QDebug> |
| 16 | #include <QLineEdit> | 17 | #include <QLineEdit> |
| 17 | #include <QMenu> | 18 | #include <QMenu> |
| 18 | 19 | ||
| 19 | #include <Swift/QtUI/QtVCardWidget/ui_QtVCardWidget.h> | 20 | #include <Swift/QtUI/QtSwiftUtil.h> |
| 20 | #include <Swift/QtUI/QtVCardWidget/QtVCardAddressField.h> | 21 | #include <Swift/QtUI/QtVCardWidget/QtVCardAddressField.h> |
| 21 | #include <Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h> | 22 | #include <Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h> |
| 22 | #include <Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h> | 23 | #include <Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h> |
| @@ -29,7 +30,6 @@ | |||
| 29 | #include <Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h> | 30 | #include <Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h> |
| 30 | #include <Swift/QtUI/QtVCardWidget/QtVCardTitleField.h> | 31 | #include <Swift/QtUI/QtVCardWidget/QtVCardTitleField.h> |
| 31 | #include <Swift/QtUI/QtVCardWidget/QtVCardURLField.h> | 32 | #include <Swift/QtUI/QtVCardWidget/QtVCardURLField.h> |
| 32 | #include <Swift/QtUI/QtSwiftUtil.h> | ||
| 33 | 33 | ||
| 34 | namespace Swift { | 34 | namespace Swift { |
| 35 | 35 | ||
| @@ -66,12 +66,27 @@ QtVCardWidget::QtVCardWidget(QWidget* parent) : | |||
| 66 | addFieldType(menu, boost::make_shared<QtVCardURLField::FieldInfo>()); | 66 | addFieldType(menu, boost::make_shared<QtVCardURLField::FieldInfo>()); |
| 67 | 67 | ||
| 68 | setEditable(false); | 68 | setEditable(false); |
| 69 | setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); | ||
| 69 | } | 70 | } |
| 70 | 71 | ||
| 71 | QtVCardWidget::~QtVCardWidget() { | 72 | QtVCardWidget::~QtVCardWidget() { |
| 72 | delete ui; | 73 | delete ui; |
| 73 | } | 74 | } |
| 74 | 75 | ||
| 76 | QSize QtVCardWidget::sizeHint() const { | ||
| 77 | QSize newSizeHint = ui->photoAndName->sizeHint(); | ||
| 78 | |||
| 79 | // use mininmal size that does not require scrolling | ||
| 80 | QSize fieldsWidgetSize = ui->scrollArea->widget()->minimumSize(); | ||
| 81 | fieldsWidgetSize.setWidth(ui->scrollArea->widget()->sizeHint().width()); | ||
| 82 | |||
| 83 | newSizeHint += QSize(0, ui->line->height()); | ||
| 84 | |||
| 85 | newSizeHint = QSize(std::max(newSizeHint.width(), fieldsWidgetSize.width()), newSizeHint.height() + fieldsWidgetSize.height()); | ||
| 86 | |||
| 87 | return newSizeHint; | ||
| 88 | } | ||
| 89 | |||
| 75 | bool QtVCardWidget::isEditable() const { | 90 | bool QtVCardWidget::isEditable() const { |
| 76 | return editable; | 91 | return editable; |
| 77 | } | 92 | } |
| @@ -182,7 +197,6 @@ void QtVCardWidget::setVCard(VCard::ref vcard) { | |||
| 182 | 197 | ||
| 183 | relayoutToolButton(); | 198 | relayoutToolButton(); |
| 184 | setEditable(editable); | 199 | setEditable(editable); |
| 185 | window()->resize(sizeHint().width(), size().height() < 200 ? 200 : size().height()); | ||
| 186 | } | 200 | } |
| 187 | 201 | ||
| 188 | VCard::ref QtVCardWidget::getVCard() { | 202 | VCard::ref QtVCardWidget::getVCard() { |
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h index 29ed499..8c0ff31 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h | |||
| @@ -4,16 +4,24 @@ | |||
| 4 | * See Documentation/Licenses/BSD-simplified.txt for more information. | 4 | * See Documentation/Licenses/BSD-simplified.txt for more information. |
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | /* | ||
| 8 | * Copyright (c) 2015 Isode Limited. | ||
| 9 | * All rights reserved. | ||
| 10 | * See the COPYING file for more information. | ||
| 11 | */ | ||
| 12 | |||
| 7 | #pragma once | 13 | #pragma once |
| 8 | 14 | ||
| 9 | #include <QWidget> | 15 | #include <boost/smart_ptr/make_shared.hpp> |
| 16 | |||
| 10 | #include <QToolButton> | 17 | #include <QToolButton> |
| 18 | #include <QWidget> | ||
| 19 | |||
| 11 | #include <Swiften/Elements/VCard.h> | 20 | #include <Swiften/Elements/VCard.h> |
| 12 | #include <boost/smart_ptr/make_shared.hpp> | ||
| 13 | 21 | ||
| 14 | #include "QtVCardFieldInfo.h" | 22 | #include <Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h> |
| 15 | #include "QtVCardGeneralField.h" | 23 | #include <Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h> |
| 16 | #include "QtVCardPhotoAndNameFields.h" | 24 | #include <Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h> |
| 17 | 25 | ||
| 18 | namespace Ui { | 26 | namespace Ui { |
| 19 | class QtVCardWidget; | 27 | class QtVCardWidget; |
| @@ -35,6 +43,8 @@ namespace Swift { | |||
| 35 | void setVCard(VCard::ref vcard); | 43 | void setVCard(VCard::ref vcard); |
| 36 | VCard::ref getVCard(); | 44 | VCard::ref getVCard(); |
| 37 | 45 | ||
| 46 | virtual QSize sizeHint() const; | ||
| 47 | |||
| 38 | signals: | 48 | signals: |
| 39 | void editableChanged(bool editable); | 49 | void editableChanged(bool editable); |
| 40 | 50 | ||
Swift