diff options
-rw-r--r-- | src/libs/utils/fancylineedit.cpp | 25 | ||||
-rw-r--r-- | src/libs/utils/fancylineedit.h | 9 | ||||
-rw-r--r-- | src/plugins/coreplugin/find/findtoolbar.cpp | 8 | ||||
-rw-r--r-- | src/plugins/coreplugin/locator/locatorwidget.cpp | 4 | ||||
-rw-r--r-- | src/plugins/coreplugin/variablechooser.cpp | 8 |
5 files changed, 24 insertions, 30 deletions
diff --git a/src/libs/utils/fancylineedit.cpp b/src/libs/utils/fancylineedit.cpp index 20a2673352..17455f45f1 100644 --- a/src/libs/utils/fancylineedit.cpp +++ b/src/libs/utils/fancylineedit.cpp @@ -38,6 +38,7 @@ #include <QStylePainter> #include <QPropertyAnimation> #include <QStyle> +#include <QWindow> /*! \class Utils::FancyLineEdit @@ -91,7 +92,6 @@ public: HistoryCompleter *m_historyCompleter = 0; FancyLineEdit::ValidationFunction m_validationFunction = &FancyLineEdit::validateWithValidator; QString m_oldText; - QPixmap m_pixmap[2]; QMenu *m_menu[2]; FancyLineEdit::State m_state = FancyLineEdit::Invalid; bool m_menuTabFocusTrigger[2]; @@ -256,17 +256,17 @@ void FancyLineEdit::resizeEvent(QResizeEvent *) updateButtonPositions(); } -void FancyLineEdit::setButtonPixmap(Side side, const QPixmap &buttonPixmap) +void FancyLineEdit::setButtonIcon(Side side, const QIcon &icon) { - d->m_iconbutton[side]->setPixmap(buttonPixmap); + d->m_iconbutton[side]->setIcon(icon); updateMargins(); updateButtonPositions(); update(); } -QPixmap FancyLineEdit::buttonPixmap(Side side) const +QIcon FancyLineEdit::buttonIcon(Side side) const { - return d->m_pixmap[side]; + return d->m_iconbutton[side]->icon(); } void FancyLineEdit::setButtonMenu(Side side, QMenu *buttonMenu) @@ -360,9 +360,9 @@ void FancyLineEdit::setFiltering(bool on) QLatin1String("edit-clear-locationbar-rtl") : QLatin1String("edit-clear-locationbar-ltr"), QIcon::fromTheme(QLatin1String("edit-clear"), - Icons::EDIT_CLEAR.pixmap())); + Icons::EDIT_CLEAR.icon())); - setButtonPixmap(Right, icon.pixmap(16)); + setButtonIcon(Right, icon); setButtonVisible(Right, true); setPlaceholderText(tr("Filter")); setButtonToolTip(Right, tr("Clear text")); @@ -517,15 +517,16 @@ IconButton::IconButton(QWidget *parent) void IconButton::paintEvent(QPaintEvent *) { - const qreal pixmapRatio = m_pixmap.devicePixelRatio(); + QWindow *window = this->window()->windowHandle(); + const QPixmap iconPixmap = icon().pixmap(window, sizeHint()); QStylePainter painter(this); - QRect pixmapRect = QRect(0, 0, m_pixmap.width()/pixmapRatio, m_pixmap.height()/pixmapRatio); + QRect pixmapRect(QPoint(), iconPixmap.size() / window->devicePixelRatio()); pixmapRect.moveCenter(rect().center()); if (m_autoHide) painter.setOpacity(m_iconOpacity); - painter.drawPixmap(pixmapRect, m_pixmap); + painter.drawPixmap(pixmapRect, iconPixmap); if (hasFocus()) { QStyleOptionFocusRect focusOption; @@ -550,8 +551,8 @@ void IconButton::animateShow(bool visible) QSize IconButton::sizeHint() const { - const qreal pixmapRatio = m_pixmap.devicePixelRatio(); - return QSize(m_pixmap.width()/pixmapRatio, m_pixmap.height()/pixmapRatio); + QWindow *window = this->window()->windowHandle(); + return icon().actualSize(window, QSize(32, 16)); // Find flags icon can be wider than 16px } void IconButton::keyPressEvent(QKeyEvent *ke) diff --git a/src/libs/utils/fancylineedit.h b/src/libs/utils/fancylineedit.h index 9df78961bb..ba3918ab8f 100644 --- a/src/libs/utils/fancylineedit.h +++ b/src/libs/utils/fancylineedit.h @@ -45,12 +45,9 @@ class QTCREATOR_UTILS_EXPORT IconButton: public QAbstractButton Q_OBJECT Q_PROPERTY(float iconOpacity READ iconOpacity WRITE setIconOpacity) Q_PROPERTY(bool autoHide READ hasAutoHide WRITE setAutoHide) - Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) public: explicit IconButton(QWidget *parent = 0); void paintEvent(QPaintEvent *event); - void setPixmap(const QPixmap &pixmap) { m_pixmap = pixmap; update(); } - QPixmap pixmap() const { return m_pixmap; } float iconOpacity() { return m_iconOpacity; } void setIconOpacity(float value) { m_iconOpacity = value; update(); } void animateShow(bool visible); @@ -67,7 +64,7 @@ protected: private: float m_iconOpacity; bool m_autoHide; - QPixmap m_pixmap; + QIcon m_icon; }; class QTCREATOR_UTILS_EXPORT FancyLineEdit : public CompletingLineEdit @@ -86,8 +83,8 @@ public: explicit FancyLineEdit(QWidget *parent = 0); ~FancyLineEdit(); - QPixmap buttonPixmap(Side side) const; - void setButtonPixmap(Side side, const QPixmap &pixmap); + QIcon buttonIcon(Side side) const; + void setButtonIcon(Side side, const QIcon &icon); QMenu *buttonMenu(Side side) const; void setButtonMenu(Side side, QMenu *menu); diff --git a/src/plugins/coreplugin/find/findtoolbar.cpp b/src/plugins/coreplugin/find/findtoolbar.cpp index c4cfe718cf..8b9016d8f2 100644 --- a/src/plugins/coreplugin/find/findtoolbar.cpp +++ b/src/plugins/coreplugin/find/findtoolbar.cpp @@ -666,11 +666,11 @@ void FindToolBar::updateIcons() bool regexp = effectiveFlags & FindRegularExpression; bool preserveCase = effectiveFlags & FindPreserveCase; if (!casesensitive && !wholewords && !regexp && !preserveCase) { - const QPixmap pixmap = Utils::Icons::MAGNIFIER.pixmap(); - m_ui.findEdit->setButtonPixmap(Utils::FancyLineEdit::Left, pixmap); + const QIcon icon = Utils::Icons::MAGNIFIER.icon(); + m_ui.findEdit->setButtonIcon(Utils::FancyLineEdit::Left, icon); } else { - m_ui.findEdit->setButtonPixmap(Utils::FancyLineEdit::Left, - IFindFilter::pixmapForFindFlags(effectiveFlags)); + m_ui.findEdit->setButtonIcon(Utils::FancyLineEdit::Left, + IFindFilter::pixmapForFindFlags(effectiveFlags)); } } diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp index 3ba6b7f3d1..8d0dbe6292 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.cpp +++ b/src/plugins/coreplugin/locator/locatorwidget.cpp @@ -539,9 +539,9 @@ LocatorWidget::LocatorWidget(Locator *locator) : layout->setMargin(0); layout->addWidget(m_fileLineEdit); - const QPixmap pixmap = Utils::Icons::MAGNIFIER.pixmap(); + const QIcon icon = Utils::Icons::MAGNIFIER.icon(); m_fileLineEdit->setFiltering(true); - m_fileLineEdit->setButtonPixmap(Utils::FancyLineEdit::Left, pixmap); + m_fileLineEdit->setButtonIcon(Utils::FancyLineEdit::Left, icon); m_fileLineEdit->setButtonToolTip(Utils::FancyLineEdit::Left, tr("Options")); m_fileLineEdit->setFocusPolicy(Qt::ClickFocus); m_fileLineEdit->setButtonVisible(Utils::FancyLineEdit::Left, true); diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/plugins/coreplugin/variablechooser.cpp index 109b81a8d8..5f675de7a3 100644 --- a/src/plugins/coreplugin/variablechooser.cpp +++ b/src/plugins/coreplugin/variablechooser.cpp @@ -107,7 +107,7 @@ public: void createIconButton() { m_iconButton = new IconButton; - m_iconButton->setPixmap(Utils::Icons::REPLACE.pixmap()); + m_iconButton->setIcon(Utils::Icons::REPLACE.icon()); m_iconButton->setToolTip(VariableChooser::tr("Insert Variable")); m_iconButton->hide(); connect(m_iconButton.data(), static_cast<void(QAbstractButton::*)(bool)>(&QAbstractButton::clicked), @@ -457,11 +457,7 @@ void VariableChooserPrivate::updateDescription(const QModelIndex &index) */ int VariableChooserPrivate::buttonMargin() const { - int margin = m_iconButton->pixmap().width() + 8; - if (q->style()->inherits("OxygenStyle")) - margin = qMax(24, margin); - - return margin; + return 24; } void VariableChooserPrivate::updateButtonGeometry() |