X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fbufferviewsettingspage.cpp;h=1d18e389b44586d0ed119bd7b2bfd50e879d429d;hp=76e461e9a7f4633d80787f49946430e1ef7e0d08;hb=2cdbd53254371cd538a1437c39d22422249fea1a;hpb=3af9d3aeccfac1218ad3342434e5fda0c4ad1266 diff --git a/src/qtui/settingspages/bufferviewsettingspage.cpp b/src/qtui/settingspages/bufferviewsettingspage.cpp index 76e461e9..1d18e389 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.cpp +++ b/src/qtui/settingspages/bufferviewsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -27,12 +27,13 @@ #include "network.h" #include "bufferviewconfig.h" #include "bufferviewfilter.h" -#include "bufferviewmanager.h" #include "buffermodel.h" +#include "clientbufferviewmanager.h" #include "networkmodel.h" +#include "util.h" BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) - : SettingsPage(tr("General"), tr("Buffer Views"), parent), + : SettingsPage(tr("Interface"), tr("Custom Chat Lists"), parent), _ignoreWidgetChanges(false), _useBufferViewHint(false), _bufferViewHint(0) @@ -51,7 +52,7 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) coreConnectionStateChanged(Client::isConnected()); // need a core connection! connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool))); connect(ui.bufferViewList->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), - this, SLOT(bufferViewSelectionChanged(const QItemSelection &, const QItemSelection &))); + this, SLOT(bufferViewSelectionChanged(const QItemSelection &, const QItemSelection &))); connect(ui.onlyStatusBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.onlyChannelBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); @@ -123,7 +124,7 @@ void BufferViewSettingsPage::load() { } _ignoreWidgetChanges = false; - + if(!useBufferViewHint || !selectBufferViewById(bufferViewHint)) ui.bufferViewList->setCurrentRow(0); } @@ -136,7 +137,7 @@ void BufferViewSettingsPage::save() { _useBufferViewHint = true; _bufferViewHint = currentConfig->bufferViewId(); } - + QVariantList newConfigs; QVariantList deleteConfigs; QVariantList changedConfigs; @@ -223,10 +224,13 @@ void BufferViewSettingsPage::newBufferView(const QString &bufferViewName) { config->setInitialized(); QList bufferIds; if(config->addNewBuffersAutomatically()) { - if(config->sortAlphabetically()) + if(config->sortAlphabetically()) { bufferIds = Client::networkModel()->allBufferIdsSorted(); - else + } else { bufferIds = Client::networkModel()->allBufferIds(); + qSort(bufferIds); + config->setProperty("OriginalBufferList", toVariantList(bufferIds)); + } } config->initSetBufferList(bufferIds); @@ -335,8 +339,8 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked() { QListWidgetItem *currentItem = ui.bufferViewList->item(ui.bufferViewList->currentRow()); QString viewName = currentItem->text(); int viewId = bufferView(ui.bufferViewList->currentRow())->bufferViewId(); - int ret = QMessageBox::question(this, tr("Delete Buffer View?"), - tr("Do you really want to delete the buffer view \"%1\"?").arg(viewName), + int ret = QMessageBox::question(this, tr("Delete Chat List?"), + tr("Do you really want to delete the chat list \"%1\"?").arg(viewName), QMessageBox::Yes|QMessageBox::No, QMessageBox::No); if(ret == QMessageBox::Yes) { @@ -349,16 +353,16 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked() { } else if(config) { QList::iterator iter = _newBufferViews.begin(); while(iter != _newBufferViews.end()) { - if(*iter == config) { - iter = _newBufferViews.erase(iter); - break; - } else { - iter++; - } + if(*iter == config) { + iter = _newBufferViews.erase(iter); + break; + } else { + iter++; + } } delete config; if(_deleteBufferViews.isEmpty() && _changedBufferViews.isEmpty() && _newBufferViews.isEmpty()) - setChangedState(false); + setChangedState(false); } } } @@ -434,16 +438,12 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config) { minimumActivity = 1 << (ui.minimumActivitySelector->currentIndex() - 1); config->setMinimumActivity(minimumActivity); - if(_newBufferViews.contains(config)) { - QList bufferIds; - if(config->addNewBuffersAutomatically()) { - if(config->sortAlphabetically()) - bufferIds = Client::networkModel()->allBufferIdsSorted(); - else - bufferIds = Client::networkModel()->allBufferIds(); - } + QList bufferIds = fromVariantList(config->property("OriginalBufferList").toList()); + if(config->sortAlphabetically()) + Client::networkModel()->sortBufferIds(bufferIds); + + if(!_newBufferViews.contains(config) || config->addNewBuffersAutomatically()) config->initSetBufferList(bufferIds); - } } void BufferViewSettingsPage::widgetHasChanged() { @@ -487,10 +487,11 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config) connect(config, SIGNAL(bufferAdded(const BufferId &, int)), changedConfig, SLOT(addBuffer(const BufferId &, int))); connect(config, SIGNAL(bufferMoved(const BufferId &, int)), changedConfig, SLOT(moveBuffer(const BufferId &, int))); connect(config, SIGNAL(bufferRemoved(const BufferId &)), changedConfig, SLOT(removeBuffer(const BufferId &))); - connect(config, SIGNAL(addBufferRequested(const BufferId &, int)), changedConfig, SLOT(addBuffer(const BufferId &, int))); - connect(config, SIGNAL(moveBufferRequested(const BufferId &, int)), changedConfig, SLOT(moveBuffer(const BufferId &, int))); - connect(config, SIGNAL(removeBufferRequested(const BufferId &)), changedConfig, SLOT(removeBuffer(const BufferId &))); +// connect(config, SIGNAL(addBufferRequested(const BufferId &, int)), changedConfig, SLOT(addBuffer(const BufferId &, int))); +// connect(config, SIGNAL(moveBufferRequested(const BufferId &, int)), changedConfig, SLOT(moveBuffer(const BufferId &, int))); +// connect(config, SIGNAL(removeBufferRequested(const BufferId &)), changedConfig, SLOT(removeBuffer(const BufferId &))); + changedConfig->setProperty("OriginalBufferList", toVariantList(config->bufferList())); // if this is the currently displayed view we have to change the config of the preview filter BufferViewFilter *filter = qobject_cast(ui.bufferViewPreview->model()); if(filter && filter->config() == config) @@ -516,7 +517,7 @@ BufferViewEditDlg::BufferViewEditDlg(const QString &old, const QStringList &exis if(old.isEmpty()) { // new buffer - setWindowTitle(tr("Add Buffer View")); + setWindowTitle(tr("Add Chat List")); on_bufferViewEdit_textChanged(""); // disable ok button } else { ui.bufferViewEdit->setText(old);