mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 15:10:22 -05:00
Cloud services are configured from RiaApplication::initialize(), which runs before the subclasses append their logger instances. All messages from the cloud config file search were therefore dropped. Add a virtual initializeLoggers() called before the cloud configuration is read, and move creation of the file logger and the std out logger into the overrides. The message panel logger depends on the main windows, and is still created in RiaGuiApplication::initialize(). Do not write fields with IO disabled to the application store, mirroring the check already present when reading. This stops the cloud service configuration from being persisted into the user preferences file.
174 lines
5.1 KiB
C++
174 lines
5.1 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) 2019- 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.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include "RiaApplication.h"
|
|
#include "RiaDefines.h"
|
|
|
|
#include <QApplication>
|
|
#include <QMutex>
|
|
#include <QPointer>
|
|
#include <QProcess>
|
|
#include <QString>
|
|
#include <QTimer>
|
|
|
|
#include <iostream>
|
|
#include <memory>
|
|
|
|
class QAction;
|
|
|
|
class Drawable;
|
|
|
|
class RIProcess;
|
|
|
|
class RiaPreferences;
|
|
class RiaProjectModifier;
|
|
class RiaSocketServer;
|
|
|
|
class RigEclipseCaseData;
|
|
|
|
class RimEclipseCase;
|
|
class RimEclipseView;
|
|
class RimGridView;
|
|
class RimProject;
|
|
class RimSummaryPlot;
|
|
class Rim3dView;
|
|
class RimViewWindow;
|
|
class RimWellLogPlot;
|
|
class RimWellAllocationPlot;
|
|
|
|
class RiuMainWindow;
|
|
class RiuMainWindowBase;
|
|
class RiuPlotMainWindow;
|
|
class RiuRecentFileActionProvider;
|
|
class RiaArgumentParser;
|
|
|
|
namespace RiaDefines
|
|
{
|
|
enum class RINavigationPolicy : short;
|
|
}
|
|
|
|
namespace caf
|
|
{
|
|
class FontHolderInterface;
|
|
}
|
|
|
|
//==================================================================================================
|
|
//
|
|
//
|
|
//
|
|
//==================================================================================================
|
|
class RiaGuiApplication : public QApplication, public RiaApplication
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
static bool isRunning();
|
|
static RiaGuiApplication* instance();
|
|
|
|
RiaGuiApplication( int& argc, char** argv );
|
|
~RiaGuiApplication() override;
|
|
|
|
bool saveProject();
|
|
QString promptForProjectSaveAsFileName() const;
|
|
bool saveProjectAs( const QString& fileName );
|
|
|
|
bool checkWithUserBeforeClose();
|
|
|
|
void runMultiCaseSnapshots( const QString& templateProjectFileName, std::vector<QString> gridFileNames, const QString& snapshotFolderName );
|
|
bool useShaders() const;
|
|
|
|
RiaDefines::RINavigationPolicy navigationPolicy() const;
|
|
|
|
RiuMainWindow* getOrCreateAndShowMainWindow();
|
|
RiuMainWindow* mainWindow();
|
|
RimViewWindow* activePlotWindow() const;
|
|
|
|
RiuPlotMainWindow* getOrCreateMainPlotWindow();
|
|
RiuPlotMainWindow* getOrCreateAndShowMainPlotWindow();
|
|
RiuPlotMainWindow* mainPlotWindow();
|
|
RiuMainWindowBase* mainWindowByID( int mainWindowID );
|
|
|
|
static RimViewWindow* activeViewWindow();
|
|
static RiuMainWindowBase* activeMainWindow();
|
|
static QWidget* widgetToUseAsParent();
|
|
|
|
bool isMain3dWindowVisible() const;
|
|
bool isMainPlotWindowVisible() const;
|
|
|
|
std::vector<QAction*> recentFileActions() const;
|
|
|
|
static void clearAllSelections();
|
|
void applyGuiPreferences( const RiaPreferences* oldPreferences = nullptr,
|
|
const std::vector<caf::FontHolderInterface*>& defaultFontObjects = {} );
|
|
static int applicationResolution();
|
|
|
|
// Public RiaApplication overrides
|
|
void initialize() override;
|
|
ApplicationStatus handleArguments( cvf::ProgramOptions* progOpt ) override;
|
|
void addToRecentFiles( const QString& fileName ) override;
|
|
void showFormattedTextInMessageBoxOrConsole( const QString& errMsg ) override;
|
|
|
|
protected:
|
|
void initializeLoggers() override;
|
|
|
|
bool notify( QObject* receiver, QEvent* event ) override;
|
|
|
|
// use the checkWithUserBeforeClose function, to get all checks in one go
|
|
bool notifyUserAboutRunningJobs();
|
|
bool askUserToSaveModifiedProject();
|
|
|
|
// Protected RiaApplication overrides
|
|
void invokeProcessEvents( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents ) override;
|
|
void onFileSuccessfullyLoaded( const QString& fileName, RiaDefines::ImportFileType fileType ) override;
|
|
|
|
void onProjectBeingOpened() override;
|
|
void onProjectOpeningError( const QString& errMsg ) override;
|
|
void onProjectOpened() override;
|
|
void onProjectBeingClosed() override;
|
|
void onProjectClosed() override;
|
|
void onProjectBeingSaved() override;
|
|
void onProjectSaved() override;
|
|
|
|
void startMonitoringWorkProgress( caf::UiProcess* uiProcess ) override;
|
|
void stopMonitoringWorkProgress() override;
|
|
|
|
virtual void onGuiPreferencesChanged() {}
|
|
|
|
private:
|
|
void setWindowCaptionFromAppState();
|
|
|
|
void createMainWindow();
|
|
void createMainPlotWindow();
|
|
|
|
void storeTreeViewState();
|
|
void storeDockState();
|
|
void restoreDockState();
|
|
|
|
private slots:
|
|
void slotWorkerProcessFinished( int exitCode, QProcess::ExitStatus exitStatus );
|
|
void onLastWindowClosed();
|
|
|
|
private:
|
|
QPointer<RiuMainWindow> m_mainWindow;
|
|
QPointer<RiuPlotMainWindow> m_mainPlotWindow;
|
|
|
|
std::unique_ptr<RiuRecentFileActionProvider> m_recentFileActionProvider;
|
|
};
|