///////////////////////////////////////////////////////////////////////////////
// Simple x264 Launcher
-// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#pragma once
#include "thread_encode.h"
+#include "model_logFile.h"
#include "QAbstractItemModel"
#include <QUuid>
#include <QList>
#include <QMap>
+class PreferencesModel;
+
class JobListModel : public QAbstractItemModel
{
Q_OBJECT
public:
- JobListModel(void);
+ JobListModel(PreferencesModel *preferences);
~JobListModel(void);
virtual int columnCount(const QModelIndex &parent) const;
virtual QModelIndex parent (const QModelIndex &index) const;
virtual QVariant data(const QModelIndex &index, int role) const;
- bool JobListModel::insertJob(EncodeThread *thread);
+ QModelIndex insertJob(EncodeThread *thread);
+ bool startJob(const QModelIndex &index);
+ bool pauseJob(const QModelIndex &index);
+ bool resumeJob(const QModelIndex &index);
+ bool abortJob(const QModelIndex &index);
+ bool deleteJob(const QModelIndex &index);
+ bool moveJob(const QModelIndex &index, const int &direction);
+ LogFileModel *getLogFile(const QModelIndex &index);
+ const QString &getJobSourceFile(const QModelIndex &index);
+ const QString &getJobOutputFile(const QModelIndex &index);
+ JobStatus getJobStatus(const QModelIndex &index);
+ unsigned int getJobProgress(const QModelIndex &index);
+ const OptionsModel *getJobOptions(const QModelIndex &index);
+ QModelIndex getJobIndexById(const QUuid &id);
+
+ size_t saveQueuedJobs(void);
+ size_t loadQueuedJobs(const SysinfoModel *sysinfo);
+ void clearQueuedJobs(void);
+
+ typedef enum
+ {
+ MOVE_UP = +1,
+ MOVE_DOWN = -1
+ }
+ move_t;
protected:
QList<QUuid> m_jobs;
+ QMap<QUuid, QString> m_name;
QMap<QUuid, EncodeThread*> m_threads;
- QMap<QUuid, EncodeThread::JobStatus> m_status;
+ QMap<QUuid, JobStatus> m_status;
QMap<QUuid, unsigned int> m_progress;
+ QMap<QUuid, LogFileModel*> m_logFile;
+ QMap<QUuid, QString> m_details;
+ PreferencesModel *m_preferences;
public slots:
- void updateStatus(const QUuid &jobId, EncodeThread::JobStatus newStatus);
+ void updateStatus(const QUuid &jobId, JobStatus newStatus);
void updateProgress(const QUuid &jobId, unsigned int newProgress);
- void addLogMessage(const QUuid &jobId, const QString &text);
+ void updateDetails(const QUuid &jobId, const QString &details);
};