Skip to content

Commit cd07865

Browse files
committedOct 6, 2017
Settings Dialog: Fix display name compilation for macOS #6078
1 parent 315e38e commit cd07865

5 files changed

+37
-29
lines changed
 

‎src/gui/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ set(updater_SRCS
129129
IF( APPLE )
130130
list(APPEND client_SRCS cocoainitializer_mac.mm)
131131
list(APPEND client_SRCS settingsdialogmac.cpp)
132+
list(REMOVE_ITEM client_SRCS settingsdialog.cpp)
132133
list(APPEND client_SRCS socketapisocket_mac.mm)
133134
list(APPEND client_SRCS systray.mm)
134135

‎src/gui/settingsdialog.cpp

+4-23
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ static const float buttonSizeRatio = 1.618; // golden ratio
5555

5656
namespace OCC {
5757

58+
#include "settingsdialogcommon.cpp"
59+
5860
static QIcon circleMask(const QImage &avatar)
5961
{
6062
int dim = avatar.width();
@@ -236,7 +238,7 @@ void SettingsDialog::accountAdded(AccountState *s)
236238

237239
if (!brandingSingleAccount) {
238240
accountAction->setToolTip(s->account()->displayName());
239-
accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), height * buttonSizeRatio));
241+
accountAction->setIconText(SettingsDialogCommon::shortDisplayNameForSettings(s->account().data(), height * buttonSizeRatio));
240242
}
241243
_toolBar->insertAction(_toolBar->actions().at(0), accountAction);
242244
auto accountSettings = new AccountSettings(s, this);
@@ -278,32 +280,11 @@ void SettingsDialog::slotAccountDisplayNameChanged()
278280
QString displayName = account->displayName();
279281
action->setText(displayName);
280282
auto height = _toolBar->sizeHint().height();
281-
action->setIconText(shortDisplayNameForSettings(account, height * buttonSizeRatio));
283+
action->setIconText(SettingsDialogCommon::shortDisplayNameForSettings(account, height * buttonSizeRatio));
282284
}
283285
}
284286
}
285287

286-
QString SettingsDialog::shortDisplayNameForSettings(Account* account, int width) const
287-
{
288-
QString user = account->davDisplayName();
289-
if (user.isEmpty()) {
290-
user = account->credentials()->user();
291-
}
292-
QString host = account->url().host();
293-
int port = account->url().port();
294-
if (port > 0 && port != 80 && port != 443) {
295-
host.append(QLatin1Char(':'));
296-
host.append(QString::number(port));
297-
}
298-
if (width > 0) {
299-
QFont f;
300-
QFontMetrics fm(f);
301-
host = fm.elidedText(host, Qt::ElideMiddle, width);
302-
user = fm.elidedText(user, Qt::ElideRight, width);
303-
}
304-
return user + QLatin1String("\n") + host;
305-
}
306-
307288
void SettingsDialog::accountRemoved(AccountState *s)
308289
{
309290
for (auto it = _actionGroupWidgets.begin(); it != _actionGroupWidgets.end(); ++it) {

‎src/gui/settingsdialog.h

-5
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ private slots:
7878
QAction *createColorAwareAction(const QString &iconName, const QString &fileName);
7979
QAction *createActionWithIcon(const QIcon &icon, const QString &text, const QString &iconPath = QString());
8080

81-
/** display name with two lines that is displayed in the settings
82-
* If width is bigger than 0, the string will be ellided so it does not exceed that width
83-
*/
84-
QString shortDisplayNameForSettings(Account* account, int width = 0) const;
85-
8681
Ui::SettingsDialog *const _ui;
8782

8883
QActionGroup *_actionGroup;

‎src/gui/settingsdialogcommon.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
namespace SettingsDialogCommon
2+
{
3+
4+
/** display name with two lines that is displayed in the settings
5+
* If width is bigger than 0, the string will be ellided so it does not exceed that width
6+
*/
7+
QString shortDisplayNameForSettings(Account* account, int width)
8+
{
9+
QString user = account->davDisplayName();
10+
if (user.isEmpty()) {
11+
user = account->credentials()->user();
12+
}
13+
QString host = account->url().host();
14+
int port = account->url().port();
15+
if (port > 0 && port != 80 && port != 443) {
16+
host.append(QLatin1Char(':'));
17+
host.append(QString::number(port));
18+
}
19+
if (width > 0) {
20+
QFont f;
21+
QFontMetrics fm(f);
22+
host = fm.elidedText(host, Qt::ElideMiddle, width);
23+
user = fm.elidedText(user, Qt::ElideRight, width);
24+
}
25+
return user + QLatin1String("\n") + host;
26+
}
27+
28+
}

‎src/gui/settingsdialogmac.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838

3939
namespace OCC {
4040

41+
#include "settingsdialogcommon.cpp"
42+
43+
4144
// Duplicate in settingsdialog.cpp
4245
static QIcon circleMask(const QImage &avatar)
4346
{
@@ -146,7 +149,7 @@ void SettingsDialogMac::accountAdded(AccountState *s)
146149
QIcon accountIcon = MacStandardIcon::icon(MacStandardIcon::UserAccounts);
147150
auto accountSettings = new AccountSettings(s, this);
148151

149-
QString displayName = Theme::instance()->multiAccount() ? s->shortDisplayNameForSettings() : tr("Account");
152+
QString displayName = Theme::instance()->multiAccount() ? SettingsDialogCommon::shortDisplayNameForSettings(s->account().data(), 0) : tr("Account");
150153

151154
insertPreferencesPanel(0, accountIcon, displayName, accountSettings);
152155

0 commit comments

Comments
 (0)
Please sign in to comment.