X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fnicklistwidget.cpp;h=a47e5092976b3802546174768c33f7fccd1e5859;hp=d5af971b480e968c920204b5d6fdc72492642831;hb=20745bd0cbae035b84913127dfec9e8433d1282d;hpb=b65b9f7615165e8700a44d59b7275a55558dd45b diff --git a/src/qtui/nicklistwidget.cpp b/src/qtui/nicklistwidget.cpp index d5af971b..a47e5092 100644 --- a/src/qtui/nicklistwidget.cpp +++ b/src/qtui/nicklistwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * 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 * @@ -41,11 +41,11 @@ NickListWidget::NickListWidget(QWidget *parent) QDockWidget *NickListWidget::dock() const { - QDockWidget *dock = qobject_cast(parent()); + auto *dock = qobject_cast(parent()); if (dock) return dock; else - return 0; + return nullptr; } @@ -58,7 +58,7 @@ void NickListWidget::hideEvent(QHideEvent *event) void NickListWidget::showEvent(QShowEvent *event) { - NickView *view = qobject_cast(ui.stackedWidget->currentWidget()); + auto *view = qobject_cast(ui.stackedWidget->currentWidget()); if (view) emit nickSelectionChanged(view->selectedIndexes()); @@ -84,6 +84,19 @@ void NickListWidget::showWidget(bool visible) } } +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) { @@ -122,7 +135,7 @@ void NickListWidget::currentChanged(const QModelIndex ¤t, const QModelInde } 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)); @@ -137,7 +150,7 @@ void NickListWidget::currentChanged(const QModelIndex ¤t, const QModelInde void NickListWidget::nickSelectionChanged() { - NickView *view = qobject_cast(sender()); + auto *view = qobject_cast(sender()); Q_ASSERT(view); if (view != ui.stackedWidget->currentWidget()) { qDebug() << "Nick selection of hidden view changed!"; @@ -161,9 +174,9 @@ void NickListWidget::rowsAboutToBeRemoved(const QModelIndex &parent, int start, iter = nickViews.erase(iter); ui.stackedWidget->removeWidget(nickView); QAbstractItemModel *model = nickView->model(); - nickView->setModel(0); - if (QSortFilterProxyModel *filter = qobject_cast(model)) - filter->setSourceModel(0); + nickView->setModel(nullptr); + if (auto *filter = qobject_cast(model)) + filter->setSourceModel(nullptr); model->deleteLater(); nickView->deleteLater(); } @@ -190,9 +203,9 @@ void NickListWidget::removeBuffer(BufferId bufferId) NickView *view = nickViews.take(bufferId); ui.stackedWidget->removeWidget(view); QAbstractItemModel *model = view->model(); - view->setModel(0); - if (QSortFilterProxyModel *filter = qobject_cast(model)) - filter->setSourceModel(0); + view->setModel(nullptr); + if (auto *filter = qobject_cast(model)) + filter->setSourceModel(nullptr); model->deleteLater(); view->deleteLater(); } @@ -202,7 +215,7 @@ QSize NickListWidget::sizeHint() const { QWidget *currentWidget = ui.stackedWidget->currentWidget(); if (!currentWidget || currentWidget == ui.emptyPage) - return QSize(100, height()); + return {100, height()}; else return currentWidget->sizeHint(); } @@ -228,6 +241,14 @@ NickListDock::NickListDock(const QString &title, QWidget *parent) // } } +void NickListDock::setLocked(bool locked) { + if (locked) { + setFeatures(nullptr); + } + else { + setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + } +} // NickListDock::~NickListDock() { // QtUiSettings().setValue("ShowNickList", toggleViewAction()->isChecked());