2626#include " libsync/theme.h"
2727
2828#include < QDesktopServices>
29+ #include < QInputDialog>
2930#include < QMenu>
3031#include < QMessageBox>
3132#include < QPushButton>
@@ -110,6 +111,11 @@ void AccountViewController::buildManageAccountMenu()
110111 connect (_remove, &QAction::triggered, this , &AccountViewController::onDeleteAccount);
111112 actions.push_back (_remove);
112113
114+ _rename = new QAction (tr (" Change alias..." ));
115+ _rename->setObjectName (" changeAliasAction" );
116+ connect (_rename, &QAction::triggered, this , &AccountViewController::onChangeAlias);
117+ actions.push_back (_rename);
118+
113119 _view->setAccountMenuActions (actions);
114120}
115121
@@ -123,6 +129,7 @@ void AccountViewController::refreshAccountActions()
123129 _reconnect->setEnabled (false );
124130 _showInBrowser->setEnabled (false );
125131 _remove->setEnabled (false );
132+ _rename->setEnabled (false );
126133 return ;
127134 }
128135
@@ -187,6 +194,28 @@ void AccountViewController::onDeleteAccount()
187194 messageBox->open ();
188195}
189196
197+ void AccountViewController::onChangeAlias ()
198+ {
199+ if (!_accountState || !_accountState->account ())
200+ return ;
201+
202+
203+ // naturally this thing is STUPIDLY TINY by default so using the convenience method is out:
204+ // QString newAlias = QInputDialog::getText(_view, tr("Change alias"), tr("Account alias:"), QLineEdit::Normal, _accountState->account()->accountAlias());
205+
206+ QInputDialog dialog (_view);
207+ dialog.setWindowTitle (tr (" Change alias" ));
208+ dialog.setInputMode (QInputDialog::TextInput);
209+ dialog.setLabelText (tr (" Account alias:" ));
210+ dialog.setTextValue (_accountState->account ()->accountAlias ());
211+ QSize minHint = dialog.minimumSizeHint (); // width is 192?
212+ dialog.resize (minHint.width () * 2 , minHint.height ());
213+
214+ int res = dialog.exec ();
215+ if (res == QDialog::Accepted && !dialog.textValue ().isEmpty ())
216+ _accountState->account ()->setAccountAlias (dialog.textValue ());
217+ }
218+
190219QIcon AccountViewController::lookupStatusIcon (StatusIcon status)
191220{
192221 QIcon icon;
@@ -208,6 +237,7 @@ QIcon AccountViewController::lookupStatusIcon(StatusIcon status)
208237 }
209238 return icon;
210239}
240+
211241void AccountViewController::onAccountStateChanged (AccountState::State state)
212242{
213243 if (!_accountState || !_accountState->account () || !_view) {
0 commit comments