diff options
-rw-r--r-- | mappingtreemodel.cpp | 15 | ||||
-rw-r--r-- | mappingtreewidget.cpp | 23 | ||||
-rw-r--r-- | mappingtreewidget.h | 2 | ||||
-rw-r--r-- | pictureviewer2.cpp | 2 |
4 files changed, 41 insertions, 1 deletions
diff --git a/mappingtreemodel.cpp b/mappingtreemodel.cpp index 78e4802..2cf4445 100644 --- a/mappingtreemodel.cpp +++ b/mappingtreemodel.cpp @@ -484,7 +484,20 @@ void MappingTreeResultModel::removeItem(const QModelIndex &idx){ int row = curItem->row(); SmTreeItem *parent = curItem->parent(); parent->removeChild(row); - mCurrentData.removeAll(rmData); + int count = mCurrentData.removeAll(rmData); + int toRemove = -1; + if(count == 0){ + for(int i = 0; i < mCurrentData.count(); ++i){ + MappingData cur = mCurrentData.at(i); + if(cur.parents.contains(rmData.mappingId)){ + toRemove = i; + break; + } + } + } + if(toRemove > -1 && toRemove < mCurrentData.count()){ + mCurrentData.removeAt(toRemove); + } endResetModel(); } diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index 094703b..a0518d1 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -431,6 +431,29 @@ void MappingEditWidget::shiftFocusMappings(){ mMappingTree->mappingTreeView()->setFocus(); } +void MappingEditWidget::saveMappings(QString where){ + const QList<MappingData> mappingData = model()->mappingData(); + QByteArray saveVal; + QDataStream in(&saveVal, QIODevice::WriteOnly); + foreach(MappingData md, mappingData){ + in << md; + } + QSettings s; + s.setValue(where, saveVal); +} + +void MappingEditWidget::loadMappings(QString from){ + QSettings s; + QByteArray val = s.value(from).toByteArray(); + QDataStream out(&val, QIODevice::ReadOnly); + MappingData md; + while(!out.atEnd()){ + out >> md; + model()->addItem(md); + } + expandAllResults(); +} + MappingInputDialog::MappingInputDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ mOk = new QPushButton(tr("Ok")); connect(mOk, SIGNAL(clicked()), this, SLOT(accept())); diff --git a/mappingtreewidget.h b/mappingtreewidget.h index f23daa1..8ba066d 100644 --- a/mappingtreewidget.h +++ b/mappingtreewidget.h @@ -116,6 +116,8 @@ class MappingEditWidget : public QWidget { void expandAllResults(); void shiftFocusResult(); void shiftFocusMappings(); + void saveMappings(QString where); + void loadMappings(QString from); private: MappingTreeWidget *mMappingTree; diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 7536019..2a7a236 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -261,6 +261,7 @@ void PictureViewer2::readSettings(){ mSlideDlg->setDays(days); bool shuffle = s.value("ui/pvshuffle").toBool(); mSlideDlg->setShuffle(shuffle); + mSlideDlg->mappingEditWidget()->loadMappings("ui/pvmappings"); } void PictureViewer2::writeSettings(){ @@ -271,6 +272,7 @@ void PictureViewer2::writeSettings(){ s.setValue("ui/pvshuffle", mSlideDlg->shuffle()); s.setValue("ui/pvdays", mSlideDlg->days()); s.setValue("ui/pvresult", mSlideDlg->result()); + mSlideDlg->mappingEditWidget()->saveMappings("ui/pvmappings"); } void PictureViewer2::initActions(){ |