diff options
Diffstat (limited to 'newpicsdialog.h')
| -rw-r--r-- | newpicsdialog.h | 77 | 
1 files changed, 77 insertions, 0 deletions
| diff --git a/newpicsdialog.h b/newpicsdialog.h new file mode 100644 index 0000000..de4275a --- /dev/null +++ b/newpicsdialog.h @@ -0,0 +1,77 @@ +/* +  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 the Free Software Foundation; either version +  2 of the License, or (at your option) any later version. +*/ + +#ifndef NEWPICSDIALOG_H +#define NEWPICSDIALOG_H + +#include <QWidget> +#include <QSqlDatabase> + +#include "smtreemodel.h" + +class QTabWidget; +class QSqlDatabase; +class QSqlQuery; +class QTreeView; +class NewPicFilesModel; +class QSortFilterProxyModel; +class QPushButton; + +struct FileData; + +class NewPicsDialog : public QWidget { +    Q_OBJECT +    public: +        explicit NewPicsDialog(QWidget *parent = 0); + +    public slots: +        void addFiles(); +        void removeFiles(); + +    private: +        QTabWidget *mTab; +        QWidget *mFilesWidget; +        QTreeView *mFilesV; +        NewPicFilesModel *mFilesModel; +        QSortFilterProxyModel *mFilesProxy; +        QPushButton *mAddFiles; +        QPushButton *mRemoveFiles; +}; + +class NewPicFilesModel : public SmTreeModel { +    Q_OBJECT +    public: +        enum Roles { FileNameRole = Qt::UserRole + 1, ValidRole = Qt::UserRole + 2, Md5SumRole = Qt::UserRole + 3, MimeTypeRole = Qt::UserRole + 4, FullPathRole = Qt::UserRole + 5 }; +        enum Fields { FileName = 0, Valid = 1, Md5Sum = 2, MimeType = 3, FullPath = 4 }; +        enum { NumFields = 5 }; +        explicit NewPicFilesModel(const QStringList &header, QObject *parent = 0); +        ~NewPicFilesModel(); + +        //data +        Qt::ItemFlags flags(const QModelIndex &index) const; +        QVariant data(const QModelIndex &index, int role) const; +        bool setData(const QModelIndex &index, const QVariant &value, int role); +        void setFiles(const QStringList &paths); +        void addFile(const QString &path); +        void removeFile(const QModelIndex &idx); +        QList<FileData> validFiles() const; + +    private: +        bool haveMd5(const QString &md5) const; +        QSqlDatabase mDb; +        QSqlQuery *mMd5Query; +}; + +struct FileData { +    QString fileName; +    bool valid; +    QString md5sum; +    QString mimeType; +    QString fullPath; +}; + +#endif // NEWPICSDIALOG_H | 
