42 lines
922 B
C++
42 lines
922 B
C++
#ifndef LIBRARYDIRECTORYMODEL_H
|
|
#define LIBRARYDIRECTORYMODEL_H
|
|
|
|
#include <QStandardItemModel>
|
|
#include <QIcon>
|
|
|
|
#include <boost/shared_ptr.hpp>
|
|
|
|
#include "directory.h"
|
|
|
|
class LibraryBackend;
|
|
|
|
class LibraryDirectoryModel : public QStandardItemModel {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
LibraryDirectoryModel(QObject* parent = 0);
|
|
|
|
void SetBackend(boost::shared_ptr<LibraryBackend> backend);
|
|
bool IsBackendReady() const { return backend_; }
|
|
|
|
// To be called by GUIs
|
|
void AddDirectory(const QString& path);
|
|
void RemoveDirectory(const QModelIndex& index);
|
|
|
|
signals:
|
|
void BackendReady();
|
|
|
|
private slots:
|
|
// To be called by the backend
|
|
void DirectoriesDiscovered(const DirectoryList& directories);
|
|
void DirectoriesDeleted(const DirectoryList& directories);
|
|
|
|
private:
|
|
static const int kIdRole = Qt::UserRole + 1;
|
|
|
|
QIcon dir_icon_;
|
|
boost::shared_ptr<LibraryBackend> backend_;
|
|
};
|
|
|
|
#endif // LIBRARYDIRECTORYMODEL_H
|