/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef _SELECTIONMODELSYNCHRONIZER_H_
-#define _SELECTIONMODELSYNCHRONIZER_H_
+#pragma once
+
+#include "client-export.h"
-#include <QObject>
#include <QItemSelectionModel>
+#include <QObject>
class QAbstractItemModel;
-class SelectionModelSynchronizer : public QObject
+class CLIENT_EXPORT SelectionModelSynchronizer : public QObject
{
Q_OBJECT
public:
- SelectionModelSynchronizer(QAbstractItemModel *parent = 0);
+ SelectionModelSynchronizer(QAbstractItemModel* parent = nullptr);
- void synchronizeSelectionModel(QItemSelectionModel *selectionModel);
- void removeSelectionModel(QItemSelectionModel *selectionModel);
+ void synchronizeSelectionModel(QItemSelectionModel* selectionModel);
+ void removeSelectionModel(QItemSelectionModel* selectionModel);
- inline QAbstractItemModel *model() { return _model; }
- inline QItemSelectionModel *selectionModel() const { return const_cast<QItemSelectionModel *>(&_selectionModel); }
+ inline QAbstractItemModel* model() { return _model; }
+ inline QItemSelectionModel* selectionModel() const { return const_cast<QItemSelectionModel*>(&_selectionModel); }
inline QModelIndex currentIndex() const { return _selectionModel.currentIndex(); }
inline QItemSelection currentSelection() const { return _selectionModel.selection(); }
private slots:
- void syncedCurrentChanged(const QModelIndex ¤t, const QModelIndex &previous);
- void syncedSelectionChanged(const QItemSelection &selected, const QItemSelection &previous);
+ void syncedCurrentChanged(const QModelIndex& current, const QModelIndex& previous);
+ void syncedSelectionChanged(const QItemSelection& selected, const QItemSelection& previous);
- void setCurrentIndex(const QModelIndex &index);
- void setCurrentSelection(const QItemSelection &selection);
+ void setCurrentIndex(const QModelIndex& index);
+ void setCurrentSelection(const QItemSelection& selection);
- void currentChanged(const QModelIndex ¤t, const QModelIndex &previous);
- void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+ void currentChanged(const QModelIndex& current, const QModelIndex& previous);
+ void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
- void selectionModelDestroyed(QObject *object);
+ void selectionModelDestroyed(QObject* object);
private:
- QAbstractItemModel *_model;
+ QAbstractItemModel* _model;
QItemSelectionModel _selectionModel;
- bool _changeCurrentEnabled;
- bool _changeSelectionEnabled;
+ bool _changeCurrentEnabled{true};
+ bool _changeSelectionEnabled{true};
- bool checkBaseModel(QItemSelectionModel *model);
- QModelIndex mapFromSource(const QModelIndex &sourceIndex, const QItemSelectionModel *selectionModel);
- QItemSelection mapSelectionFromSource(const QItemSelection &sourceSelection, const QItemSelectionModel *selectionModel);
- QModelIndex mapToSource(const QModelIndex &index, QItemSelectionModel *selectionModel);
- QItemSelection mapSelectionToSource(const QItemSelection &selection, QItemSelectionModel *selectionModel);
+ bool checkBaseModel(QItemSelectionModel* model);
+ QModelIndex mapFromSource(const QModelIndex& sourceIndex, const QItemSelectionModel* selectionModel);
+ QItemSelection mapSelectionFromSource(const QItemSelection& sourceSelection, const QItemSelectionModel* selectionModel);
+ QModelIndex mapToSource(const QModelIndex& index, QItemSelectionModel* selectionModel);
+ QItemSelection mapSelectionToSource(const QItemSelection& selection, QItemSelectionModel* selectionModel);
- QSet<QItemSelectionModel *> _selectionModels;
+ QSet<QItemSelectionModel*> _selectionModels;
};
-
-
-#endif