+void IdentitiesSettingsPage::on_addNick_clicked() {
+ QStringList existing;
+ for(int i = 0; i < ui.nicknameList->count(); i++) existing << ui.nicknameList->item(i)->text();
+ NickEditDlg dlg(QString(), existing, this);
+ if(dlg.exec() == QDialog::Accepted) {
+ ui.nicknameList->addItem(dlg.nick());
+ ui.nicknameList->setCurrentRow(ui.nicknameList->count()-1);
+ setWidgetStates();
+ widgetHasChanged();
+ }
+}
+
+void IdentitiesSettingsPage::on_deleteNick_clicked() {
+ // no confirmation, since a nickname is really nothing hard to recreate
+ if(ui.nicknameList->selectedItems().count()) {
+ delete ui.nicknameList->takeItem(ui.nicknameList->row(ui.nicknameList->selectedItems()[0]));
+ ui.nicknameList->setCurrentRow(qMin(ui.nicknameList->currentRow()+1, ui.nicknameList->count()-1));
+ setWidgetStates();
+ widgetHasChanged();
+ }
+}
+
+void IdentitiesSettingsPage::on_renameNick_clicked() {
+ if(!ui.nicknameList->selectedItems().count()) return;
+ QString old = ui.nicknameList->selectedItems()[0]->text();
+ QStringList existing;
+ for(int i = 0; i < ui.nicknameList->count(); i++) existing << ui.nicknameList->item(i)->text();
+ NickEditDlg dlg(old, existing, this);
+ if(dlg.exec() == QDialog::Accepted) {
+ ui.nicknameList->selectedItems()[0]->setText(dlg.nick());
+ }
+
+}
+
+void IdentitiesSettingsPage::on_nickUp_clicked() {
+ if(!ui.nicknameList->selectedItems().count()) return;
+ int row = ui.nicknameList->row(ui.nicknameList->selectedItems()[0]);
+ if(row > 0) {
+ ui.nicknameList->insertItem(row-1, ui.nicknameList->takeItem(row));
+ ui.nicknameList->setCurrentRow(row-1);
+ setWidgetStates();
+ widgetHasChanged();
+ }
+}
+
+void IdentitiesSettingsPage::on_nickDown_clicked() {
+ if(!ui.nicknameList->selectedItems().count()) return;
+ int row = ui.nicknameList->row(ui.nicknameList->selectedItems()[0]);
+ if(row < ui.nicknameList->count()-1) {
+ ui.nicknameList->insertItem(row+1, ui.nicknameList->takeItem(row));
+ ui.nicknameList->setCurrentRow(row+1);
+ setWidgetStates();
+ widgetHasChanged();
+ }
+}
+