mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
First implementation of Headless (#4392)
* Revert "#4377 Octave : Use RiaLogging for error messages instead of QErrorMessage " This reverts commitf758a8edb2. * Revert "#4380 Preferences : Changing scene font size when geo mech view is open causes crash" This reverts commitdf62a41397. * Revert "#4379 Documentation : Update command line parser for import of summary files" This reverts commitd0b5357ed4. * Unfinished WIP * Builds but crashes * Refactored code now builds and runs * ResInsight can now run the unittests headless * Can run some command files successfully * Build on Linux * Extra headless hack header * Moved PdmUiItem hack to cpp file * Fix headless crash in RimWellAllocationPlot * Handle error gracefully if ExportSnapshots command is executed from console * Add caf::QIconProvider and remove some hacks * Also made the greying out of disabled icons work for a couple of cases where it didn't. * Linux build fix * #4380 Reimplement fixdf62a41397by @magnesj on top of Headless code changes * #4379 Reintroduce kode fromd0b5357ed4by @magnesj * #4377 Restoref758a8edb2in new Headless code
This commit is contained in:
@@ -83,6 +83,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuWellPathComponentPlotItem.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuMeasurementViewEventFilter.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDraggableOverlayFrame.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuMdiMaximizeWindowGuard.h
|
||||
)
|
||||
|
||||
set (SOURCE_GROUP_SOURCE_FILES
|
||||
@@ -165,6 +166,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotItemGroup.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuWellPathComponentPlotItem.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDraggableOverlayFrame.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuMdiMaximizeWindowGuard.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "RiuCvfOverlayItemWidget.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
|
||||
#include "cafTitledOverlayFrame.h"
|
||||
#include "cafViewer.h"
|
||||
@@ -66,7 +66,7 @@ void RiuCvfOverlayItemWidget::updateFromOverlayItem( caf::TitledOverlayFrame * i
|
||||
unsigned int height = item->renderSize().y();
|
||||
|
||||
QGLFormat glFormat;
|
||||
glFormat.setDirectRendering(RiaApplication::instance()->useShaders());
|
||||
glFormat.setDirectRendering(RiaGuiApplication::instance()->useShaders());
|
||||
|
||||
// Enforce no border to avoid
|
||||
item->setBackgroundFrameColor(cvf::Color4f(0, 0, 0, 0));
|
||||
@@ -88,7 +88,7 @@ void RiuCvfOverlayItemWidget::updateFromOverlayItem( caf::TitledOverlayFrame * i
|
||||
cvf::ref<cvf::RenderSequence> renderingSequence = new cvf::RenderSequence;
|
||||
renderingSequence->addRendering(rendering.p());
|
||||
|
||||
if (RiaApplication::instance()->useShaders())
|
||||
if (RiaGuiApplication::instance()->useShaders())
|
||||
{
|
||||
// Set up frame and render buffers
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiaBaseDefs.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RiaRegressionTest.h"
|
||||
@@ -159,7 +159,11 @@ RiuMainWindow::RiuMainWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuMainWindow* RiuMainWindow::instance()
|
||||
{
|
||||
return RiaApplication::instance()->mainWindow();
|
||||
if (RiaGuiApplication::isRunning())
|
||||
{
|
||||
return RiaGuiApplication::instance()->mainWindow();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -266,7 +270,7 @@ void RiuMainWindow::cleanupGuiBeforeProjectClose()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuMainWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
|
||||
app->saveMainWinGeoAndDockToolBarLayout();
|
||||
|
||||
@@ -461,7 +465,7 @@ void RiuMainWindow::createMenus()
|
||||
fileMenu->addAction(cmdFeatureMgr->action("RicSaveProjectFeature"));
|
||||
fileMenu->addAction(cmdFeatureMgr->action("RicSaveProjectAsFeature"));
|
||||
|
||||
std::vector<QAction*> recentFileActions = RiaApplication::instance()->recentFileActions();
|
||||
std::vector<QAction*> recentFileActions = RiaGuiApplication::instance()->recentFileActions();
|
||||
for (auto act : recentFileActions)
|
||||
{
|
||||
fileMenu->addAction(act);
|
||||
|
||||
49
ApplicationCode/UserInterface/RiuMdiMaximizeWindowGuard.cpp
Normal file
49
ApplicationCode/UserInterface/RiuMdiMaximizeWindowGuard.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
#include "RiuMdiMaximizeWindowGuard.h"
|
||||
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiuMainWindow.h"
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuMdiMaximizeWindowGuard::RiuMdiMaximizeWindowGuard()
|
||||
{
|
||||
{
|
||||
RiuMainWindow* mainWindow = RiaGuiApplication::instance()->mainWindow();
|
||||
if (mainWindow)
|
||||
{
|
||||
mainWindow->enableShowFirstVisibleMdiWindowMaximized(false);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
RiuPlotMainWindow* plotMainWindow = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
if (plotMainWindow)
|
||||
{
|
||||
plotMainWindow->enableShowFirstVisibleMdiWindowMaximized(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuMdiMaximizeWindowGuard::~RiuMdiMaximizeWindowGuard()
|
||||
{
|
||||
{
|
||||
RiuMainWindow* mainWindow = RiaGuiApplication::instance()->mainWindow();
|
||||
if (mainWindow)
|
||||
{
|
||||
mainWindow->enableShowFirstVisibleMdiWindowMaximized(true);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
RiuPlotMainWindow* plotMainWindow = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
if (plotMainWindow)
|
||||
{
|
||||
plotMainWindow->enableShowFirstVisibleMdiWindowMaximized(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
32
ApplicationCode/UserInterface/RiuMdiMaximizeWindowGuard.h
Normal file
32
ApplicationCode/UserInterface/RiuMdiMaximizeWindowGuard.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2011- Statoil ASA
|
||||
// Copyright (C) 2013- Ceetron Solutions AS
|
||||
// Copyright (C) 2011-2012 Ceetron AS
|
||||
//
|
||||
// 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
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
class RiuMdiMaximizeWindowGuard
|
||||
{
|
||||
public:
|
||||
RiuMdiMaximizeWindowGuard();
|
||||
~RiuMdiMaximizeWindowGuard();
|
||||
};
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "RiuMdiSubWindow.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
@@ -59,7 +59,7 @@ RimMdiWindowGeometry RiuMdiSubWindow::windowGeometry() const
|
||||
RimMdiWindowGeometry geo;
|
||||
|
||||
int mainWinID = 0;
|
||||
if (window() == RiaApplication::instance()->mainPlotWindow())
|
||||
if (window() == RiaGuiApplication::instance()->mainPlotWindow())
|
||||
{
|
||||
mainWinID = 1;
|
||||
}
|
||||
@@ -132,13 +132,13 @@ void RiuMdiSubWindow::resizeEvent(QResizeEvent* resizeEvent)
|
||||
|
||||
if (!m_blockTilingChanges)
|
||||
{
|
||||
if (window() == RiaApplication::instance()->mainWindow())
|
||||
if (window() == RiaGuiApplication::instance()->mainWindow())
|
||||
{
|
||||
RiaApplication::instance()->mainWindow()->storeSubWindowTiling(false);
|
||||
RiaGuiApplication::instance()->mainWindow()->storeSubWindowTiling(false);
|
||||
}
|
||||
else if (window() == RiaApplication::instance()->mainPlotWindow())
|
||||
else if (window() == RiaGuiApplication::instance()->mainPlotWindow())
|
||||
{
|
||||
RiaApplication::instance()->mainPlotWindow()->storeSubWindowTiling(false);
|
||||
RiaGuiApplication::instance()->mainPlotWindow()->storeSubWindowTiling(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,13 +157,13 @@ void RiuMdiSubWindow::moveEvent(QMoveEvent* moveEvent)
|
||||
|
||||
if (!m_blockTilingChanges)
|
||||
{
|
||||
if (window() == RiaApplication::instance()->mainWindow())
|
||||
if (window() == RiaGuiApplication::instance()->mainWindow())
|
||||
{
|
||||
RiaApplication::instance()->mainWindow()->storeSubWindowTiling(false);
|
||||
RiaGuiApplication::instance()->mainWindow()->storeSubWindowTiling(false);
|
||||
}
|
||||
else if (window() == RiaApplication::instance()->mainPlotWindow())
|
||||
else if (window() == RiaGuiApplication::instance()->mainPlotWindow())
|
||||
{
|
||||
RiaApplication::instance()->mainPlotWindow()->storeSubWindowTiling(false);
|
||||
RiaGuiApplication::instance()->mainPlotWindow()->storeSubWindowTiling(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ void RiuPlotMainWindow::cleanUpTemporaryWidgets()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
|
||||
app->savePlotWinGeoAndDockToolBarLayout();
|
||||
|
||||
@@ -260,7 +260,7 @@ void RiuPlotMainWindow::createMenus()
|
||||
fileMenu->addAction(cmdFeatureMgr->action("RicSaveProjectFeature"));
|
||||
fileMenu->addAction(cmdFeatureMgr->action("RicSaveProjectAsFeature"));
|
||||
|
||||
std::vector<QAction*> recentFileActions = RiaApplication::instance()->recentFileActions();
|
||||
std::vector<QAction*> recentFileActions = RiaGuiApplication::instance()->recentFileActions();
|
||||
for (auto act : recentFileActions)
|
||||
{
|
||||
fileMenu->addAction(act);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -25,7 +25,7 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindowTools::showPlotMainWindow()
|
||||
{
|
||||
RiaApplication::instance()->getOrCreateAndShowMainPlotWindow();
|
||||
RiaGuiApplication::instance()->getOrCreateAndShowMainPlotWindow();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -33,7 +33,7 @@ void RiuPlotMainWindowTools::showPlotMainWindow()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindowTools::setActiveViewer(QWidget* subWindow)
|
||||
{
|
||||
RiuPlotMainWindow* mpw = RiaApplication::instance()->mainPlotWindow();
|
||||
RiuPlotMainWindow* mpw = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
|
||||
if (mpw) mpw->setActiveViewer(subWindow);
|
||||
}
|
||||
@@ -43,7 +43,7 @@ void RiuPlotMainWindowTools::setActiveViewer(QWidget* subWindow)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindowTools::setExpanded(const caf::PdmUiItem* uiItem, bool expanded /*= true*/)
|
||||
{
|
||||
RiuPlotMainWindow* mpw = RiaApplication::instance()->mainPlotWindow();
|
||||
RiuPlotMainWindow* mpw = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
|
||||
if (mpw) mpw->setExpanded(uiItem, expanded);
|
||||
}
|
||||
@@ -53,7 +53,7 @@ void RiuPlotMainWindowTools::setExpanded(const caf::PdmUiItem* uiItem, bool expa
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindowTools::selectAsCurrentItem(const caf::PdmObject* object, bool allowActiveViewChange /*= true*/)
|
||||
{
|
||||
RiuPlotMainWindow* mpw = RiaApplication::instance()->mainPlotWindow();
|
||||
RiuPlotMainWindow* mpw = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
|
||||
if (mpw) mpw->selectAsCurrentItem(object, allowActiveViewChange);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ void RiuPlotMainWindowTools::selectAsCurrentItem(const caf::PdmObject* object, b
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuPlotMainWindowTools::refreshToolbars()
|
||||
{
|
||||
RiuPlotMainWindow* mpw = RiaApplication::instance()->mainPlotWindow();
|
||||
RiuPlotMainWindow* mpw = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
|
||||
if (mpw)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "RiuPlotObjectPicker.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
@@ -39,7 +39,7 @@ RiuPlotObjectPicker::RiuPlotObjectPicker(QWidget* widget, caf::PdmObject* associ
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuPlotObjectPicker::eventFilter(QObject* watchedObject, QEvent* event)
|
||||
{
|
||||
RiuPlotMainWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
|
||||
RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
|
||||
if (mainPlotWindow && m_associatedObject.notNull())
|
||||
{
|
||||
if (event->type() == QEvent::MouseButtonPress)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "RiuRecentFileActionProvider.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiaFilePathTools.h"
|
||||
|
||||
#include <QAction>
|
||||
@@ -125,7 +125,7 @@ void RiuRecentFileActionProvider::slotOpenRecentFile()
|
||||
{
|
||||
QString fileName = RiaFilePathTools::toInternalSeparator(action->data().toString());
|
||||
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
if (RiaApplication::hasValidProjectFileExtension(fileName))
|
||||
{
|
||||
if (!app->askUserToSaveModifiedProject()) return;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "ToggleCommands/RicToggleItemsFeatureImpl.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
|
||||
#include "RimCaseCollection.h"
|
||||
#include "RimEclipseCase.h"
|
||||
@@ -104,9 +104,9 @@ bool RiuTreeViewEventFilter::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
toggleStateForSelection = false;
|
||||
}
|
||||
else if (RiaApplication::instance()->mainPlotWindow() &&
|
||||
RiaApplication::instance()->mainPlotWindow()->projectTreeView() &&
|
||||
RiaApplication::instance()->mainPlotWindow()->projectTreeView()->isTreeItemEditWidgetActive())
|
||||
else if (RiaGuiApplication::instance()->mainPlotWindow() &&
|
||||
RiaGuiApplication::instance()->mainPlotWindow()->projectTreeView() &&
|
||||
RiaGuiApplication::instance()->mainPlotWindow()->projectTreeView()->isTreeItemEditWidgetActive())
|
||||
{
|
||||
toggleStateForSelection = false;
|
||||
}
|
||||
|
||||
@@ -93,9 +93,9 @@ RiuViewer::RiuViewer(const QGLFormat& format, QWidget* parent)
|
||||
: caf::Viewer(format, parent)
|
||||
, m_isNavigationRotationEnabled(true)
|
||||
{
|
||||
cvf::Font* standardFont = RiaApplication::instance()->defaultSceneFont();
|
||||
QFont font = QApplication::font();
|
||||
font.setPointSize(RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultSceneFontSize()));
|
||||
cvf::Font* standardFont = RiaGuiApplication::instance()->defaultSceneFont();
|
||||
QFont font = RiaGuiApplication::instance()->font();
|
||||
font.setPointSize(RiaFontCache::pointSizeFromFontSizeEnum(RiaGuiApplication::instance()->preferences()->defaultSceneFontSize()));
|
||||
|
||||
m_axisCross = new cvf::OverlayAxisCross(m_mainCamera.p(), standardFont);
|
||||
m_axisCross->setAxisLabels("X", "Y", "Z");
|
||||
@@ -559,7 +559,7 @@ void RiuViewer::removeAllColorLegends()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuViewer::addColorLegendToBottomLeftCorner(caf::TitledOverlayFrame* addedLegend)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RiaGuiApplication* app = RiaGuiApplication::instance();
|
||||
CVF_ASSERT(app);
|
||||
RiaPreferences* preferences = app->preferences();
|
||||
cvf::Rendering* firstRendering = m_mainRendering.p();
|
||||
@@ -689,21 +689,21 @@ void RiuViewer::enableNavigationRotation(bool enable)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuViewer::updateNavigationPolicy()
|
||||
{
|
||||
switch (RiaApplication::instance()->navigationPolicy())
|
||||
switch (RiaGuiApplication::instance()->navigationPolicy())
|
||||
{
|
||||
case RiaApplication::NAVIGATION_POLICY_CAD:
|
||||
case RiaGuiApplication::NAVIGATION_POLICY_CAD:
|
||||
setNavigationPolicy(new RiuCadNavigation);
|
||||
break;
|
||||
|
||||
case RiaApplication::NAVIGATION_POLICY_CEETRON:
|
||||
case RiaGuiApplication::NAVIGATION_POLICY_CEETRON:
|
||||
setNavigationPolicy(new caf::CeetronPlusNavigation);
|
||||
break;
|
||||
|
||||
case RiaApplication::NAVIGATION_POLICY_GEOQUEST:
|
||||
case RiaGuiApplication::NAVIGATION_POLICY_GEOQUEST:
|
||||
setNavigationPolicy(new RiuGeoQuestNavigation);
|
||||
break;
|
||||
|
||||
case RiaApplication::NAVIGATION_POLICY_RMS:
|
||||
case RiaGuiApplication::NAVIGATION_POLICY_RMS:
|
||||
setNavigationPolicy(new RiuRmsNavigation);
|
||||
break;
|
||||
|
||||
@@ -1062,7 +1062,7 @@ void RiuViewer::clearHoverCursor()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuViewer::updateFonts()
|
||||
{
|
||||
cvf::Font* standardFont = RiaApplication::instance()->defaultSceneFont();
|
||||
cvf::Font* standardFont = RiaGuiApplication::instance()->defaultSceneFont();
|
||||
m_mainRendering->removeOverlayItem(m_axisCross.p());
|
||||
|
||||
m_axisCross = new cvf::OverlayAxisCross(m_mainCamera.p(), standardFont);
|
||||
|
||||
Reference in New Issue
Block a user