Changeset View
Changeset View
Standalone View
Standalone View
libs/ui/kis_paintop_settings_widget.cpp
Context not available. | |||||
31 | #include <QMenu> | 31 | #include <QMenu> | ||
---|---|---|---|---|---|
32 | #include <QAction> | 32 | #include <QAction> | ||
33 | #include <QShowEvent> | 33 | #include <QShowEvent> | ||
34 | #include <QScrollArea> | ||||
35 | #include <QScrollBar> | ||||
34 | 36 | | |||
35 | #include <brushengine/kis_paintop_preset.h> | 37 | #include <brushengine/kis_paintop_preset.h> | ||
36 | #include <kis_cmb_composite.h> | 38 | #include <kis_cmb_composite.h> | ||
Context not available. | |||||
48 | KisCategorizedListView* optionsList; | 50 | KisCategorizedListView* optionsList; | ||
49 | KisPaintOpOptionListModel* model; | 51 | KisPaintOpOptionListModel* model; | ||
50 | QStackedWidget* optionsStack; | 52 | QStackedWidget* optionsStack; | ||
53 | QScrollArea* optionsStackScrollableArea; | ||||
51 | 54 | | |||
52 | }; | 55 | }; | ||
53 | 56 | | |||
Context not available. | |||||
64 | m_d->optionsList->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); | 67 | m_d->optionsList->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); | ||
65 | m_d->optionsList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | 68 | m_d->optionsList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | ||
66 | 69 | | |||
67 | QSizePolicy policy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); | 70 | QSizePolicy policy = QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); | ||
68 | m_d->optionsList->setSizePolicy(policy); | 71 | m_d->optionsList->setSizePolicy(policy); | ||
69 | 72 | | |||
70 | m_d->optionsList->setMinimumWidth(140); // this should be just big enough to show all of the setting names | 73 | m_d->optionsList->setMinimumWidth(140); // this should be just big enough to show all of the setting names | ||
71 | 74 | | |||
72 | m_d->optionsStack = new QStackedWidget(this); | 75 | m_d->optionsStack = new QStackedWidget(this); | ||
73 | policy = QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); | 76 | policy = QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); | ||
74 | m_d->optionsStack->setSizePolicy(policy); | 77 | m_d->optionsStack->setSizePolicy(policy); | ||
75 | 78 | | |||
79 | // put settings in a scrollable area in case they get too long | ||||
80 | m_d->optionsStackScrollableArea = new QScrollArea(this); | ||||
81 | m_d->optionsStackScrollableArea->setWidgetResizable(true); | ||||
82 | m_d->optionsStackScrollableArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); | ||||
83 | m_d->optionsStackScrollableArea->setWidget(m_d->optionsStack); | ||||
84 | m_d->optionsStackScrollableArea->setSizePolicy(policy); | ||||
85 | | ||||
86 | | ||||
87 | // TODO: This area seems to not be collapsing right, so manually set width for now | ||||
88 | m_d->optionsStack->setMaximumWidth(330); | ||||
89 | | ||||
90 | m_d->optionsStackScrollableArea->setMaximumWidth(350); | ||||
91 | m_d->optionsStackScrollableArea->setMinimumHeight(530); // change this to change height for setting area | ||||
92 | | ||||
76 | QHBoxLayout* layout = new QHBoxLayout(this); | 93 | QHBoxLayout* layout = new QHBoxLayout(this); | ||
77 | layout->addWidget(m_d->optionsList); | 94 | layout->addWidget(m_d->optionsList); | ||
78 | layout->addWidget(m_d->optionsStack); | 95 | layout->addWidget(m_d->optionsStackScrollableArea); | ||
79 | 96 | | |||
80 | layout->setStretch(0, 0); | 97 | layout->setStretch(0, 0); | ||
81 | layout->setStretch(1, 1); | 98 | layout->setStretch(1, 1); | ||
Context not available. | |||||
192 | 209 | | |||
193 | } | 210 | } | ||
194 | 211 | | |||
212 | // scroll scroll area to the top | ||||
213 | m_d->optionsStackScrollableArea->verticalScrollBar()->setValue(0); | ||||
214 | | ||||
215 | | ||||
195 | notifyPageChanged(); | 216 | notifyPageChanged(); | ||
196 | } | 217 | } | ||
197 | 218 | | |||
Context not available. |