Skip to content

Commit 17c0510

Browse files
committed
Fix popup menu out of screen
1 parent 8c6a364 commit 17c0510

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.5)
2-
project(kColorPicker LANGUAGES CXX VERSION 0.1.5)
2+
project(kColorPicker LANGUAGES CXX VERSION 0.1.6)
33

44
set(QT_MIN_VERSION "5.9.4")
55

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# kColorPicker [![Build Status](https://travis-ci.org/ksnip/kColorPicker.svg?branch=master)](https://travis-ci.org/ksnip/kColorPicker)
22
QToolButton with color popup menu with lets you select a color. The popup features a color dialog button which can be used to add custom colors to the popup menu.
33

4-
Version 0.1.5
4+
Version 0.1.6
55

66
![kColorPicker](https://i.imgur.com/VkhUvFa.png "kColorPicker")
77

src/PopupMenu.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,17 @@
2121

2222
namespace kColorPicker {
2323

24-
PopupMenu::PopupMenu()
24+
PopupMenu::PopupMenu() :
25+
mButtonGroup(new QButtonGroup()),
26+
mLayout(new QGridLayout()),
27+
mColorDialogButton(new ColorDialogButton(QIcon(QLatin1String(":/icons/ellipsis"))))
2528
{
26-
mButtonGroup = new QButtonGroup();
27-
mLayout = new QGridLayout();
29+
2830
mLayout->setSpacing(0);
2931
mLayout->setMargin(5);
3032
setLayout(mLayout);
31-
addColorDialogButton();
33+
34+
connect(mColorDialogButton, &AbstractPopupMenuButton::colorSelected, this, &PopupMenu::colorSelected);
3235
}
3336

3437
PopupMenu::~PopupMenu()
@@ -114,11 +117,9 @@ void PopupMenu::colorSelected(const QColor &color)
114117
hide();
115118
}
116119

117-
void PopupMenu::addColorDialogButton()
120+
QSize PopupMenu::sizeHint() const
118121
{
119-
auto icon = QIcon(QLatin1String(":/icons/ellipsis"));
120-
mColorDialogButton = new ColorDialogButton(icon);
121-
connect(mColorDialogButton, &AbstractPopupMenuButton::colorSelected, this, &PopupMenu::colorSelected);
122+
return mLayout->sizeHint();
122123
}
123124

124125
} // namespace kColorPicker

src/PopupMenu.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Q_OBJECT
3838
~PopupMenu() override;
3939
void addColor(const QColor &color);
4040
void selectColor(const QColor &color);
41+
QSize sizeHint() const;
4142

4243
signals:
4344
void colorChanged(const QColor &color) const;
@@ -49,9 +50,8 @@ Q_OBJECT
4950
ColorDialogButton *mColorDialogButton;
5051

5152
void generateGrid();
52-
ColorButton *createButton(const QColor &color);
53+
static ColorButton *createButton(const QColor &color);
5354
void addColorButton(const QColor &color);
54-
void addColorDialogButton();
5555
void clearGrid();
5656
bool isColorInGrid(const QColor &color);
5757

0 commit comments

Comments
 (0)