|
24 | 24 | #include <QHBoxLayout> |
25 | 25 | #include <QIcon> |
26 | 26 | #include <QLabel> |
| 27 | +#include <QLayout> |
27 | 28 | #include <QProgressBar> |
28 | 29 | #include <QPushButton> |
29 | 30 | #include <QSizePolicy> |
@@ -162,6 +163,21 @@ void setupTransparentLayout(QLayout *layout, int spacing = 0) |
162 | 163 | layout->setContentsMargins(0, 0, 0, 0); |
163 | 164 | layout->setSpacing(spacing); |
164 | 165 | } |
| 166 | + |
| 167 | +bool layoutContainsPushButton(QLayout *layout) |
| 168 | +{ |
| 169 | + if (!layout) { |
| 170 | + return false; |
| 171 | + } |
| 172 | + |
| 173 | + for (int i = 0; i < layout->count(); ++i) { |
| 174 | + if (qobject_cast<QPushButton *>(layout->itemAt(i)->widget())) { |
| 175 | + return true; |
| 176 | + } |
| 177 | + } |
| 178 | + |
| 179 | + return false; |
| 180 | +} |
165 | 181 | } |
166 | 182 |
|
167 | 183 | NMCAccountSettings::NMCAccountSettings(AccountState *accountState, QWidget *parent) |
@@ -246,26 +262,33 @@ void NMCAccountSettings::setLayout() |
246 | 262 | setupContentLabel(getUi()->encryptionMessageLabel); |
247 | 263 | setupTransparentWidget(getUi()->encryptionMessageLabel); |
248 | 264 |
|
249 | | - clearLayout(e2eeButtonContainerLayout); |
| 265 | + auto *sourceLayout = getUi()->encryptionMessageButtonsLayout; |
| 266 | + const bool hasNewSourceButtons = layoutContainsPushButton(sourceLayout); |
| 267 | + |
| 268 | + if (hasNewSourceButtons) { |
| 269 | + clearLayout(e2eeButtonContainerLayout); |
250 | 270 |
|
251 | | - if (auto *sourceLayout = getUi()->encryptionMessageButtonsLayout) { |
252 | 271 | while (auto *item = sourceLayout->takeAt(0)) { |
253 | 272 | if (auto *button = qobject_cast<QPushButton *>(item->widget())) { |
254 | 273 | styleSecondaryButton(button); |
255 | 274 | e2eeButtonContainerLayout->addWidget(button, 0, Qt::AlignRight); |
256 | 275 | } |
257 | 276 | delete item; |
258 | 277 | } |
259 | | - } |
260 | 278 |
|
261 | | - e2eeButtonContainerLayout->addStretch(); |
| 279 | + e2eeButtonContainerLayout->addStretch(); |
| 280 | + } else { |
| 281 | + for (int i = 0; i < e2eeButtonContainerLayout->count(); ++i) { |
| 282 | + if (auto *button = qobject_cast<QPushButton *>(e2eeButtonContainerLayout->itemAt(i)->widget())) { |
| 283 | + styleSecondaryButton(button); |
| 284 | + } |
| 285 | + } |
| 286 | + } |
262 | 287 |
|
263 | 288 | getUi()->encryptionMessage->updateGeometry(); |
264 | | - getUi()->encryptionMessage->adjustSize(); |
265 | 289 |
|
266 | 290 | if (auto *panel = getUi()->encryptionMessage->parentWidget()) { |
267 | 291 | panel->updateGeometry(); |
268 | | - panel->adjustSize(); |
269 | 292 | } |
270 | 293 |
|
271 | 294 | updateGeometry(); |
|
0 commit comments