/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
QDockWidget *NickListWidget::dock() const
{
- QDockWidget *dock = qobject_cast<QDockWidget *>(parent());
+ auto *dock = qobject_cast<QDockWidget *>(parent());
if (dock)
return dock;
else
- return 0;
+ return nullptr;
}
void NickListWidget::showEvent(QShowEvent *event)
{
- NickView *view = qobject_cast<NickView *>(ui.stackedWidget->currentWidget());
+ auto *view = qobject_cast<NickView *>(ui.stackedWidget->currentWidget());
if (view)
emit nickSelectionChanged(view->selectedIndexes());
}
}
+void NickListWidget::setVisible(bool visible)
+{
+ QWidget::setVisible(visible);
+ QDockWidget *dock_ = dock();
+ if (!dock_)
+ return;
+
+ if (visible)
+ dock_->show();
+ else
+ dock_->close();
+}
+
void NickListWidget::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
{
}
else {
view = new NickView(this);
- NickViewFilter *filter = new NickViewFilter(newBufferId, Client::networkModel());
+ auto *filter = new NickViewFilter(newBufferId, Client::networkModel());
view->setModel(filter);
QModelIndex source_current = Client::bufferModel()->mapToSource(current);
view->setRootIndex(filter->mapFromSource(source_current));
nickViews[newBufferId] = view;
ui.stackedWidget->addWidget(view);
ui.stackedWidget->setCurrentWidget(view);
- connect(view, SIGNAL(selectionUpdated()), SLOT(nickSelectionChanged()));
+ connect(view, &NickView::selectionUpdated, this, &NickListWidget::onNickSelectionChanged);
}
emit nickSelectionChanged(view->selectedIndexes());
}
-void NickListWidget::nickSelectionChanged()
+void NickListWidget::onNickSelectionChanged()
{
- NickView *view = qobject_cast<NickView *>(sender());
+ auto *view = qobject_cast<NickView *>(sender());
Q_ASSERT(view);
if (view != ui.stackedWidget->currentWidget()) {
qDebug() << "Nick selection of hidden view changed!";
iter = nickViews.erase(iter);
ui.stackedWidget->removeWidget(nickView);
QAbstractItemModel *model = nickView->model();
- nickView->setModel(0);
- if (QSortFilterProxyModel *filter = qobject_cast<QSortFilterProxyModel *>(model))
- filter->setSourceModel(0);
+ nickView->setModel(nullptr);
+ if (auto *filter = qobject_cast<QSortFilterProxyModel *>(model))
+ filter->setSourceModel(nullptr);
model->deleteLater();
nickView->deleteLater();
}
NickView *view = nickViews.take(bufferId);
ui.stackedWidget->removeWidget(view);
QAbstractItemModel *model = view->model();
- view->setModel(0);
- if (QSortFilterProxyModel *filter = qobject_cast<QSortFilterProxyModel *>(model))
- filter->setSourceModel(0);
+ view->setModel(nullptr);
+ if (auto *filter = qobject_cast<QSortFilterProxyModel *>(model))
+ filter->setSourceModel(nullptr);
model->deleteLater();
view->deleteLater();
}
{
QWidget *currentWidget = ui.stackedWidget->currentWidget();
if (!currentWidget || currentWidget == ui.emptyPage)
- return QSize(100, height());
+ return {100, height()};
else
return currentWidget->sizeHint();
}
// }
}
+void NickListDock::setLocked(bool locked) {
+ if (locked) {
+ setFeatures(nullptr);
+ }
+ else {
+ setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ }
+}
// NickListDock::~NickListDock() {
// QtUiSettings().setValue("ShowNickList", toggleViewAction()->isChecked());