#1018 Added loops for making multiple snapshots based on user input in widget. Filnames are generated, but no images saved yet.

This commit is contained in:
astridkbjorke
2016-12-14 09:16:44 +01:00
parent 55895fb8d8
commit 8bf1456644
5 changed files with 104 additions and 4 deletions

View File

@@ -19,12 +19,19 @@
#include "RicExportMultipleSnapshotsFeature.h"
#include "RiaApplication.h"
#include "RicSnapshotViewToClipboardFeature.h"
#include "RimCase.h"
#include "RimMultiSnapshotDefinition.h"
#include "RimProject.h"
#include "RimView.h"
#include "RiuExportMultipleSnapshotsWidget.h"
#include "cafCmdExecCommandManager.h"
#include "cafUtils.h"
#include <QAction>
#include <QDebug>
#include "QDir"
CAF_CMD_SOURCE_INIT(RicExportMultipleSnapshotsFeature, "RicExportMultipleSnapshotsFeature");
@@ -66,3 +73,87 @@ void RicExportMultipleSnapshotsFeature::setupActionLook(QAction* actionToSetup)
//actionToSetup->setIcon(QIcon(":/Save.png"));
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicExportMultipleSnapshotsFeature::exportMultipleSnapshots(const QString& folder, RimProject* project)
{
if (!project) return; //Er dette OK syntax??
QDir snapshotPath(folder);
if (!snapshotPath.exists())
{
if (!snapshotPath.mkpath(".")) return;
}
RimCase* activeCase = nullptr;
RimView* activeView = nullptr;
QStringList timeSteps;
QString timeStepString;
QString rangeFilterString;
for (RimMultiSnapshotDefinition* msd : project->multiSnapshotDefinitions())
{
activeCase = msd->caseObject();
if (!activeCase) continue;
activeView = msd->viewObject();
if (activeView && activeView->viewer())
{
timeSteps = activeCase->timeStepStrings();
for (int i=msd->timeStepStart(); i <= msd->timeStepEnd(); i++)
{
timeStepString = timeSteps[i].replace(".", "-");
if (msd->sliceDirection == RimMultiSnapshotDefinition::NO_RANGEFILTER)
{
QString fileName = activeCase->caseUserDescription() + "_" + activeView->name() + "_" + timeStepString + ".png";
fileName.replace(" ", "-");
//TODO: Before saveSnapshotAs is called the folder name must be changed from dummy value in widget
QString absoluteFileName = caf::Utils::constructFullFileName(folder, fileName, ".png");
//RicSnapshotViewToFileFeature::saveSnapshotAs(absoluteFileName, activeView);
qDebug() << absoluteFileName;
}
else
{
for (int i = msd->startSliceIndex(); i <= msd->endSliceIndex(); i++)
{
rangeFilterString = msd->sliceDirection().text() + QString::number(i);
// setActiveReservoirView(riv);
// RiuViewer* viewer = riv->viewer();
// mainWnd->setActiveViewer(viewer->layoutWidget());
// clearViewsScheduledForUpdate();
// //riv->updateCurrentTimeStepAndRedraw();
// riv->createDisplayModelAndRedraw();
// viewer->repaint();
// for (int i=msd->timeStepStart(); i<msd->timeStepEnd(); i++)
QString fileName = activeCase->caseUserDescription() + "_" + activeView->name() + "_" + timeStepString + "_" + rangeFilterString + ".png";
fileName.replace(" ", "-");
//TODO: Before saveSnapshotAs is called the folder name must be changed from dummy value in widget
QString absoluteFileName = caf::Utils::constructFullFileName(folder, fileName, ".png");
//RicSnapshotViewToFileFeature::saveSnapshotAs(absoluteFileName, activeView);
qDebug() << absoluteFileName;
}
}
}
}
}
}

View File

@@ -20,6 +20,7 @@
#include "cafCmdFeature.h"
class RimProject;
//==================================================================================================
///
@@ -32,5 +33,8 @@ protected:
virtual bool isCommandEnabled() override;
virtual void onActionTriggered( bool isChecked ) override;
virtual void setupActionLook(QAction* actionToSetup) override;
public:
static void exportMultipleSnapshots(const QString& folder, RimProject* project);
};