• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

fileselectionmodel.h

Go to the documentation of this file.
00001 #ifndef FILESELECTIONMODEL_H
00002 #define FILESELECTIONMODEL_H
00003 
00004 #define DEBUG_PRELOADFILES
00005 //#undef DEBUG_PRELOADFILES
00006 
00007 #include "database.h"
00008 
00020 class FilesUploadedModel : public SqlQueryModel {
00021 public:
00022     FilesUploadedModel(QObject *parent = 0);
00023 };
00024 
00025 #include <QAbstractListModel>
00026 #include <QVariant>
00027 #include <QFileDialog>
00028 #include <QModelIndexList>
00029 #include <QDateTime>
00030 
00034 class FileSelectionModel : public QAbstractListModel {
00035     Q_OBJECT
00036 public:
00037     enum FileRoles{
00038         FileName = Qt::UserRole + 400,
00039         FilePath,
00040         FileModDate
00041     };
00042 
00043     FileSelectionModel(QObject *parent = 0);
00044     int rowCount (const QModelIndex & parent = QModelIndex()) const;
00045     QVariant data (const QModelIndex & index, int role = Qt::DisplayRole) const;
00046     Qt::ItemFlags flags ( const QModelIndex & index ) const;
00047     FilesUploadedModel *uploadedFilesModel();
00048 
00049 private:
00050     static bool isGreaterThan(QModelIndex &i, QModelIndex &j);
00051 
00052 public slots:
00053     void deleteFiles(const QModelIndexList & indexes);
00054     void addFiles(QWidget *parent = 0);
00055     void addToFailedUploadList(const QModelIndex & index);
00056 
00057 private:
00058     QStringList fileList;
00059     QStringList failedToUploadFileList;
00060     FilesUploadedModel *uploadedFileModel;
00061 };
00062 
00063 #include <QStyledItemDelegate>
00064 
00070 class FileSelectionDelegate : public QStyledItemDelegate {
00071     Q_OBJECT
00072 public:
00073     FileSelectionDelegate(QObject *parent = 0) : QStyledItemDelegate(parent){};
00074 };
00075 
00076 #include <QListView>
00077 #include <QAction>
00078 #include <QMenu>
00079 #include <QContextMenuEvent>
00080 #include <QShortcut>
00081 #include <QProcess>
00082 
00086 class FileSelectionView : public QListView {
00087     Q_OBJECT
00088 public:
00089     FileSelectionView(QWidget *parent = 0);
00090     void setModel(FileSelectionModel *model);
00091     FileSelectionModel *model();
00092     void setAllowDeletions(bool flag);
00093     QSize sizeHint() const;
00094 
00095 signals:
00096     void removeItems(QModelIndexList);
00097 
00098 private:
00099     void contextMenuEvent(QContextMenuEvent * event);
00100 
00101 private slots:
00102     void removeSelectedItems();
00103     void onDoubleClick(const QModelIndex &index);
00104 
00105 private:
00106     QMenu *menu;
00107     QAction *removeFilesAction;
00108     bool m_allowDeletions;
00109 };
00110 
00111 #endif // FILESELECTIONMODEL_H

Generated on Tue Aug 24 2010 15:58:55 for Smartlet by  doxygen 1.7.1