summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-05-31 09:03:46 (GMT)
committerKevin Smith <kevin.smith@isode.com>2015-05-31 16:51:34 (GMT)
commitc62f1fc1006474809597a75ed920795da38e4113 (patch)
tree5324b2e9079b5610dfcc3e8444a5cd9f01fa3ce0
parente677a606d5f3d4ef5b0e6a29ec8eb996f197600b (diff)
downloadswift-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.cpp22
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardWidget.h20
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
34namespace Swift { 34namespace 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
71QtVCardWidget::~QtVCardWidget() { 72QtVCardWidget::~QtVCardWidget() {
72 delete ui; 73 delete ui;
73} 74}
74 75
76QSize 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
75bool QtVCardWidget::isEditable() const { 90bool 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
188VCard::ref QtVCardWidget::getVCard() { 202VCard::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
18namespace Ui { 26namespace 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