summaryrefslogtreecommitdiffstats
path: root/logic/minecraft/WorldList.h
diff options
context:
space:
mode:
Diffstat (limited to 'logic/minecraft/WorldList.h')
-rw-r--r--logic/minecraft/WorldList.h144
1 files changed, 79 insertions, 65 deletions
diff --git a/logic/minecraft/WorldList.h b/logic/minecraft/WorldList.h
index 8d3d937c..7f119e81 100644
--- a/logic/minecraft/WorldList.h
+++ b/logic/minecraft/WorldList.h
@@ -21,79 +21,93 @@
#include <QAbstractListModel>
#include "minecraft/World.h"
+#include "multimc_logic_export.h"
+
class QFileSystemWatcher;
-class WorldList : public QAbstractListModel
+class MULTIMC_LOGIC_EXPORT WorldList : public QAbstractListModel
{
- Q_OBJECT
+ Q_OBJECT
public:
- enum Columns {
- NameColumn
- };
-
- WorldList ( const QString &dir );
-
- virtual QVariant data ( const QModelIndex &index, int role = Qt::DisplayRole ) const;
-
- virtual int rowCount ( const QModelIndex &parent = QModelIndex() ) const {
- return size();
- }
- ;
- virtual QVariant headerData ( int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole ) const;
- virtual int columnCount ( const QModelIndex &parent ) const;
-
- size_t size() const {
- return worlds.size();
- }
- ;
- bool empty() const {
- return size() == 0;
- }
- World &operator[] ( size_t index ) {
- return worlds[index];
- }
-
- /// Reloads the mod list and returns true if the list changed.
- virtual bool update();
-
- /// Deletes the mod at the given index.
- virtual bool deleteWorld ( int index );
-
- /// Deletes all the selected mods
- virtual bool deleteWorlds ( int first, int last );
-
- /// get data for drag action
- virtual QMimeData *mimeData ( const QModelIndexList &indexes ) const;
- /// get the supported mime types
- virtual QStringList mimeTypes() const;
-
- void startWatching();
- void stopWatching();
-
- virtual bool isValid();
-
- QDir dir() {
- return m_dir;
- }
-
- const QList<World> & allWorlds() {
- return worlds;
- }
+ enum Columns
+ {
+ NameColumn,
+ LastPlayedColumn
+ };
+
+ enum Roles
+ {
+ FolderRole = Qt::UserRole + 1,
+ SeedRole,
+ NameRole,
+ LastPlayedRole
+ };
+
+ WorldList(const QString &dir);
+
+ virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+
+ virtual int rowCount(const QModelIndex &parent = QModelIndex()) const
+ {
+ return size();
+ };
+ virtual QVariant headerData(int section, Qt::Orientation orientation,
+ int role = Qt::DisplayRole) const;
+ virtual int columnCount(const QModelIndex &parent) const;
+
+ size_t size() const
+ {
+ return worlds.size();
+ };
+ bool empty() const
+ {
+ return size() == 0;
+ }
+ World &operator[](size_t index)
+ {
+ return worlds[index];
+ }
+
+ /// Reloads the mod list and returns true if the list changed.
+ virtual bool update();
+
+ /// Deletes the mod at the given index.
+ virtual bool deleteWorld(int index);
+
+ /// Deletes all the selected mods
+ virtual bool deleteWorlds(int first, int last);
+
+ /// get data for drag action
+ virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
+ /// get the supported mime types
+ virtual QStringList mimeTypes() const;
+
+ void startWatching();
+ void stopWatching();
+
+ virtual bool isValid();
+
+ QDir dir() const
+ {
+ return m_dir;
+ }
+
+ const QList<World> &allWorlds() const
+ {
+ return worlds;
+ }
private:
- void internalSort ( QList<World> & what );
- private
-slots:
- void directoryChanged ( QString path );
+ void internalSort(QList<World> &what);
+private slots:
+ void directoryChanged(QString path);
signals:
- void changed();
+ void changed();
protected:
- QFileSystemWatcher *m_watcher;
- bool is_watching;
- QDir m_dir;
- QList<World> worlds;
+ QFileSystemWatcher *m_watcher;
+ bool is_watching;
+ QDir m_dir;
+ QList<World> worlds;
};
-