Simply an container model for the selected files used by the FileUploadWizard. More...
#include <fileselectionmodel.h>
Public Types | |
enum | FileRoles { FileName = Qt::UserRole + 400, FilePath, FileModDate } |
Public Slots | |
void | deleteFiles (const QModelIndexList &indexes) |
void | addFiles (QWidget *parent=0) |
void | addToFailedUploadList (const QModelIndex &index) |
Public Member Functions | |
FileSelectionModel (QObject *parent=0) | |
int | rowCount (const QModelIndex &parent=QModelIndex()) const |
QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const |
Qt::ItemFlags | flags (const QModelIndex &index) const |
FilesUploadedModel * | uploadedFilesModel () |
Simply an container model for the selected files used by the FileUploadWizard.
{ FileName = Qt::UserRole + 400, FilePath, FileModDate };
FileSelectionModel::FileSelectionModel | ( | QObject * | parent = 0 |
) |
: QAbstractListModel(parent) { #ifdef DEBUG_PRELOADFILES // Check to see if flag is defined fileList << "U:/projects/smartlet/logger/samples/gesloten kas_skw30sgk_2009_04_02_09_57_01.dat" << "U:/projects/smartlet/logger/samples/CR1000_tomnl10s.dat" << "U:/projects/smartlet/logger/Smartkas/USB/Smartkas Hoogstraten 2009/Data (dat.bestanden)/Meerle gesloten kas_pchGK30s_2009_07_29_12_09_57.dat"; #endif // DEBUG_PRELOADFILES uploadedFileModel = new FilesUploadedModel(this); };
void FileSelectionModel::addFiles | ( | QWidget * | parent = 0 |
) | [slot] |
{ QAbstractListModel::beginResetModel(); QStringList fileNames = QFileDialog::getOpenFileNames(parent, "Select files to upload to the database", "U:/projects/smartlet/logger/samples"); fileList << fileNames; fileList.removeDuplicates(); QAbstractListModel::endResetModel(); }
void FileSelectionModel::addToFailedUploadList | ( | const QModelIndex & | index | ) | [slot] |
{ failedToUploadFileList.append(index.data(FileSelectionModel::FilePath).toString()); }
QVariant FileSelectionModel::data | ( | const QModelIndex & | index, | |
int | role = Qt::DisplayRole | |||
) | const |
{ QFileInfo info(fileList.at(index.row())); if (role==FileSelectionModel::FileName || role==Qt::DisplayRole) return QVariant::fromValue(info.fileName()); if (role==FileSelectionModel::FilePath || role==Qt::ToolTipRole) return QVariant::fromValue(info.filePath()); if (role==FileSelectionModel::FileModDate) return QVariant::fromValue(info.lastModified()); if (role==Qt::BackgroundRole){ if (failedToUploadFileList.contains(info.filePath())) return QVariant::fromValue(QBrush(Qt::red)); QMap<int, QString> fileUniqueId; //combination of filename and modificationDate fileUniqueId.insert(1, info.fileName()); fileUniqueId.insert(2, info.lastModified().toString(Qt::ISODate)); if (uploadedFileModel->contains(fileUniqueId)) return QVariant::fromValue(QBrush(Qt::yellow)); else return QVariant(); } else return QVariant(); }
void FileSelectionModel::deleteFiles | ( | const QModelIndexList & | indexes | ) | [slot] |
{ QAbstractListModel::beginResetModel(); QModelIndexList sortedIndexes = indexes; qSort(sortedIndexes.begin(), sortedIndexes.end(), isGreaterThan); if (indexes.isEmpty()) return; for (int i = 0; i < sortedIndexes.size(); i++){ fileList.removeAt(sortedIndexes[i].row()); } QAbstractListModel::endResetModel(); }
Qt::ItemFlags FileSelectionModel::flags | ( | const QModelIndex & | index | ) | const |
{ return QAbstractListModel::flags(index);// | Qt::ItemIsEditable; }
int FileSelectionModel::rowCount | ( | const QModelIndex & | parent = QModelIndex() |
) | const |
{
return fileList.count();
}
FilesUploadedModel * FileSelectionModel::uploadedFilesModel | ( | ) |
{
return uploadedFileModel;
}