summaryrefslogtreecommitdiffstats
path: root/pictureswidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-03-08 10:19:16 +0100
committerArno <am@disconnect.de>2012-03-08 10:19:16 +0100
commit8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2 (patch)
tree0454478e9d345e7a5f07ea238c098293a9920524 /pictureswidget.cpp
parentea30d012b7777a2aea1c5e957a7d7566eebef391 (diff)
downloadSheMov-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.cpp29
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));