Skip to content

Commit 85f3057

Browse files
authored
Merge pull request #9599 from nextcloud/bugfix/noid/settings-dialog
Refine new settings dialog
2 parents 38750ca + 893ace8 commit 85f3057

File tree

9 files changed

+196
-267
lines changed

9 files changed

+196
-267
lines changed

src/gui/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ set(client_UI_SRCS
3636
ignorelisteditor.ui
3737
ignorelisttablewidget.ui
3838
networksettings.ui
39-
settingsdialog.ui
4039
sslerrordialog.ui
4140
addcertificatedialog.ui
4241
passwordinputdialog.ui

src/gui/accountsettings.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
#include <QStyle>
5959
#include <QFileDialog>
6060

61+
using namespace Qt::StringLiterals;
62+
6163
#ifdef BUILD_FILE_PROVIDER_MODULE
6264
#include "macOS/fileprovider.h"
6365
#endif
@@ -174,20 +176,13 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
174176
, _userInfo(accountState, false, true)
175177
{
176178
_ui->setupUi(this);
177-
_ui->gridLayout->setRowStretch(0, 0);
178-
_ui->gridLayout->setRowStretch(1, 0);
179-
_ui->gridLayout->setRowStretch(2, 0);
180-
_ui->gridLayout->setRowStretch(3, 0);
181-
_ui->gridLayout->setRowStretch(4, 1);
182179

183180
_model->setAccountState(_accountState);
184181
_model->setParent(this);
185182
const auto delegate = new FolderStatusDelegate;
186183
delegate->setParent(this);
187184

188-
_ui->accountTabsPanel->setStyleSheet(QStringLiteral(
189-
"QWidget#syncFoldersPanelContents, QWidget#connectionSettingsPanelContents, QWidget#fileProviderPanelContents {"
190-
" background: palette(alternate-base); }"));
185+
setStyleSheet("QWidget#syncFoldersPanelContents, QWidget#connectionSettingsPanelContents, QWidget#fileProviderPanelContents { background: palette(alternate-base); }"_L1);
191186
_ui->syncFoldersPanelContents->setAutoFillBackground(true);
192187
_ui->syncFoldersPanelContents->setAttribute(Qt::WA_StyledBackground, true);
193188
_ui->syncFoldersPanelContents->setContentsMargins(0, 0, 0, 0);

src/gui/accountsettings.ui

Lines changed: 100 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<property name="windowTitle">
1414
<string notr="true">Form</string>
1515
</property>
16-
<layout class="QGridLayout" name="gridLayout">
16+
<layout class="QVBoxLayout" name="verticalLayout_2">
1717
<property name="leftMargin">
1818
<number>0</number>
1919
</property>
@@ -26,24 +26,24 @@
2626
<property name="bottomMargin">
2727
<number>0</number>
2828
</property>
29-
<item row="0" column="0">
29+
<item>
3030
<widget class="QFrame" name="accountStatusPanel">
3131
<property name="frameShape">
32-
<enum>QFrame::NoFrame</enum>
32+
<enum>QFrame::Shape::NoFrame</enum>
3333
</property>
3434
<layout class="QVBoxLayout" name="accountStatusLayout">
35-
<property name="leftMargin">
35+
<property name="leftMargin">
3636
<number>0</number>
37-
</property>
38-
<property name="topMargin">
37+
</property>
38+
<property name="topMargin">
3939
<number>0</number>
40-
</property>
41-
<property name="rightMargin">
40+
</property>
41+
<property name="rightMargin">
4242
<number>0</number>
43-
</property>
44-
<property name="bottomMargin">
43+
</property>
44+
<property name="bottomMargin">
4545
<number>0</number>
46-
</property>
46+
</property>
4747
<item>
4848
<widget class="QWidget" name="accountStatus" native="true">
4949
<layout class="QGridLayout" name="gridLayout_2">
@@ -72,7 +72,7 @@
7272
<string>Connected with &lt;server&gt; as &lt;user&gt;</string>
7373
</property>
7474
<property name="textFormat">
75-
<enum>Qt::RichText</enum>
75+
<enum>Qt::TextFormat::RichText</enum>
7676
</property>
7777
<property name="wordWrap">
7878
<bool>true</bool>
@@ -102,7 +102,7 @@
102102
<string/>
103103
</property>
104104
<property name="alignment">
105-
<set>Qt::AlignHCenter|Qt::AlignTop</set>
105+
<set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set>
106106
</property>
107107
</widget>
108108
</item>
@@ -133,17 +133,21 @@
133133
</layout>
134134
</widget>
135135
</item>
136-
<item row="1" column="0">
136+
<item>
137137
<widget class="QFrame" name="fileProviderPanel">
138-
<property name="frameShape">
139-
<enum>QFrame::NoFrame</enum>
140-
</property>
141138
<property name="sizePolicy">
142-
<sizepolicy hsizetype="Preferred" vsizetype="Maximum"> <horstretch>0</horstretch>
143-
<verstretch>0</verstretch>
144-
</sizepolicy>
139+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
140+
<horstretch>0</horstretch>
141+
<verstretch>0</verstretch>
142+
</sizepolicy>
143+
</property>
144+
<property name="frameShape">
145+
<enum>QFrame::Shape::NoFrame</enum>
145146
</property>
146147
<layout class="QVBoxLayout" name="fileProviderPanelLayout">
148+
<property name="sizeConstraint">
149+
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
150+
</property>
147151
<item>
148152
<widget class="QLabel" name="fileProviderPanelTitle">
149153
<property name="font">
@@ -158,25 +162,40 @@
158162
</item>
159163
<item>
160164
<widget class="QWidget" name="fileProviderPanelContents" native="true">
161-
<property name="sizePolicy">
162-
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
163-
<horstretch>0</horstretch>
164-
<verstretch>0</verstretch>
165-
</sizepolicy>
166-
</property>
165+
<property name="sizePolicy">
166+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
167+
<horstretch>0</horstretch>
168+
<verstretch>0</verstretch>
169+
</sizepolicy>
170+
</property>
167171
</widget>
168172
</item>
169173
</layout>
170174
</widget>
171175
</item>
172-
<item row="2" column="0">
176+
<item>
173177
<widget class="QFrame" name="syncFoldersPanel">
178+
<property name="sizePolicy">
179+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
180+
<horstretch>0</horstretch>
181+
<verstretch>0</verstretch>
182+
</sizepolicy>
183+
</property>
174184
<property name="frameShape">
175-
<enum>QFrame::NoFrame</enum>
185+
<enum>QFrame::Shape::NoFrame</enum>
176186
</property>
177187
<layout class="QVBoxLayout" name="syncFoldersPanelLayout">
188+
<property name="sizeConstraint">
189+
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
190+
</property>
178191
<item>
179192
<widget class="QLabel" name="syncFoldersPanelTitle">
193+
<property name="sizePolicy">
194+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
195+
<horstretch>0</horstretch>
196+
<verstretch>0</verstretch>
197+
</sizepolicy>
198+
</property>
180199
<property name="font">
181200
<font>
182201
<bold>true</bold>
@@ -190,7 +209,7 @@
190209
<item>
191210
<widget class="QWidget" name="syncFoldersPanelContents" native="true">
192211
<property name="sizePolicy">
193-
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
212+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
194213
<horstretch>0</horstretch>
195214
<verstretch>0</verstretch>
196215
</sizepolicy>
@@ -211,25 +230,25 @@
211230
<item>
212231
<widget class="OCC::FolderStatusView" name="_folderList">
213232
<property name="sizePolicy">
214-
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
233+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
215234
<horstretch>0</horstretch>
216235
<verstretch>0</verstretch>
217236
</sizepolicy>
218237
</property>
219-
<property name="sizeAdjustPolicy">
220-
<enum>QAbstractScrollArea::AdjustToContents</enum>
221-
</property>
222238
<property name="contextMenuPolicy">
223-
<enum>Qt::CustomContextMenu</enum>
239+
<enum>Qt::ContextMenuPolicy::CustomContextMenu</enum>
224240
</property>
225241
<property name="autoFillBackground">
226242
<bool>false</bool>
227243
</property>
228244
<property name="frameShape">
229245
<enum>QFrame::Shape::NoFrame</enum>
230246
</property>
247+
<property name="sizeAdjustPolicy">
248+
<enum>QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents</enum>
249+
</property>
231250
<property name="editTriggers">
232-
<set>QAbstractItemView::NoEditTriggers</set>
251+
<set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
233252
</property>
234253
<property name="animated">
235254
<bool>true</bool>
@@ -253,7 +272,7 @@
253272
<string>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</string>
254273
</property>
255274
<property name="textFormat">
256-
<enum>Qt::RichText</enum>
275+
<enum>Qt::TextFormat::RichText</enum>
257276
</property>
258277
<property name="wordWrap">
259278
<bool>true</bool>
@@ -345,7 +364,7 @@
345364
<item>
346365
<spacer name="horizontalSpacer">
347366
<property name="orientation">
348-
<enum>Qt::Horizontal</enum>
367+
<enum>Qt::Orientation::Horizontal</enum>
349368
</property>
350369
<property name="sizeHint" stdset="0">
351370
<size>
@@ -387,58 +406,59 @@
387406
</layout>
388407
</widget>
389408
</item>
390-
<item row="3" column="0">
391-
<widget class="QFrame" name="accountTabsPanel">
409+
<item>
410+
<widget class="QFrame" name="connectionSettingsPanel">
411+
<property name="sizePolicy">
412+
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
413+
<horstretch>0</horstretch>
414+
<verstretch>0</verstretch>
415+
</sizepolicy>
416+
</property>
392417
<property name="frameShape">
393-
<enum>QFrame::NoFrame</enum>
418+
<enum>QFrame::Shape::NoFrame</enum>
394419
</property>
395-
<layout class="QVBoxLayout" name="accountTabsLayout">
396-
<property name="leftMargin">
397-
<number>0</number>
398-
</property>
399-
<property name="topMargin">
400-
<number>0</number>
401-
</property>
402-
<property name="rightMargin">
403-
<number>0</number>
404-
</property>
405-
<property name="bottomMargin">
406-
<number>0</number>
407-
</property>
420+
<layout class="QVBoxLayout" name="connectionSettingsPanelLayout">
408421
<item>
409-
<widget class="QFrame" name="connectionSettingsPanel">
410-
<property name="frameShape">
411-
<enum>QFrame::NoFrame</enum>
422+
<widget class="QLabel" name="connectionSettingsPanelTitle">
423+
<property name="font">
424+
<font>
425+
<bold>true</bold>
426+
</font>
427+
</property>
428+
<property name="text">
429+
<string>Connection settings</string>
430+
</property>
431+
</widget>
432+
</item>
433+
<item>
434+
<widget class="QWidget" name="connectionSettingsPanelContents" native="true">
435+
<property name="sizePolicy">
436+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
437+
<horstretch>0</horstretch>
438+
<verstretch>0</verstretch>
439+
</sizepolicy>
412440
</property>
413-
<layout class="QVBoxLayout" name="connectionSettingsPanelLayout">
414-
<item>
415-
<widget class="QLabel" name="connectionSettingsPanelTitle">
416-
<property name="font">
417-
<font>
418-
<bold>true</bold>
419-
</font>
420-
</property>
421-
<property name="text">
422-
<string>Connection settings</string>
423-
</property>
424-
</widget>
425-
</item>
426-
<item>
427-
<widget class="QWidget" name="connectionSettingsPanelContents" native="true">
428-
<property name="sizePolicy">
429-
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
430-
<horstretch>0</horstretch>
431-
<verstretch>0</verstretch>
432-
</sizepolicy>
433-
</property>
434-
</widget>
435-
</item>
436-
</layout>
437441
</widget>
438442
</item>
439443
</layout>
440444
</widget>
441445
</item>
446+
<item>
447+
<spacer name="verticalSpacer">
448+
<property name="orientation">
449+
<enum>Qt::Orientation::Vertical</enum>
450+
</property>
451+
<property name="sizeType">
452+
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
453+
</property>
454+
<property name="sizeHint" stdset="0">
455+
<size>
456+
<width>20</width>
457+
<height>0</height>
458+
</size>
459+
</property>
460+
</spacer>
461+
</item>
442462
</layout>
443463
</widget>
444464
<customwidgets>

src/gui/folderstatusview.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,4 @@ QRect FolderStatusView::visualRect(const QModelIndex &index) const
3333
return rect;
3434
}
3535

36-
QSize FolderStatusView::sizeHint() const
37-
{
38-
const auto baseHint = QTreeView::sizeHint();
39-
if (!model()) {
40-
return baseHint;
41-
}
42-
43-
const int rowCount = model()->rowCount();
44-
const int fallbackRowHeight = fontMetrics().height() + 8;
45-
int height = 0;
46-
47-
for (int row = 0; row < rowCount; ++row) {
48-
const int rowSizeHint = sizeHintForRow(row);
49-
height += rowSizeHint > 0 ? rowSizeHint : fallbackRowHeight;
50-
}
51-
52-
if (height == 0) {
53-
height = fallbackRowHeight;
54-
}
55-
56-
height += frameWidth() * 2;
57-
if (horizontalScrollBar()->isVisible()) {
58-
height += horizontalScrollBar()->sizeHint().height();
59-
}
60-
61-
return {baseHint.width(), height};
62-
}
63-
6436
} // namespace OCC

src/gui/folderstatusview.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ class FolderStatusView : public QTreeView
2323

2424
[[nodiscard]] QModelIndex indexAt(const QPoint &point) const override;
2525
[[nodiscard]] QRect visualRect(const QModelIndex &index) const override;
26-
[[nodiscard]] QSize sizeHint() const override;
2726
};
2827

2928
} // namespace OCC

src/gui/macOS/ui/FileProviderSettings.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ Page {
3030

3131
leftPadding: 0
3232
rightPadding: 0
33-
topPadding: Style.standardSpacing
34-
bottomPadding: Style.standardSpacing
33+
topPadding: 12 // Style.standardSpacing is 10, the QtWidgets layout uses 12. set it here as well to avoid a rough cutoff
34+
bottomPadding: 12
3535
// 1. Tell the Page how tall it actually is
3636
implicitHeight: rootColumn.implicitHeight + topPadding + bottomPadding
3737

0 commit comments

Comments
 (0)