summaryrefslogtreecommitdiffstats
path: root/Swift
diff options
context:
space:
mode:
Diffstat (limited to 'Swift')
-rw-r--r--Swift/QtUI/QtBlockListEditorWindow.cpp2
-rw-r--r--Swift/QtUI/QtVCardWidget/QtCloseButton.cpp28
-rw-r--r--Swift/QtUI/QtVCardWidget/QtCloseButton.h4
-rw-r--r--Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp25
-rw-r--r--Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h1
-rw-r--r--Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp14
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp10
7 files changed, 43 insertions, 41 deletions
diff --git a/Swift/QtUI/QtBlockListEditorWindow.cpp b/Swift/QtUI/QtBlockListEditorWindow.cpp
index 63e8d1f..150b634 100644
--- a/Swift/QtUI/QtBlockListEditorWindow.cpp
+++ b/Swift/QtUI/QtBlockListEditorWindow.cpp
@@ -78,5 +78,5 @@ QtBlockListEditorWindow::QtBlockListEditorWindow() : QWidget(), ui(new Ui::QtBlo
ui->blockListTreeWidget->setColumnCount(2);
ui->blockListTreeWidget->header()->setStretchLastSection(false);
- int closeIconWidth = ui->blockListTreeWidget->fontMetrics().height();
+ int closeIconWidth = style()->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0);
ui->blockListTreeWidget->header()->resizeSection(1, closeIconWidth);
diff --git a/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp b/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp
index a6afe81..ebd62bc 100644
--- a/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp
@@ -15,23 +15,9 @@ namespace Swift {
QtCloseButton::QtCloseButton(QWidget *parent) : QAbstractButton(parent) {
- lightPixmap = QPixmap(12,12);
- lightPixmap.fill(QColor(0,0,0,0));
- QStyleOption opt;
- opt.init(this);
- opt.state = QStyle::State(0);
- opt.state |= QStyle::State_MouseOver;
- QPainter lightPixmapPainter(&lightPixmap);
- style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &lightPixmapPainter);
- darkPixmap = QPixmap(12,12);
- darkPixmap.fill(QColor(0,0,0,0));
- opt.init(this);
- opt.state = QStyle::State(0);
- QPainter darkPixmapPainter(&darkPixmap);
- style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &darkPixmapPainter);
}
QSize QtCloseButton::sizeHint() const {
- return QSize(width(), height());
+ return QSize(style()->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0), style()->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0));
}
@@ -46,9 +32,13 @@ void QtCloseButton::paintEvent(QPaintEvent *) {
QPainter painter(this);
painter.setRenderHint(QPainter::HighQualityAntialiasing);
- if (underMouse()) {
- painter.drawPixmap(0, 0, height(), height(), darkPixmap);
- } else {
- painter.drawPixmap(0, 0, height(), height(), lightPixmap);
+ QStyleOption opt;
+ opt.init(this);
+ opt.state |= QStyle::State_AutoRaise;
+ if (underMouse() && !isDown()) {
+ opt.state |= QStyle::State_Raised;
+ } else if (isDown()) {
+ opt.state |= QStyle::State_Sunken;
}
+ style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &painter, this);
}
diff --git a/Swift/QtUI/QtVCardWidget/QtCloseButton.h b/Swift/QtUI/QtVCardWidget/QtCloseButton.h
index 6ce8d30..cb92e12 100644
--- a/Swift/QtUI/QtVCardWidget/QtCloseButton.h
+++ b/Swift/QtUI/QtVCardWidget/QtCloseButton.h
@@ -20,8 +20,4 @@ namespace Swift {
virtual bool event(QEvent *e);
virtual void paintEvent(QPaintEvent* );
-
- private:
- QPixmap lightPixmap;
- QPixmap darkPixmap;
};
diff --git a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp
index 90520ad..e7e3175 100644
--- a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp
@@ -6,5 +6,5 @@
#include "QtRemovableItemDelegate.h"
-
+#include <Swiften/Base/Platform.h>
#include <QEvent>
#include <QPainter>
@@ -16,11 +16,19 @@ QtRemovableItemDelegate::QtRemovableItemDelegate(const QStyle* style) : style(st
}
-void QtRemovableItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const {
+void QtRemovableItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex&) const {
QStyleOption opt;
- opt.state = QStyle::State(0);
- opt.state |= QStyle::State_MouseOver;
+ opt.state = option.state;
+ opt.state |= QStyle::State_AutoRaise;
+ if (option.state.testFlag(QStyle::State_MouseOver)) {
+ opt.state |= QStyle::State_Raised;
+ }
+ opt.rect = option.rect;
painter->save();
- drawBackground(painter, option, index);
- painter->translate(option.rect.x(), option.rect.y()+(option.rect.height() - 12)/2);
+ painter->fillRect(option.rect, option.state & QStyle::State_Selected ? option.palette.highlight() : option.palette.base());
+#ifdef SWIFTEN_PLATFORM_MACOSX
+ // workaround for Qt not painting relative to the cell we're in, on OS X
+ int height = style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0);
+ painter->translate(option.rect.x(), option.rect.y() + (option.rect.height() - height)/2);
+#endif
style->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, painter);
painter->restore();
@@ -40,3 +48,8 @@ bool QtRemovableItemDelegate::editorEvent(QEvent* event, QAbstractItemModel* mod
}
+QSize QtRemovableItemDelegate::sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const {
+ QSize size(style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0), style->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0));
+ return size;
+}
+
}
diff --git a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h
index 3d99ad8..75137e1 100644
--- a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h
+++ b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h
@@ -17,4 +17,5 @@ class QtRemovableItemDelegate : public QItemDelegate {
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex&) const;
virtual QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const;
+ virtual QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const;
protected:
diff --git a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp
index efe04dc..4f1d3ab 100644
--- a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp
@@ -12,7 +12,5 @@ QtResizableLineEdit::QtResizableLineEdit(QWidget* parent) :
QLineEdit(parent) {
connect(this, SIGNAL(textChanged(QString)), SLOT(textChanged(QString)));
- setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
- int marginHeight = 6;
- setMaximumHeight(fontMetrics().height() + marginHeight);
+ setMinimumWidth(30);
}
@@ -35,10 +33,14 @@ void QtResizableLineEdit::setEditable(const bool editable) {
QSize QtResizableLineEdit::sizeHint() const {
int horizontalMargin = 10;
+ int verticalMargin = 6;
+ QSize textDimensions;
#if QT_VERSION >= 0x040700
- int w = fontMetrics().boundingRect(text().isEmpty() ? placeholderText() : text()).width() + horizontalMargin;
+ textDimensions = fontMetrics().boundingRect(text().isEmpty() ? placeholderText() : text()).size();
#else
- int w = fontMetrics().boundingRect(text().isEmpty() ? QString(" ") : text()).width() + horizontalMargin;
+ textDimensions = fontMetrics().boundingRect(text().isEmpty() ? QString(" ") : text()).size();
#endif
- return QSize(w, height());
+ textDimensions.setWidth(textDimensions.width() + horizontalMargin);
+ textDimensions.setHeight(textDimensions.height() + verticalMargin);
+ return textDimensions;
}
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
index e399885..9ecc8e0 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
@@ -40,5 +40,5 @@ void QtVCardOrganizationField::setupContentWidgets() {
unitsTreeWidget->setColumnCount(2);
unitsTreeWidget->header()->setStretchLastSection(false);
- int closeIconWidth = unitsTreeWidget->fontMetrics().height();
+ int closeIconWidth = style()->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0);
unitsTreeWidget->header()->resizeSection(1, closeIconWidth);
@@ -77,4 +77,8 @@ void QtVCardOrganizationField::setOrganization(const VCard::Organization& organi
unitsTreeWidget->addTopLevelItem(item);
}
+
+ QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << "");
+ item->setFlags(item->flags() | Qt::ItemIsEditable);
+ unitsTreeWidget->addTopLevelItem(item);
}
@@ -89,8 +93,4 @@ VCard::Organization QtVCardOrganizationField::getOrganization() const {
}
- QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << "");
- item->setFlags(item->flags() | Qt::ItemIsEditable);
- unitsTreeWidget->addTopLevelItem(item);
-
return organization;
}