diff -r 68443f5be176 -r 44679e468ba9 src/libraries.h --- a/src/libraries.h Sat Oct 05 23:47:03 2019 +0300 +++ b/src/libraries.h Sun Nov 03 12:17:41 2019 +0200 @@ -15,9 +15,12 @@ } role; QDir path; static QString libraryRoleName(const Role role); + static bool isValidRole(const Role role); + constexpr static const Role allRoles[] = {OfficialLibrary, UnofficialLibrary, WorkingLibrary}; }; Q_DECLARE_METATYPE(Library) +Q_DECLARE_METATYPE(Library::Role) QDataStream &operator<<(QDataStream&, const Library&); QDataStream &operator>>(QDataStream&, Library&); @@ -34,12 +37,14 @@ QVector::const_iterator end() const; QFileInfo findFile(QString fileName) const; void addLibrary(const Library& library); + void removeLibrary(const int libraryIndex); const Library& library(int libraryIndex) const; void setLibraryPath(int libraryIndex, const QDir& path); void setLibraryRole(int libraryIndex, const Library::Role role); void restoreFromSettings(QSettings* settings); void storeToSettings(QSettings* settings); int count() const; + void moveLibrary(const int libraryFromIndex, const int libraryToIndex); // Definitions for QAbstractTableModel Qt::ItemFlags flags(const QModelIndex& index) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; @@ -47,8 +52,9 @@ int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; - int rowCount(const QModelIndex &parent = QModelIndex()) const override; - int columnCount(const QModelIndex &parent = QModelIndex()) const override; + int rowCount(const QModelIndex&) const override; + int columnCount(const QModelIndex&) const override; + bool isValidIndex(const int libraryIndex) const; private: enum Column { @@ -56,6 +62,5 @@ PathColumn }; void signalLibraryChange(int library); - bool isValidIndex(int libraryIndex); Libraries libraries; };