BufferView::BufferView(QWidget *parent)
: TreeViewTouch(parent)
{
- connect(this, SIGNAL(collapsed(const QModelIndex &)), SLOT(storeExpandedState(const QModelIndex &)));
- connect(this, SIGNAL(expanded(const QModelIndex &)), SLOT(storeExpandedState(const QModelIndex &)));
+ connect(this, &QTreeView::collapsed, this, &BufferView::storeExpandedState);
+ connect(this, &QTreeView::expanded, this, &BufferView::storeExpandedState);
setSelectionMode(QAbstractItemView::ExtendedSelection);
QAbstractItemDelegate *oldDelegate = itemDelegate();
- BufferViewDelegate *tristateDelegate = new BufferViewDelegate(this);
+ auto *tristateDelegate = new BufferViewDelegate(this);
setItemDelegate(tristateDelegate);
delete oldDelegate;
}
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- // breaks with Qt 4.8
- if (QString("4.8.0") > qVersion()) // FIXME breaks with Qt versions >= 4.10!
- setAnimated(true);
+ setAnimated(true);
// FIXME This is to workaround bug #663
setUniformRowHeights(true);
#if defined Q_OS_MACOS || defined Q_OS_WIN
// afaik this is better on Mac and Windows
- disconnect(this, SIGNAL(activated(QModelIndex)), this, SLOT(joinChannel(QModelIndex)));
- connect(this, SIGNAL(activated(QModelIndex)), SLOT(joinChannel(QModelIndex)));
+ connect(this, &QAbstractItemView::activated, this, &BufferView::joinChannel, Qt::UniqueConnection);
#else
- disconnect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(joinChannel(QModelIndex)));
- connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(joinChannel(QModelIndex)));
+ connect(this, &QAbstractItemView::doubleClicked, this, &BufferView::joinChannel, Qt::UniqueConnection);
#endif
}
showSection->setCheckable(true);
showSection->setChecked(!isColumnHidden(i));
showSection->setProperty("column", i);
- connect(showSection, SIGNAL(toggled(bool)), this, SLOT(toggleHeader(bool)));
+ connect(showSection, &QAction::toggled, this, &BufferView::toggleHeader);
header()->addAction(showSection);
}
- connect(model, SIGNAL(layoutChanged()), this, SLOT(on_layoutChanged()));
+ connect(model, &QAbstractItemModel::layoutChanged, this, &BufferView::on_layoutChanged);
// Make sure collapsation is correct after setting a model
// This might not be needed here, only in BufferView::setFilteredModel(). If issues arise, just
void BufferView::setFilteredModel(QAbstractItemModel *model_, BufferViewConfig *config)
{
- BufferViewFilter *filter = qobject_cast<BufferViewFilter *>(model());
+ auto *filter = qobject_cast<BufferViewFilter *>(model());
if (filter) {
filter->setConfig(config);
setConfig(config);
}
if (model()) {
- disconnect(this, 0, model(), 0);
- disconnect(model(), 0, this, 0);
+ disconnect(this, nullptr, model(), nullptr);
+ disconnect(model(), nullptr, this, nullptr);
}
if (!model_) {
setModel(model_);
}
else {
- BufferViewFilter *filter = new BufferViewFilter(model_, config);
+ auto *filter = new BufferViewFilter(model_, config);
setModel(filter);
- connect(filter, SIGNAL(configChanged()), this, SLOT(on_configChanged()));
+ connect(filter, &BufferViewFilter::configChanged, this, &BufferView::on_configChanged);
}
setConfig(config);
}
return;
if (_config) {
- disconnect(_config, 0, this, 0);
+ disconnect(_config, nullptr, this, nullptr);
}
_config = config;
if (config) {
- connect(config, SIGNAL(networkIdSet(const NetworkId &)), this, SLOT(setRootIndexForNetworkId(const NetworkId &)));
+ connect(config, &BufferViewConfig::networkIdSet, this, &BufferView::setRootIndexForNetworkId);
setRootIndexForNetworkId(config->networkId());
}
else {
return TreeViewTouch::dropEvent(event);
// Confirm that the user really wants to merge the buffers before doing so
- int res = QMessageBox::question(0, tr("Merge buffers permanently?"),
+ int res = QMessageBox::question(nullptr, tr("Merge buffers permanently?"),
tr("Do you want to merge the buffer \"%1\" permanently into buffer \"%2\"?\n This cannot be reversed!").arg(Client::networkModel()->bufferName(bufferId2)).arg(Client::networkModel()->bufferName(bufferId1)),
QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
if (res == QMessageBox::Yes) {
storeExpandedState(networkIdx); // this call is needed to keep track of the isActive state
}
-#if QT_VERSION < 0x050000
-void BufferView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
-{
- TreeViewTouch::dataChanged(topLeft, bottomRight);
-#else
void BufferView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
TreeViewTouch::dataChanged(topLeft, bottomRight, roles);
-#endif
// determine how many items have been changed and if any of them is a networkitem
// which just swichted from active to inactive or vice versa
void BufferView::toggleHeader(bool checked)
{
- QAction *action = qobject_cast<QAction *>(sender());
+ auto *action = qobject_cast<QAction *>(sender());
header()->setSectionHidden((action->property("column")).toInt(), !checked);
}
indexList.removeAll(index);
indexList.prepend(index);
- GraphicalUi::contextMenuActionProvider()->addActions(contextMenu, indexList, this, "menuActionTriggered", (bool)config());
+ GraphicalUi::contextMenuActionProvider()->addActions(contextMenu, indexList, this, &BufferView::menuActionTriggered, (bool)config());
}
void BufferView::addFilterActions(QMenu *contextMenu, const QModelIndex &index)
{
- BufferViewFilter *filter = qobject_cast<BufferViewFilter *>(model());
+ auto *filter = qobject_cast<BufferViewFilter *>(model());
if (filter) {
QList<QAction *> filterActions = filter->actions(index);
if (!filterActions.isEmpty()) {
config()->requestRemoveBuffer(bufferId);
}
-void BufferView::filterTextChanged(QString filterString)
+void BufferView::filterTextChanged(const QString& filterString)
{
- BufferViewFilter *filter = qobject_cast<BufferViewFilter *>(model());
+ auto *filter = qobject_cast<BufferViewFilter *>(model());
if (!filter) {
return;
}
return TreeViewTouch::sizeHint();
if (model()->rowCount() == 0)
- return QSize(120, 50);
+ return {120, 50};
int columnSize = 0;
for (int i = 0; i < model()->columnCount(); i++) {
if (!isColumnHidden(i))
columnSize += sizeHintForColumn(i);
}
- return QSize(columnSize, 50);
+ return {columnSize, 50};
}
-void BufferView::changeHighlight(const BufferView::Direction direction)
+void BufferView::changeHighlight(BufferView::Direction direction)
{
// If for some weird reason we get a new delegate
- BufferViewDelegate *delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(m_currentHighlight));
+ auto delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight));
if (delegate) {
delegate->currentHighlight = QModelIndex();
}
- QModelIndex newIndex = m_currentHighlight;
+ QModelIndex newIndex = _currentHighlight;
if (!newIndex.isValid()) {
newIndex = model()->index(0, 0);
}
return;
}
- m_currentHighlight = newIndex;
+ _currentHighlight = newIndex;
- delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(m_currentHighlight));
+ delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight));
if (delegate) {
- delegate->currentHighlight = m_currentHighlight;
+ delegate->currentHighlight = _currentHighlight;
}
viewport()->update();
}
void BufferView::selectHighlighted()
{
- if (m_currentHighlight.isValid()) {
- selectionModel()->setCurrentIndex(m_currentHighlight, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
- selectionModel()->select(m_currentHighlight, QItemSelectionModel::ClearAndSelect);
+ if (_currentHighlight.isValid()) {
+ selectionModel()->setCurrentIndex(_currentHighlight, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+ selectionModel()->select(_currentHighlight, QItemSelectionModel::ClearAndSelect);
} else {
selectFirstBuffer();
}
void BufferView::clearHighlight()
{
// If for some weird reason we get a new delegate
- BufferViewDelegate *delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(m_currentHighlight));
+ auto delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight));
if (delegate) {
delegate->currentHighlight = QModelIndex();
}
- m_currentHighlight = QModelIndex();
+ _currentHighlight = QModelIndex();
viewport()->update();
}
// ****************************************
-// BufferViewDelgate
+// BufferViewDelegate
// ****************************************
class ColorsChangedEvent : public QEvent
{
if (!value.isValid())
return QStyledItemDelegate::editorEvent(event, model, option, index);
-#if QT_VERSION < 0x050000
- QStyleOptionViewItemV4 viewOpt(option);
-#else
QStyleOptionViewItem viewOpt(option);
-#endif
initStyleOption(&viewOpt, index);
QRect checkRect = viewOpt.widget->style()->subElementRect(QStyle::SE_ItemViewItemCheckIndicator, &viewOpt, viewOpt.widget);
- QMouseEvent *me = static_cast<QMouseEvent *>(event);
+ auto *me = static_cast<QMouseEvent *>(event);
if (me->button() != Qt::LeftButton || !checkRect.contains(me->pos()))
return QStyledItemDelegate::editorEvent(event, model, option, index);
- Qt::CheckState state = static_cast<Qt::CheckState>(value.toInt());
+ auto state = static_cast<Qt::CheckState>(value.toInt());
if (state == Qt::Unchecked)
state = Qt::PartiallyChecked;
else if (state == Qt::PartiallyChecked)
// ==============================
BufferViewDock::BufferViewDock(BufferViewConfig *config, QWidget *parent)
: QDockWidget(parent),
- _childWidget(0),
+ _childWidget(nullptr),
_widget(new QWidget(parent)),
_filterEdit(new QLineEdit(parent)),
_active(false),
setObjectName("BufferViewDock-" + QString::number(config->bufferViewId()));
toggleViewAction()->setData(config->bufferViewId());
setAllowedAreas(Qt::RightDockWidgetArea|Qt::LeftDockWidgetArea);
- connect(config, SIGNAL(bufferViewNameSet(const QString &)), this, SLOT(bufferViewRenamed(const QString &)));
- connect(config, SIGNAL(configChanged()), SLOT(configChanged()));
+ connect(config, &BufferViewConfig::bufferViewNameSet, this, &BufferViewDock::bufferViewRenamed);
+ connect(config, &BufferViewConfig::configChanged, this, &BufferViewDock::configChanged);
updateTitle();
_widget->setLayout(new QVBoxLayout);
_filterEdit->setFocusPolicy(Qt::ClickFocus);
_filterEdit->installEventFilter(this);
_filterEdit->setPlaceholderText(tr("Search..."));
- connect(_filterEdit, SIGNAL(returnPressed()), SLOT(onFilterReturnPressed()));
+ connect(_filterEdit, &QLineEdit::returnPressed, this, &BufferViewDock::onFilterReturnPressed);
_widget->layout()->addWidget(_filterEdit);
QDockWidget::setWidget(_widget);
void BufferViewDock::setLocked(bool locked) {
if (locked) {
- setFeatures(0);
+ setFeatures(nullptr);
}
else {
setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
{
if (_oldFocusItem) {
_oldFocusItem->setFocus();
- _oldFocusItem = 0;
+ _oldFocusItem = nullptr;
}
if (!config()->showSearch()) {
return true;
}
} else if (event->type() == QEvent::KeyRelease) {
- QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+ auto keyEvent = static_cast<QKeyEvent*>(event);
BufferView *view = bufferView();
if (!view) {
{
BufferView *view = bufferView();
if (!view)
- return 0;
+ return nullptr;
else
return view->config();
}
_widget->layout()->addWidget(newWidget);
_childWidget = newWidget;
- connect(_filterEdit, SIGNAL(textChanged(QString)), bufferView(), SLOT(filterTextChanged(QString)));
+ connect(_filterEdit, &QLineEdit::textChanged, bufferView(), &BufferView::filterTextChanged);
}
void BufferViewDock::activateFilter()