mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-24 22:27:55 -05:00
Add a GUI feature for restoring previous versions of a project file from its backup database, replacing the need for the external standalone tool. - RiaProjectBackupTools: add extractVersionsToFolder() to read all stored revisions from a project's .rspdb backup database and write each one to a timestamped .rsp file in a destination folder. - RicRestoreProjectVersionsUi: dialog for selecting the project file and export folder, defaulting to the currently open project. Adds a Recent Project Files dropdown (backed by RiuRecentFileActionProvider) that quickly populates the project file and export folder fields. - RicRestoreProjectVersionsFeature: new command feature wired into the File menu as 'Restore Previous Project Versions...', using the OpenFolder icon and placed after a separator below Save Project / Save Project As. - RiuRecentFileActionProvider: add recentProjectFiles() to expose the list of recently used project files. - Added '...' suffix to Save Project As, consistent with other dialog-launching actions.
212 lines
9.5 KiB
C++
212 lines
9.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) 2023- Equinor ASA
|
|
//
|
|
// ResInsight is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
//
|
|
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
|
// for more details.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "RiuMenuBarBuildTools.h"
|
|
|
|
#include "RiaPreferencesSystem.h"
|
|
|
|
#include "RimEclipseCaseCollection.h"
|
|
|
|
#include "RiuToolTipMenu.h"
|
|
#include "RiuTools.h"
|
|
|
|
#include "cafCmdFeatureManager.h"
|
|
#include "cafCmdFeatureMenuBuilder.h"
|
|
|
|
#include "cafAssert.h"
|
|
|
|
#include <QMainWindow>
|
|
#include <QMenu>
|
|
#include <QMenuBar>
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
QMenu* RiuMenuBarBuildTools::createDefaultFileMenu( QMenuBar* menuBar )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
CAF_ASSERT( menuBar && cmdFeatureMgr );
|
|
|
|
QMenu* fileMenu = new RiuToolTipMenu( menuBar );
|
|
fileMenu->setTitle( "&File" );
|
|
|
|
menuBar->addMenu( fileMenu );
|
|
|
|
fileMenu->addAction( cmdFeatureMgr->action( "RicOpenProjectFeature" ) );
|
|
fileMenu->addAction( cmdFeatureMgr->action( "RicOpenLastUsedFileFeature" ) );
|
|
|
|
return fileMenu;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
QMenu* RiuMenuBarBuildTools::createDefaultEditMenu( QMenuBar* menuBar )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
CAF_ASSERT( menuBar && cmdFeatureMgr );
|
|
|
|
QMenu* editMenu = menuBar->addMenu( "&Edit" );
|
|
editMenu->addAction( cmdFeatureMgr->action( "RicSnapshotViewToClipboardFeature" ) );
|
|
editMenu->addSeparator();
|
|
editMenu->addAction( cmdFeatureMgr->action( "RicShowMemoryCleanupDialogFeature" ) );
|
|
editMenu->addSeparator();
|
|
editMenu->addAction( cmdFeatureMgr->action( "RicEditPreferencesFeature" ) );
|
|
|
|
return editMenu;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
QMenu* RiuMenuBarBuildTools::createDefaultViewMenu( QMenuBar* menuBar )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
CAF_ASSERT( menuBar && cmdFeatureMgr );
|
|
|
|
QMenu* viewMenu = menuBar->addMenu( "&View" );
|
|
viewMenu->addAction( cmdFeatureMgr->action( "RicViewZoomAllFeature" ) );
|
|
|
|
return viewMenu;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
QMenu* RiuMenuBarBuildTools::createDefaultHelpMenu( QMenuBar* menuBar )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
CAF_ASSERT( menuBar && cmdFeatureMgr );
|
|
|
|
QMenu* helpMenu = menuBar->addMenu( "&Help" );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicHelpAboutFeature" ) );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicHelpCommandLineFeature" ) );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicHelpSummaryCommandLineFeature" ) );
|
|
helpMenu->addSeparator();
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicOpenReleaseNotesFeature" ) );
|
|
helpMenu->addSeparator();
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicHelpOpenUsersGuideFeature" ) );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicSearchHelpFeature" ) );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicSearchIssuesHelpFeature" ) );
|
|
helpMenu->addAction( cmdFeatureMgr->action( "RicCreateNewIssueHelpFeature" ) );
|
|
|
|
return helpMenu;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RiuMenuBarBuildTools::addImportMenuForMainWindow( QObject* parent, QMenu* menu )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
|
|
if ( !parent || !menu || !cmdFeatureMgr ) return;
|
|
|
|
QMenu* importMenu = menu->addMenu( QIcon( ":/import.svg" ), "&Import" );
|
|
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportGridModelFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportSummaryCaseFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportGridAndSummaryEnsembleFeature" ) );
|
|
|
|
importMenu->addSeparator();
|
|
QMenu* importEclipseMenu = importMenu->addMenu( QIcon( ":/import.svg" ), "More" );
|
|
caf::CmdFeatureMenuBuilder::appendToMenu( importEclipseMenu, RimEclipseCaseCollection::importMenuFeatureNames() );
|
|
|
|
importMenu->addSeparator();
|
|
QMenu* importGeoMechMenu = importMenu->addMenu( QIcon( ":/GeoMechCase24x24.png" ), "Geo Mechanical Models" );
|
|
importGeoMechMenu->addAction( cmdFeatureMgr->action( "RicImportGeoMechCaseFeature" ) );
|
|
importGeoMechMenu->addAction( cmdFeatureMgr->action( "RicImportGeoMechCaseTimeStepFilterFeature" ) );
|
|
importGeoMechMenu->addAction( cmdFeatureMgr->action( "RicImportElementPropertyFeature" ) );
|
|
|
|
importMenu->addSeparator();
|
|
QMenu* importWellMenu = importMenu->addMenu( QIcon( ":/Well.svg" ), "Well Data" );
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicWellPathsImportFileFeature" ) );
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicWellPathsImportOsduFeature" ) );
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicWellLogsImportFileFeature" ) );
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicWellPathFormationsImportFileFeature" ) );
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicImportWellMeasurementsFeature" ) );
|
|
if ( RiaPreferencesSystem::current()->isFeatureEnabled( "simulator-events" ) )
|
|
{
|
|
importWellMenu->addAction( cmdFeatureMgr->action( "RicImportSimulatorEventsFeature" ) );
|
|
}
|
|
|
|
importMenu->addSeparator();
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportFormationNamesFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportSurfacesFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportSeismicFeature" ) );
|
|
|
|
RiuTools::enableAllActionsOnShow( parent, importMenu );
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RiuMenuBarBuildTools::addImportMenuForPlotWindow( QObject* parent, QMenu* menu )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
|
|
if ( !parent || !menu || !cmdFeatureMgr ) return;
|
|
|
|
QMenu* importMenu = menu->addMenu( QIcon( ":/import.svg" ), "&Import" );
|
|
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportSummaryCaseFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportGridAndSummaryEnsembleFeature" ) );
|
|
QMenu* importSummaryMenu = importMenu->addMenu( QIcon( ":/import.svg" ), "More" );
|
|
importSummaryMenu->addAction( cmdFeatureMgr->action( "RicImportRevealSummaryCaseFeature" ) );
|
|
importSummaryMenu->addAction( cmdFeatureMgr->action( "RicImportStimPlanSummaryCaseFeature" ) );
|
|
importSummaryMenu->addAction( cmdFeatureMgr->action( "RicImportSummaryCasesFeature" ) );
|
|
importSummaryMenu->addAction( cmdFeatureMgr->action( "RicImportSummaryGroupFeature" ) );
|
|
importSummaryMenu->addAction( cmdFeatureMgr->action( "RicImportEnsembleFeature" ) );
|
|
|
|
importMenu->addSeparator();
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportObservedDataFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportObservedFmuDataFeature" ) );
|
|
importMenu->addAction( cmdFeatureMgr->action( "RicImportPressureDepthDataFeature" ) );
|
|
|
|
RiuTools::enableAllActionsOnShow( parent, importMenu );
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RiuMenuBarBuildTools::addSaveProjectActions( QMenu* menu )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
|
|
if ( !menu || !cmdFeatureMgr ) return;
|
|
|
|
menu->addAction( cmdFeatureMgr->action( "RicSaveProjectFeature" ) );
|
|
menu->addAction( cmdFeatureMgr->action( "RicSaveProjectAsFeature" ) );
|
|
menu->addSeparator();
|
|
menu->addAction( cmdFeatureMgr->action( "RicRestoreProjectVersionsFeature" ) );
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RiuMenuBarBuildTools::addCloseAndExitActions( QMenu* menu )
|
|
{
|
|
caf::CmdFeatureManager* cmdFeatureMgr = caf::CmdFeatureManager::instance();
|
|
|
|
if ( !menu || !cmdFeatureMgr ) return;
|
|
|
|
menu->addAction( cmdFeatureMgr->action( "RicCloseProjectFeature" ) );
|
|
menu->addSeparator();
|
|
menu->addAction( cmdFeatureMgr->action( "RicExitApplicationFeature" ) );
|
|
}
|