diff options
author | Arno <am@disconnect.de> | 2012-03-08 10:19:16 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-03-08 10:19:16 +0100 |
commit | 8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2 (patch) | |
tree | 0454478e9d345e7a5f07ea238c098293a9920524 /pictureswidget.cpp | |
parent | ea30d012b7777a2aea1c5e957a7d7566eebef391 (diff) | |
download | SheMov-8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2.tar.gz SheMov-8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2.tar.bz2 SheMov-8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2.zip |
Make PictureViewer useful
-Implement add and replace files
-use QList<QVariant> (typedef'd) for shoveling data around
-more code shuffling
-new artwork
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r-- | pictureswidget.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/pictureswidget.cpp b/pictureswidget.cpp index 2d56571..ac44229 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -46,6 +46,7 @@ PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleB //misc mEditDialog = new MappingEditDialog(this); mPicViewer = new PictureViewer2(this); + mPictureView->setPV(mPicViewer); //put it all togehter QHBoxLayout *mainLayout = new QHBoxLayout; @@ -91,10 +92,12 @@ void PicturesWidget::constructWindowTitle(){ } void PicturesWidget::showInPicViewer(const QModelIndex &idx){ - if(!idx.isValid()){ + QModelIndex real = mPictureView->proxy()->mapToSource(idx); + if(!real.isValid()){ return; } - mPicViewer->setFile(idx.data(PicFilesModel::FullPathRole).toString()); + PicData pData = mPictureView->filesModel()->dataList(real); + mPicViewer->setFile(pData); if(mPicViewerA){ mPicViewerA->setChecked(true); } @@ -157,6 +160,16 @@ void PictureView::refresh(){ mModel->populate(); } +void PictureView::setPVData(int replace){ + QModelIndexList sel = selectionModel()->selectedRows(); + PicDataList pics; + foreach(QModelIndex i, sel){ + QModelIndex real = mProxy->mapToSource(i); + pics << mModel->dataList(real); + } + mPV->addFiles(pics, replace); +} + void PictureView::hideEvent(QHideEvent *){ QByteArray pvHeader = header()->saveState(); QSettings s; @@ -300,6 +313,18 @@ QVariant PicFilesModel::data(const QModelIndex &index, int role) const { return SmTreeModel::data(index, role); } +QList<QVariant> PicFilesModel::dataList(const QModelIndex &idx) const{ + QList<QVariant> retval; + if(!idx.isValid()){ + return retval; + } + SmTreeItem *item = itemAt(idx); + for(int i = 0; i < NumFields; ++i){ + retval << item->data(i); + } + return retval; +} + void PicFilesModel::removeFiles(const QList<QPersistentModelIndex> &files){ foreach(QPersistentModelIndex pi, files){ mDeleteFileQ->bindValue(":id", pi.data(IdRole)); |