BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
: SettingsPage(tr("General"), tr("Buffer Views"), parent),
- _ignoreWidgetChanges(false)
+ _ignoreWidgetChanges(false),
+ _useBufferViewHint(false),
+ _bufferViewHint(0)
{
ui.setupUi(this);
ui.renameBufferView->setIcon(SmallIcon("edit-rename"));
_deleteBufferViews.clear();
+ _useBufferViewHint = false;
+
setChangedState(false);
}
void BufferViewSettingsPage::load() {
+ bool useBufferViewHint = _useBufferViewHint;
+ int bufferViewHint = _bufferViewHint;
reset();
if(!Client::bufferViewManager())
}
_ignoreWidgetChanges = false;
- ui.bufferViewList->setCurrentRow(0);
+
+ if(!useBufferViewHint || !selectBufferViewById(bufferViewHint))
+ ui.bufferViewList->setCurrentRow(0);
}
void BufferViewSettingsPage::save() {
setEnabled(false);
+
+ BufferViewConfig *currentConfig = bufferView(ui.bufferViewList->currentRow());
+ if(currentConfig) {
+ _useBufferViewHint = true;
+ _bufferViewHint = currentConfig->bufferViewId();
+ }
+
QVariantList newConfigs;
QVariantList deleteConfigs;
QVariantList changedConfigs;
}
void BufferViewSettingsPage::addBufferView(int bufferViewId) {
+ // we are informed about a new bufferview from Client::bufferViewManager()
Q_ASSERT(Client::bufferViewManager());
addBufferView(Client::bufferViewManager()->bufferViewConfig(bufferViewId));
+ selectBufferViewById(bufferViewId);
}
void BufferViewSettingsPage::bufferViewDeleted() {
}
}
+bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId) {
+ BufferViewConfig *config;
+ for(int i = 0; i < ui.bufferViewList->count(); i++) {
+ config = qobject_cast<BufferViewConfig *>(ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject *>());
+ if(config && config->bufferViewId() == bufferViewId) {
+ ui.bufferViewList->setCurrentRow(i);
+ return true;
+ }
+ }
+ return false;
+}
+
void BufferViewSettingsPage::updateBufferView() {
BufferViewConfig *config = qobject_cast<BufferViewConfig *>(sender());
if(!config)