##// END OF EJS Templates
Merge pull request 142 from SCIQLOP-Initialisation develop...
leroux -
r103:0e87458642fc merge
parent child
Show More
1 NO CONTENT: new file 100755, binary diff hidden
NO CONTENT: new file 100755, binary diff hidden
@@ -0,0 +1,5
1 <RCC>
2 <qresource prefix="/">
3 <file>icones/openInspector.png</file>
4 </qresource>
5 </RCC>
@@ -0,0 +1,145
1 ## mockplugin - CMakeLists.txt
2 STRING(TOLOWER ${CMAKE_PROJECT_NAME} LIBRARY_PREFFIX)
3 SET(SQPMOCKPLUGIN_LIBRARY_NAME "${LIBRARY_PREFFIX}_mockplugin${DEBUG_SUFFIX}")
4 SET(SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
5 SET(INCLUDES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
6 SET(RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")
7
8 # Include mockplugin directory
9 INCLUDE_DIRECTORIES(${INCLUDES_DIR})
10 INCLUDE_DIRECTORIES(${RESOURCES_DIR})
11
12 #
13 # Find Qt modules
14 #
15 SCIQLOP_FIND_QT(Core Widgets)
16
17 #
18 # Find dependent libraries
19 # ========================
20
21 # sciqlop plugin
22 find_package(sciqlop-plugin)
23 INCLUDE_DIRECTORIES(${SCIQLOP-PLUGIN_INCLUDE_DIR})
24
25 # sciqlop core
26 find_package(sciqlop-core)
27 INCLUDE_DIRECTORIES(${SCIQLOP-CORE_INCLUDE_DIR})
28 list(APPEND LIBRARIES ${SCIQLOP-CORE_LIBRARIES})
29
30 # sciqlop gui
31 find_package(sciqlop-gui)
32 INCLUDE_DIRECTORIES(${SCIQLOP-GUI_INCLUDE_DIR})
33 list(APPEND LIBRARIES ${SCIQLOP-GUI_LIBRARIES})
34
35 # Resources files
36 FILE (GLOB_RECURSE PROJECT_RESOURCES ${RESOURCES_DIR}/*.json)
37
38 #
39 # Compile the library
40 #
41 FILE (GLOB_RECURSE MODULE_SOURCES
42 ${INCLUDES_DIR}/*.h
43 ${SOURCES_DIR}/*.c
44 ${SOURCES_DIR}/*.cpp
45 ${SOURCES_DIR}/*.h
46 ${PROJECT_RESOURCES})
47
48 ADD_LIBRARY(${SQPMOCKPLUGIN_LIBRARY_NAME} ${MODULE_SOURCES})
49 set_property(TARGET ${SQPMOCKPLUGIN_LIBRARY_NAME} PROPERTY CXX_STANDARD 14)
50 set_property(TARGET ${SQPMOCKPLUGIN_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
51
52 TARGET_LINK_LIBRARIES(${SQPMOCKPLUGIN_LIBRARY_NAME} ${LIBRARIES})
53 qt5_use_modules(${SQPMOCKPLUGIN_LIBRARY_NAME} Core Widgets)
54
55 # From cmake documentation: http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html
56 # Entries in the COMPILE_DEFINITIONS are prefixed with -D or /D and added to the compile line in an unspecified order.
57 # The DEFINE_SYMBOL target property is also added as a compile definition as a special convenience case for SHARED and MODULE library targets
58 IF(BUILD_SHARED_LIBS)
59 SET_TARGET_PROPERTIES(${SQPMOCKPLUGIN_LIBRARY_NAME} PROPERTIES COMPILE_DEFINITIONS "SCIQLOP_EXPORT")
60 ELSE()
61 TARGET_COMPILE_DEFINITIONS(${SQPMOCKPLUGIN_LIBRARY_NAME} PUBLIC "SCIQLOP_STATIC_LIBRARIES")
62 ENDIF()
63
64 # Set the variable to parent scope so that the other projects can copy the
65 # dependent shared libraries
66 SCIQLOP_SET_TO_PARENT_SCOPE(SQPMOCKPLUGIN_LIBRARY_NAME)
67
68 # Copy extern shared libraries to the lib folder
69 SCIQLOP_COPY_TO_TARGET(LIBRARY ${SQPMOCKPLUGIN_LIBRARY_NAME} ${EXTERN_SHARED_LIBRARIES})
70
71 # Add the files to the list of files to be analyzed
72 LIST(APPEND CHECKSTYLE_INPUT_FILES ${MODULE_SOURCES})
73 SCIQLOP_SET_TO_PARENT_SCOPE(CHECKSTYLE_INPUT_FILES)
74 # Vera++ exclusion files
75 #LIST(APPEND CHECKSTYLE_EXCLUSION_FILES ${CMAKE_CURRENT_SOURCE_DIR}/vera-exclusions/exclusions.txt)
76 SCIQLOP_SET_TO_PARENT_SCOPE(CHECKSTYLE_EXCLUSION_FILES)
77
78 #
79 # Compile the tests
80 #
81 IF(BUILD_TESTS)
82 INCLUDE_DIRECTORIES(${SOURCES_DIR})
83 FILE (GLOB_RECURSE TESTS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Test*.cpp)
84 FILE (GLOB_RECURSE TESTS_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Test*.h)
85 SET( TEST_LIBRARIES ${SQPGUI_LIBRARY_NAME})
86
87 FOREACH( testFile ${TESTS_SOURCES} )
88 GET_FILENAME_COMPONENT( testDirectory ${testFile} DIRECTORY )
89 GET_FILENAME_COMPONENT( testName ${testFile} NAME_WE )
90
91 # Add to the list of sources files all the sources in the same
92 # directory that aren't another test
93 FILE (GLOB currentTestSources
94 ${testDirectory}/*.c
95 ${testDirectory}/*.cpp
96 ${testDirectory}/*.h)
97 LIST (REMOVE_ITEM currentTestSources ${TESTS_SOURCES})
98 # LIST (REMOVE_ITEM currentTestSources ${TESTS_HEADERS})
99
100 ADD_EXECUTABLE(${testName} ${testFile} ${currentTestSources})
101 set_property(TARGET ${testName} PROPERTY CXX_STANDARD 14)
102 set_property(TARGET ${testName} PROPERTY CXX_STANDARD_REQUIRED ON)
103 TARGET_LINK_LIBRARIES( ${testName} ${TEST_LIBRARIES} )
104 qt5_use_modules(${testName} Test)
105
106 ADD_TEST( NAME ${testName} COMMAND ${testName} )
107
108 SCIQLOP_COPY_TO_TARGET(RUNTIME ${testName} ${EXTERN_SHARED_LIBRARIES})
109 ENDFOREACH( testFile )
110
111 LIST(APPEND testFilesToFormat ${TESTS_SOURCES})
112 LIST(APPEND testFilesToFormat ${TESTS_HEADERS})
113 LIST(APPEND FORMATTING_INPUT_FILES ${testFilesToFormat})
114 SCIQLOP_SET_TO_PARENT_SCOPE(FORMATTING_INPUT_FILES)
115 ENDIF(BUILD_TESTS)
116
117 #
118 # Set the files that must be formatted by clang-format.
119 #
120 LIST (APPEND FORMATTING_INPUT_FILES ${MODULE_SOURCES})
121 SCIQLOP_SET_TO_PARENT_SCOPE(FORMATTING_INPUT_FILES)
122
123 #
124 # Set the directories that doxygen must browse to generate the
125 # documentation.
126 #
127 # Source directories:
128 LIST (APPEND DOXYGEN_INPUT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/docs")
129 LIST (APPEND DOXYGEN_INPUT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src")
130 SCIQLOP_SET_TO_PARENT_SCOPE(DOXYGEN_INPUT_DIRS)
131 # Source directories to exclude from the documentation generation
132 #LIST (APPEND DOXYGEN_EXCLUDE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/path/to/subdir/*")
133 SCIQLOP_SET_TO_PARENT_SCOPE(DOXYGEN_EXCLUDE_PATTERNS)
134
135 #
136 # Set the directories with the sources to analyze and propagate the
137 # modification to the parent scope
138 #
139 # Source directories to analyze:
140 LIST (APPEND ANALYSIS_INPUT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src")
141 LIST (APPEND ANALYSIS_INPUT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/tests")
142 SCIQLOP_SET_TO_PARENT_SCOPE(ANALYSIS_INPUT_DIRS)
143 # Source directories to exclude from the analysis
144 #LIST (APPEND ANALYSIS_EXCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/path/to/subdir")
145 SCIQLOP_SET_TO_PARENT_SCOPE(ANALYSIS_EXCLUDE_DIRS)
@@ -0,0 +1,21
1 # - Try to find sciqlop-mockplugin
2 # Once done this will define
3 # SCIQLOP-MOCKPLUGIN_FOUND - System has sciqlop-mockplugin
4 # SCIQLOP-MOCKPLUGIN_INCLUDE_DIR - The sciqlop-mockplugin include directories
5 # SCIQLOP-MOCKPLUGIN_LIBRARIES - The libraries needed to use sciqlop-mockplugin
6
7 if(SCIQLOP-MOCKPLUGIN_FOUND)
8 return()
9 endif(SCIQLOP-MOCKPLUGIN_FOUND)
10
11 set(SCIQLOP-MOCKPLUGIN_INCLUDE_DIR ${sciqlop-mockplugin_DIR}/../include)
12
13 set (OS_LIB_EXTENSION "so")
14
15 if(WIN32)
16 set (OS_LIB_EXTENSION "dll")
17 endif(WIN32)
18 # TODO: Add Mac Support
19 set(SCIQLOP-MOCKPLUGIN_LIBRARIES ${LIBRARY_OUTPUT_PATH}/libsciqlop_mockplugin${DEBUG_SUFFIX}.${OS_LIB_EXTENSION})
20
21 set(SCIQLOP-MOCKPLUGIN_FOUND TRUE)
@@ -0,0 +1,27
1 #ifndef SCIQLOP_MOCKPLUGIN_H
2 #define SCIQLOP_MOCKPLUGIN_H
3
4 #include <Plugin/IPlugin.h>
5
6 #include <QLoggingCategory>
7
8 #include <memory>
9
10 Q_DECLARE_LOGGING_CATEGORY(LOG_MockPlugin)
11
12 class DataSourceItem;
13
14 class MockPlugin : public QObject, public IPlugin {
15 Q_OBJECT
16 Q_INTERFACES(IPlugin)
17 Q_PLUGIN_METADATA(IID "sciqlop.plugin.IPlugin" FILE "mockplugin.json")
18 public:
19 /// @sa IPlugin::initialize()
20 void initialize() override;
21
22 private:
23 /// Creates the data source item relative to the plugin
24 std::unique_ptr<DataSourceItem> createDataSourceItem() const noexcept;
25 };
26
27 #endif // SCIQLOP_MOCKPLUGIN_H
@@ -0,0 +1,3
1 {
2 "name" : "MockPlugin"
3 }
@@ -0,0 +1,55
1 #include <MockPlugin.h>
2
3 #include <DataSource/DataSourceController.h>
4 #include <DataSource/DataSourceItem.h>
5
6 #include <SqpApplication.h>
7
8 Q_LOGGING_CATEGORY(LOG_MockPlugin, "MockPlugin")
9
10 namespace {
11
12 /// Name of the data source
13 const auto DATA_SOURCE_NAME = QStringLiteral("MMS");
14
15 } // namespace
16
17 void MockPlugin::initialize()
18 {
19 if (auto app = sqpApp) {
20 // Registers to the data source controller
21 auto &dataSourceController = app->dataSourceController();
22 auto dataSourceUid = dataSourceController.registerDataSource(DATA_SOURCE_NAME);
23
24 dataSourceController.setDataSourceItem(dataSourceUid, createDataSourceItem());
25 }
26 else {
27 qCWarning(LOG_MockPlugin()) << tr("Can't access to SciQlop application");
28 }
29 }
30
31 std::unique_ptr<DataSourceItem> MockPlugin::createDataSourceItem() const noexcept
32 {
33 // Magnetic field products
34 auto fgmProduct = std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT,
35 QVector<QVariant>{QStringLiteral("FGM")});
36 auto scProduct = std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT,
37 QVector<QVariant>{QStringLiteral("SC")});
38
39 auto magneticFieldFolder = std::make_unique<DataSourceItem>(
40 DataSourceItemType::NODE, QVector<QVariant>{QStringLiteral("Magnetic field")});
41 magneticFieldFolder->appendChild(std::move(fgmProduct));
42 magneticFieldFolder->appendChild(std::move(scProduct));
43
44 // Electric field products
45 auto electricFieldFolder = std::make_unique<DataSourceItem>(
46 DataSourceItemType::NODE, QVector<QVariant>{QStringLiteral("Electric field")});
47
48 // Root
49 auto root = std::make_unique<DataSourceItem>(DataSourceItemType::NODE,
50 QVector<QVariant>{DATA_SOURCE_NAME});
51 root->appendChild(std::move(magneticFieldFolder));
52 root->appendChild(std::move(electricFieldFolder));
53
54 return std::move(root);
55 }
@@ -1,60 +1,65
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the SciQLop Software
2 -- This file is a part of the SciQLop Software
3 -- Copyright (C) 2017, Plasma Physics Laboratory - CNRS
3 -- Copyright (C) 2017, Plasma Physics Laboratory - CNRS
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 2 of the License, or
7 -- the Free Software Foundation; either version 2 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------*/
18 -------------------------------------------------------------------------------*/
19 /*-- Author : Alexis Jeandet
19 /*-- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@member.fsf.org
20 -- Mail : alexis.jeandet@member.fsf.org
21 ----------------------------------------------------------------------------*/
21 ----------------------------------------------------------------------------*/
22 #ifndef SCIQLOP_MAINWINDOW_H
22 #ifndef SCIQLOP_MAINWINDOW_H
23 #define SCIQLOP_MAINWINDOW_H
23 #define SCIQLOP_MAINWINDOW_H
24
24
25 #include <QListWidgetItem>
25 #include <QListWidgetItem>
26 #include <QLoggingCategory>
26 #include <QMainWindow>
27 #include <QMainWindow>
27 #include <QProgressBar>
28 #include <QProgressBar>
28 #include <QProgressDialog>
29 #include <QProgressDialog>
29 #include <QThread>
30 #include <QThread>
30 #include <QVBoxLayout>
31 #include <QVBoxLayout>
31 #include <QWidget>
32 #include <QWidget>
32 //#include "../Core/qlopservice.h"
33
33 //#include "../Core/qlopgui.h"
34 #include <Common/spimpl.h>
34
35
35 #include <memory>
36 #include <memory>
36
37
38 Q_DECLARE_LOGGING_CATEGORY(LOG_MainWindow)
39
37 namespace Ui {
40 namespace Ui {
38 class MainWindow;
41 class MainWindow;
39 } // namespace Ui
42 } // namespace Ui
40
43
41
44
42 class MainWindow : public QMainWindow {
45 class MainWindow : public QMainWindow {
43 Q_OBJECT
46 Q_OBJECT
44
47
45 public:
48 public:
46 explicit MainWindow(QWidget *parent = 0);
49 explicit MainWindow(QWidget *parent = 0);
47 virtual ~MainWindow();
50 virtual ~MainWindow();
48 public slots:
51 public slots:
49
52
50 protected:
53 protected:
51 void changeEvent(QEvent *e);
54 void changeEvent(QEvent *e);
52
55
53 private:
56 private:
54 std::unique_ptr<Ui::MainWindow> m_Ui;
57 std::unique_ptr<Ui::MainWindow> m_Ui;
55 // QWidget *m_progressWidget;
58 // QWidget *m_progressWidget;
56 // QVBoxLayout *m_progressLayout;
59 // QVBoxLayout *m_progressLayout;
57 // QList<QLopService*> m_qlopServices;
60 // QList<QLopService*> m_qlopServices;
61 class MainWindowPrivate;
62 spimpl::unique_impl_ptr<MainWindowPrivate> impl;
58 };
63 };
59
64
60 #endif // SCIQLOP_MAINWINDOW_H
65 #endif // SCIQLOP_MAINWINDOW_H
@@ -1,128 +1,224
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the SciQLop Software
2 -- This file is a part of the SciQLop Software
3 -- Copyright (C) 2017, Plasma Physics Laboratory - CNRS
3 -- Copyright (C) 2017, Plasma Physics Laboratory - CNRS
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 2 of the License, or
7 -- the Free Software Foundation; either version 2 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------*/
18 -------------------------------------------------------------------------------*/
19 /*-- Author : Alexis Jeandet
19 /*-- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@member.fsf.org
20 -- Mail : alexis.jeandet@member.fsf.org
21 ----------------------------------------------------------------------------*/
21 ----------------------------------------------------------------------------*/
22 #include "MainWindow.h"
22 #include "MainWindow.h"
23 #include "ui_MainWindow.h"
23 #include "ui_MainWindow.h"
24
24
25 #include <DataSource/DataSourceController.h>
25 #include <DataSource/DataSourceController.h>
26 #include <DataSource/DataSourceWidget.h>
26 #include <DataSource/DataSourceWidget.h>
27 #include <SidePane/SqpSidePane.h>
27 #include <SqpApplication.h>
28 #include <SqpApplication.h>
28
29
29 #include <QAction>
30 #include <QAction>
30 #include <QDate>
31 #include <QDate>
31 #include <QDateTime>
32 #include <QDateTime>
32 #include <QDir>
33 #include <QDir>
33 #include <QFileDialog>
34 #include <QFileDialog>
35 #include <QToolBar>
36 #include <memory.h>
37
34 //#include <omp.h>
38 //#include <omp.h>
35 //#include <network/filedownloader.h>
39 //#include <network/filedownloader.h>
36 //#include <qlopdatabase.h>
40 //#include <qlopdatabase.h>
37 //#include <qlopsettings.h>
41 //#include <qlopsettings.h>
38 //#include <qlopgui.h>
42 //#include <qlopgui.h>
39 //#include <spacedata.h>
43 //#include <spacedata.h>
40 //#include "qlopcore.h"
44 //#include "qlopcore.h"
41 //#include "qlopcodecmanager.h"
45 //#include "qlopcodecmanager.h"
42 //#include "cdfcodec.h"
46 //#include "cdfcodec.h"
43 //#include "amdatxtcodec.h"
47 //#include "amdatxtcodec.h"
44 //#include <qlopplotmanager.h>
48 //#include <qlopplotmanager.h>
45 #include <QAction>
49
46 #include <QToolBar>
50 #include "iostream"
47 #include <memory.h>
51
48 MainWindow::MainWindow(QWidget *parent) : QMainWindow{parent}, m_Ui{new Ui::MainWindow}
52 Q_LOGGING_CATEGORY(LOG_MainWindow, "MainWindow")
53
54 namespace {
55 const auto LEFTMAININSPECTORWIDGETSPLITTERINDEX = 0;
56 const auto LEFTINSPECTORSIDEPANESPLITTERINDEX = 1;
57 const auto VIEWPLITTERINDEX = 2;
58 const auto RIGHTINSPECTORSIDEPANESPLITTERINDEX = 3;
59 const auto RIGHTMAININSPECTORWIDGETSPLITTERINDEX = 4;
60 }
61
62 class MainWindow::MainWindowPrivate {
63 public:
64 QSize m_LastOpenLeftInspectorSize;
65 QSize m_LastOpenRightInspectorSize;
66 };
67
68 MainWindow::MainWindow(QWidget *parent)
69 : QMainWindow{parent},
70 m_Ui{new Ui::MainWindow},
71 impl{spimpl::make_unique_impl<MainWindowPrivate>()}
49 {
72 {
50 m_Ui->setupUi(this);
73 m_Ui->setupUi(this);
51
74
52 auto leftSidePane = m_Ui->leftInspectorSidePane->sidePane();
75 m_Ui->splitter->setCollapsible(LEFTINSPECTORSIDEPANESPLITTERINDEX, false);
53 leftSidePane->addAction("ACTION L1");
76 m_Ui->splitter->setCollapsible(RIGHTINSPECTORSIDEPANESPLITTERINDEX, false);
54 leftSidePane->addAction("ACTION L2");
77
55 leftSidePane->addAction("ACTION L3");
78 // NOTE: These lambda could be factorized. Be careful of theirs parameters
79 // Lambda that defines what's happened when clicking on the leftSidePaneInspector open button
80 auto openLeftInspector = [this](bool checked) {
81
82 // Update of the last opened geometry
83 if (checked) {
84 impl->m_LastOpenLeftInspectorSize = m_Ui->leftMainInspectorWidget->size();
85 }
86
87 auto startSize = impl->m_LastOpenLeftInspectorSize;
88 auto endSize = startSize;
89 endSize.setWidth(0);
90
91 auto currentSizes = m_Ui->splitter->sizes();
92 if (checked) {
93 // adjust sizes individually here, e.g.
94 currentSizes[LEFTMAININSPECTORWIDGETSPLITTERINDEX]
95 -= impl->m_LastOpenLeftInspectorSize.width();
96 currentSizes[VIEWPLITTERINDEX] += impl->m_LastOpenLeftInspectorSize.width();
97 m_Ui->splitter->setSizes(currentSizes);
98 }
99 else {
100 // adjust sizes individually here, e.g.
101 currentSizes[LEFTMAININSPECTORWIDGETSPLITTERINDEX]
102 += impl->m_LastOpenLeftInspectorSize.width();
103 currentSizes[VIEWPLITTERINDEX] -= impl->m_LastOpenLeftInspectorSize.width();
104 m_Ui->splitter->setSizes(currentSizes);
105 }
106
107 };
108
109 // Lambda that defines what's happened when clicking on the SidePaneInspector open button
110 auto openRightInspector = [this](bool checked) {
111
112 // Update of the last opened geometry
113 if (checked) {
114 impl->m_LastOpenRightInspectorSize = m_Ui->rightMainInspectorWidget->size();
115 }
116
117 auto startSize = impl->m_LastOpenRightInspectorSize;
118 auto endSize = startSize;
119 endSize.setWidth(0);
120
121 auto currentSizes = m_Ui->splitter->sizes();
122 if (checked) {
123 // adjust sizes individually here, e.g.
124 currentSizes[RIGHTMAININSPECTORWIDGETSPLITTERINDEX]
125 -= impl->m_LastOpenRightInspectorSize.width();
126 currentSizes[VIEWPLITTERINDEX] += impl->m_LastOpenRightInspectorSize.width();
127 m_Ui->splitter->setSizes(currentSizes);
128 }
129 else {
130 // adjust sizes individually here, e.g.
131 currentSizes[RIGHTMAININSPECTORWIDGETSPLITTERINDEX]
132 += impl->m_LastOpenRightInspectorSize.width();
133 currentSizes[VIEWPLITTERINDEX] -= impl->m_LastOpenRightInspectorSize.width();
134 m_Ui->splitter->setSizes(currentSizes);
135 }
136
137 };
138
139
140 QToolBar *leftSidePane = m_Ui->leftInspectorSidePane->sidePane();
141 auto openLeftInspectorAction = leftSidePane->addAction(
142 QIcon{
143 ":/icones/openInspector.png",
144 },
145 tr("Show/hide the left inspector"), openLeftInspector);
146
147 openLeftInspectorAction->setCheckable(true);
56
148
57 auto rightSidePane = m_Ui->rightInspectorSidePane->sidePane();
149 auto rightSidePane = m_Ui->rightInspectorSidePane->sidePane();
58 rightSidePane->addAction("ACTION R1");
150 auto openRightInspectorAction = rightSidePane->addAction(
59 rightSidePane->addAction("ACTION R2");
151 QIcon{
60 rightSidePane->addAction("ACTION R3");
152 ":/icones/openInspector.png",
153 },
154 tr("Show/hide the right inspector"), openRightInspector);
155
156 openRightInspectorAction->setCheckable(true);
61
157
62 this->menuBar()->addAction("File");
158 this->menuBar()->addAction(tr("File"));
63 auto mainToolBar = this->addToolBar("MainToolBar");
159 auto mainToolBar = this->addToolBar(QStringLiteral("MainToolBar"));
64 mainToolBar->addAction("A1");
160 mainToolBar->addAction(QStringLiteral("A1"));
65
161
66 // Widgets / controllers connections
162 // Widgets / controllers connections
67 connect(&sqpApp->dataSourceController(), SIGNAL(dataSourceItemSet(DataSourceItem *)),
163 connect(&sqpApp->dataSourceController(), SIGNAL(dataSourceItemSet(DataSourceItem *)),
68 m_Ui->dataSourceWidget, SLOT(addDataSource(DataSourceItem *)));
164 m_Ui->dataSourceWidget, SLOT(addDataSource(DataSourceItem *)));
69
165
70 /* QLopGUI::registerMenuBar(menuBar());
166 /* QLopGUI::registerMenuBar(menuBar());
71 this->setWindowIcon(QIcon(":/sciqlopLOGO.svg"));
167 this->setWindowIcon(QIcon(":/sciqlopLOGO.svg"));
72 this->m_progressWidget = new QWidget();
168 this->m_progressWidget = new QWidget();
73 this->m_progressLayout = new QVBoxLayout(this->m_progressWidget);
169 this->m_progressLayout = new QVBoxLayout(this->m_progressWidget);
74 this->m_progressWidget->setLayout(this->m_progressLayout);
170 this->m_progressWidget->setLayout(this->m_progressLayout);
75 this->m_progressWidget->setWindowModality(Qt::WindowModal);
171 this->m_progressWidget->setWindowModality(Qt::WindowModal);
76 m_progressThreadIds = (int*) malloc(OMP_THREADS*sizeof(int));
172 m_progressThreadIds = (int*) malloc(OMP_THREADS*sizeof(int));
77 for(int i=0;i<OMP_THREADS;i++)
173 for(int i=0;i<OMP_THREADS;i++)
78 {
174 {
79 this->m_progress.append(new QProgressBar(this->m_progressWidget));
175 this->m_progress.append(new QProgressBar(this->m_progressWidget));
80 this->m_progress.last()->setMinimum(0);
176 this->m_progress.last()->setMinimum(0);
81 this->m_progress.last()->setMaximum(100);
177 this->m_progress.last()->setMaximum(100);
82 this->m_progressLayout->addWidget(this->m_progress.last());
178 this->m_progressLayout->addWidget(this->m_progress.last());
83 this->m_progressWidget->hide();
179 this->m_progressWidget->hide();
84 this->m_progressThreadIds[i] = -1;
180 this->m_progressThreadIds[i] = -1;
85 }
181 }
86 this->m_progressWidget->setWindowTitle("Loading File");
182 this->m_progressWidget->setWindowTitle("Loading File");
87 const QList<QLopService*>ServicesToLoad=QList<QLopService*>()
183 const QList<QLopService*>ServicesToLoad=QList<QLopService*>()
88 << QLopCore::self()
184 << QLopCore::self()
89 << QLopPlotManager::self()
185 << QLopPlotManager::self()
90 << QLopCodecManager::self()
186 << QLopCodecManager::self()
91 << FileDownloader::self()
187 << FileDownloader::self()
92 << QLopDataBase::self()
188 << QLopDataBase::self()
93 << SpaceData::self();
189 << SpaceData::self();
94
190
95 CDFCodec::registerToManager();
191 CDFCodec::registerToManager();
96 AMDATXTCodec::registerToManager();
192 AMDATXTCodec::registerToManager();
97
193
98
194
99 for(int i=0;i<ServicesToLoad.count();i++)
195 for(int i=0;i<ServicesToLoad.count();i++)
100 {
196 {
101 qDebug()<<ServicesToLoad.at(i)->serviceName();
197 qDebug()<<ServicesToLoad.at(i)->serviceName();
102 ServicesToLoad.at(i)->initialize(); //must be called before getGUI
198 ServicesToLoad.at(i)->initialize(); //must be called before getGUI
103 QDockWidget* wdgt=ServicesToLoad.at(i)->getGUI();
199 QDockWidget* wdgt=ServicesToLoad.at(i)->getGUI();
104 if(wdgt)
200 if(wdgt)
105 {
201 {
106 wdgt->setAllowedAreas(Qt::AllDockWidgetAreas);
202 wdgt->setAllowedAreas(Qt::AllDockWidgetAreas);
107 this->addDockWidget(Qt::TopDockWidgetArea,wdgt);
203 this->addDockWidget(Qt::TopDockWidgetArea,wdgt);
108 }
204 }
109 PythonQt::self()->getMainModule().addObject(ServicesToLoad.at(i)->serviceName(),(QObject*)ServicesToLoad.at(i));
205 PythonQt::self()->getMainModule().addObject(ServicesToLoad.at(i)->serviceName(),(QObject*)ServicesToLoad.at(i));
110 }*/
206 }*/
111 }
207 }
112
208
113 MainWindow::~MainWindow()
209 MainWindow::~MainWindow()
114 {
210 {
115 }
211 }
116
212
117
213
118 void MainWindow::changeEvent(QEvent *e)
214 void MainWindow::changeEvent(QEvent *e)
119 {
215 {
120 QMainWindow::changeEvent(e);
216 QMainWindow::changeEvent(e);
121 switch (e->type()) {
217 switch (e->type()) {
122 case QEvent::LanguageChange:
218 case QEvent::LanguageChange:
123 m_Ui->retranslateUi(this);
219 m_Ui->retranslateUi(this);
124 break;
220 break;
125 default:
221 default:
126 break;
222 break;
127 }
223 }
128 }
224 }
@@ -1,214 +1,158
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
2 <ui version="4.0">
3 <class>MainWindow</class>
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
5 <property name="geometry">
6 <rect>
6 <rect>
7 <x>0</x>
7 <x>0</x>
8 <y>0</y>
8 <y>0</y>
9 <width>800</width>
9 <width>800</width>
10 <height>600</height>
10 <height>600</height>
11 </rect>
11 </rect>
12 </property>
12 </property>
13 <property name="windowTitle">
13 <property name="windowTitle">
14 <string>QLop</string>
14 <string>QLop</string>
15 </property>
15 </property>
16 <property name="dockNestingEnabled">
16 <property name="dockNestingEnabled">
17 <bool>true</bool>
17 <bool>true</bool>
18 </property>
18 </property>
19 <widget class="QWidget" name="centralWidget">
19 <widget class="QWidget" name="centralWidget">
20 <property name="enabled">
20 <property name="enabled">
21 <bool>true</bool>
21 <bool>true</bool>
22 </property>
22 </property>
23 <property name="sizePolicy">
23 <property name="sizePolicy">
24 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
24 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
25 <horstretch>0</horstretch>
25 <horstretch>0</horstretch>
26 <verstretch>0</verstretch>
26 <verstretch>0</verstretch>
27 </sizepolicy>
27 </sizepolicy>
28 </property>
28 </property>
29 <property name="maximumSize">
29 <property name="maximumSize">
30 <size>
30 <size>
31 <width>16777215</width>
31 <width>16777215</width>
32 <height>16777215</height>
32 <height>16777215</height>
33 </size>
33 </size>
34 </property>
34 </property>
35 <layout class="QHBoxLayout" name="horizontalLayout">
35 <layout class="QHBoxLayout" name="horizontalLayout">
36 <property name="spacing">
36 <property name="spacing">
37 <number>3</number>
38 </property>
39 <property name="leftMargin">
40 <number>0</number>
41 </property>
42 <property name="topMargin">
43 <number>0</number>
44 </property>
45 <property name="rightMargin">
46 <number>0</number>
37 <number>0</number>
47 </property>
38 </property>
48 <property name="bottomMargin">
49 <number>0</number>
50 </property>
51 <item>
52 <widget class="QWidget" name="leftInspectorWidget" native="true">
53 <layout class="QHBoxLayout" name="horizontalLayout_2">
54 <property name="spacing">
55 <number>3</number>
56 </property>
57 <property name="leftMargin">
39 <property name="leftMargin">
58 <number>0</number>
40 <number>0</number>
59 </property>
41 </property>
60 <property name="topMargin">
42 <property name="topMargin">
61 <number>0</number>
43 <number>0</number>
62 </property>
44 </property>
63 <property name="rightMargin">
45 <property name="rightMargin">
64 <number>0</number>
46 <number>0</number>
65 </property>
47 </property>
66 <property name="bottomMargin">
48 <property name="bottomMargin">
67 <number>0</number>
49 <number>0</number>
68 </property>
50 </property>
69 <item>
51 <item>
70 <widget class="QWidget" name="widget" native="true">
52 <widget class="QSplitter" name="splitter">
53 <property name="orientation">
54 <enum>Qt::Horizontal</enum>
55 </property>
56 <widget class="QWidget" name="leftMainInspectorWidget" native="true">
71 <layout class="QVBoxLayout" name="verticalLayout">
57 <layout class="QVBoxLayout" name="verticalLayout">
72 <property name="spacing">
58 <property name="spacing">
73 <number>3</number>
59 <number>0</number>
74 </property>
60 </property>
75 <property name="leftMargin">
61 <property name="leftMargin">
76 <number>0</number>
62 <number>0</number>
77 </property>
63 </property>
78 <property name="topMargin">
64 <property name="topMargin">
79 <number>0</number>
65 <number>0</number>
80 </property>
66 </property>
81 <property name="rightMargin">
67 <property name="rightMargin">
82 <number>0</number>
68 <number>0</number>
83 </property>
69 </property>
84 <property name="bottomMargin">
70 <property name="bottomMargin">
85 <number>0</number>
71 <number>0</number>
86 </property>
72 </property>
87 <item>
73 <item>
88 <widget class="DataSourceWidget" name="dataSourceWidget" native="true"/>
74 <widget class="DataSourceWidget" name="dataSourceWidget" native="true"/>
89 </item>
75 </item>
90 <item>
76 <item>
91 <widget class="QWidget" name="dateTimeWidget" native="true"/>
77 <widget class="QWidget" name="dateTimeWidget" native="true"/>
92 </item>
78 </item>
93 <item>
79 <item>
94 <widget class="QWidget" name="variableInspectorWidget" native="true"/>
80 <widget class="QWidget" name="variableInspectorWidget" native="true"/>
95 </item>
81 </item>
96 </layout>
82 </layout>
97 </widget>
83 </widget>
98 </item>
84 <widget class="SqpSidePane" name="leftInspectorSidePane" native="true"/>
99 <item>
85 <widget class="VisualizationWidget" name="view" native="true">
100 <widget class="SqpSidePane" name="leftInspectorSidePane" native="true">
86 <property name="sizePolicy">
101 <layout class="QVBoxLayout" name="verticalLayout_2">
87 <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
102 <property name="spacing">
88 <horstretch>0</horstretch>
103 <number>3</number>
89 <verstretch>0</verstretch>
104 </property>
90 </sizepolicy>
105 <property name="leftMargin">
106 <number>0</number>
107 </property>
108 <property name="topMargin">
109 <number>0</number>
110 </property>
111 <property name="rightMargin">
112 <number>0</number>
113 </property>
114 <property name="bottomMargin">
115 <number>0</number>
116 </property>
91 </property>
117 </layout>
118 </widget>
92 </widget>
119 </item>
120 </layout>
121 </widget>
122 </item>
123 <item>
124 <widget class="VisualizationWidget" name="view" native="true"/>
125 </item>
126 <item>
127 <widget class="QWidget" name="rightInspectorWidget" native="true">
128 <layout class="QHBoxLayout" name="horizontalLayout_3">
129 <property name="spacing">
130 <number>3</number>
131 </property>
132 <property name="leftMargin">
133 <number>0</number>
134 </property>
135 <property name="topMargin">
136 <number>0</number>
137 </property>
138 <property name="rightMargin">
139 <number>0</number>
140 </property>
141 <property name="bottomMargin">
142 <number>0</number>
143 </property>
144 <item>
145 <widget class="SqpSidePane" name="rightInspectorSidePane" native="true"/>
93 <widget class="SqpSidePane" name="rightInspectorSidePane" native="true"/>
146 </item>
94 <widget class="QWidget" name="rightMainInspectorWidget" native="true">
147 <item>
148 <widget class="QWidget" name="widget_2" native="true">
149 <layout class="QVBoxLayout" name="verticalLayout_3">
95 <layout class="QVBoxLayout" name="verticalLayout_3">
150 <property name="spacing">
96 <property name="spacing">
151 <number>3</number>
97 <number>0</number>
152 </property>
98 </property>
153 <property name="leftMargin">
99 <property name="leftMargin">
154 <number>0</number>
100 <number>0</number>
155 </property>
101 </property>
156 <property name="topMargin">
102 <property name="topMargin">
157 <number>0</number>
103 <number>0</number>
158 </property>
104 </property>
159 <property name="rightMargin">
105 <property name="rightMargin">
160 <number>0</number>
106 <number>0</number>
161 </property>
107 </property>
162 <property name="bottomMargin">
108 <property name="bottomMargin">
163 <number>0</number>
109 <number>0</number>
164 </property>
110 </property>
165 <item>
111 <item>
166 <widget class="QWidget" name="commonPropertyInspectorWidget" native="true"/>
112 <widget class="QWidget" name="commonPropertyInspectorWidget" native="true"/>
167 </item>
113 </item>
168 <item>
114 <item>
169 <widget class="QWidget" name="catalogWidget" native="true"/>
115 <widget class="DataSourceWidget" name="catalogWidget" native="true"/>
170 </item>
116 </item>
171 </layout>
117 </layout>
172 </widget>
118 </widget>
173 </item>
174 </layout>
175 </widget>
119 </widget>
176 </item>
120 </item>
177 </layout>
121 </layout>
178 </widget>
122 </widget>
179 <widget class="QMenuBar" name="menuBar">
123 <widget class="QMenuBar" name="menuBar">
180 <property name="geometry">
124 <property name="geometry">
181 <rect>
125 <rect>
182 <x>0</x>
126 <x>0</x>
183 <y>0</y>
127 <y>0</y>
184 <width>800</width>
128 <width>800</width>
185 <height>26</height>
129 <height>28</height>
186 </rect>
130 </rect>
187 </property>
131 </property>
188 </widget>
132 </widget>
189 <widget class="QStatusBar" name="statusBar"/>
133 <widget class="QStatusBar" name="statusBar"/>
190 </widget>
134 </widget>
191 <layoutdefault spacing="6" margin="11"/>
135 <layoutdefault spacing="6" margin="11"/>
192 <customwidgets>
136 <customwidgets>
193 <customwidget>
137 <customwidget>
194 <class>VisualizationWidget</class>
138 <class>VisualizationWidget</class>
195 <extends>QWidget</extends>
139 <extends>QWidget</extends>
196 <header location="global">Visualization/VisualizationWidget.h</header>
140 <header location="global">Visualization/VisualizationWidget.h</header>
197 <container>1</container>
141 <container>1</container>
198 </customwidget>
142 </customwidget>
199 <customwidget>
143 <customwidget>
200 <class>SqpSidePane</class>
144 <class>SqpSidePane</class>
201 <extends>QWidget</extends>
145 <extends>QWidget</extends>
202 <header location="global">SidePane/SqpSidePane.h</header>
146 <header location="global">SidePane/SqpSidePane.h</header>
203 <container>1</container>
147 <container>1</container>
204 </customwidget>
148 </customwidget>
205 <customwidget>
149 <customwidget>
206 <class>DataSourceWidget</class>
150 <class>DataSourceWidget</class>
207 <extends>QWidget</extends>
151 <extends>QWidget</extends>
208 <header location="global">DataSource/DataSourceWidget.h</header>
152 <header location="global">DataSource/DataSourceWidget.h</header>
209 <container>1</container>
153 <container>1</container>
210 </customwidget>
154 </customwidget>
211 </customwidgets>
155 </customwidgets>
212 <resources/>
156 <resources/>
213 <connections/>
157 <connections/>
214 </ui>
158 </ui>
@@ -1,60 +1,67
1 #
1 #
2 # Sciqlop_modules.cmake
2 # Sciqlop_modules.cmake
3 #
3 #
4 # Set ouptut directories
4 # Set ouptut directories
5 #
5 #
6 SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
6 SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
7 SET (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
7 SET (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
8 IF (UNIX)
8 IF (UNIX)
9 SET (CONFIG_OUTPUT_PATH $ENV{HOME}/.config/QtProject)
9 SET (CONFIG_OUTPUT_PATH $ENV{HOME}/.config/QtProject)
10 ELSEIF(WIN32)
10 ELSEIF(WIN32)
11 SET (CONFIG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist/app/QtProject)
11 SET (CONFIG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist/app/QtProject)
12 ELSE()
12 ELSE()
13 SET (CONFIG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
13 SET (CONFIG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/dist)
14 ENDIF()
14 ENDIF()
15
15
16 if(BUILD_TESTS)
16 if(BUILD_TESTS)
17 INCLUDE ("cmake/sciqlop_code_coverage.cmake")
17 INCLUDE ("cmake/sciqlop_code_coverage.cmake")
18 APPEND_COVERAGE_COMPILER_FLAGS()
18 APPEND_COVERAGE_COMPILER_FLAGS()
19 endif(BUILD_TESTS)
19 endif(BUILD_TESTS)
20
20
21 #
21 #
22 # Compile the diffents modules
22 # Compile the diffents modules
23 #
23 #
24 set(sciqlop-plugin_DIR "${CMAKE_SOURCE_DIR}/plugin/cmake")
24 set(sciqlop-plugin_DIR "${CMAKE_SOURCE_DIR}/plugin/cmake")
25 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-plugin_DIR}")
25 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-plugin_DIR}")
26 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/plugin")
26 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/plugin")
27
27
28 set(sciqlop-core_DIR "${CMAKE_SOURCE_DIR}/core/cmake")
28 set(sciqlop-core_DIR "${CMAKE_SOURCE_DIR}/core/cmake")
29 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-core_DIR}")
29 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-core_DIR}")
30 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/core")
30 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/core")
31
31
32 set(sciqlop-gui_DIR "${CMAKE_SOURCE_DIR}/gui/cmake")
32 set(sciqlop-gui_DIR "${CMAKE_SOURCE_DIR}/gui/cmake")
33 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-gui_DIR}")
33 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-gui_DIR}")
34 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/gui")
34 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/gui")
35
35
36 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/app")
36 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/app")
37
37
38 OPTION (BUILD_PLUGINS "Build the plugins" OFF)
39 IF(BUILD_PLUGINS)
40 set(sciqlop-mockplugin_DIR "${CMAKE_SOURCE_DIR}/plugins/mockplugin/cmake")
41 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${sciqlop-mockplugin_DIR}")
42 ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/plugins/mockplugin")
43 ENDIF(BUILD_PLUGINS)
44
38 # LOGGER
45 # LOGGER
39 set(QTLOGGING_INI_FILE "${CMAKE_SOURCE_DIR}/config/QtProject/qtlogging.ini")
46 set(QTLOGGING_INI_FILE "${CMAKE_SOURCE_DIR}/config/QtProject/qtlogging.ini")
40 FILE(COPY ${QTLOGGING_INI_FILE} DESTINATION ${CONFIG_OUTPUT_PATH})
47 FILE(COPY ${QTLOGGING_INI_FILE} DESTINATION ${CONFIG_OUTPUT_PATH})
41
48
42
49
43 #
50 #
44 # Code formatting
51 # Code formatting
45 #
52 #
46 # Vera++ exclusion files
53 # Vera++ exclusion files
47 LIST(APPEND CHECKSTYLE_EXCLUSION_FILES ${CMAKE_CURRENT_SOURCE_DIR}/formatting/vera-exclusions/exclusions.txt)
54 LIST(APPEND CHECKSTYLE_EXCLUSION_FILES ${CMAKE_CURRENT_SOURCE_DIR}/formatting/vera-exclusions/exclusions.txt)
48 #SCIQLOP_SET_TO_PARENT_SCOPE(CHECKSTYLE_EXCLUSION_FILES)
55 #SCIQLOP_SET_TO_PARENT_SCOPE(CHECKSTYLE_EXCLUSION_FILES)
49 INCLUDE ("cmake/sciqlop_formatting.cmake")
56 INCLUDE ("cmake/sciqlop_formatting.cmake")
50
57
51 #
58 #
52 # Documentation generation
59 # Documentation generation
53 #
60 #
54 INCLUDE ("cmake/sciqlop_doxygen.cmake")
61 INCLUDE ("cmake/sciqlop_doxygen.cmake")
55
62
56 #
63 #
57 # Source code analysis
64 # Source code analysis
58 #
65 #
59 INCLUDE ("cmake/sciqlop_code_analysis.cmake")
66 INCLUDE ("cmake/sciqlop_code_analysis.cmake")
60 INCLUDE ("cmake/sciqlop_code_cppcheck.cmake")
67 INCLUDE ("cmake/sciqlop_code_cppcheck.cmake")
@@ -1,47 +1,54
1 #include "SidePane/SqpSidePane.h"
1 #include "SidePane/SqpSidePane.h"
2 #include "ui_SqpSidePane.h"
2 #include "ui_SqpSidePane.h"
3
3
4 #include <QAction>
4 #include <QAction>
5 #include <QLayout>
5 #include <QLayout>
6 #include <QToolBar>
6 #include <QToolBar>
7
7
8 namespace {
8 namespace {
9 static const QString SQPSIDEPANESTYLESHEET
9 static const QString SQPSIDEPANESTYLESHEET
10 = "QToolBar {"
10 = "QToolBar {"
11 " background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,"
11 " background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,"
12 " stop: 0.0 #5a5a5a,"
12 " stop: 0.0 #5a5a5a,"
13 " stop: 1.0 #414141);"
13 " stop: 1.0 #414141);"
14 " border: none;"
14 " border: none;"
15 " border-left: 1px solid #424242;"
15 " border-left: 1px solid #424242;"
16 "border-right: 1px solid #393939;"
16 "border-right: 1px solid #393939;"
17 " }"
17 " }"
18
18
19 " QToolButton {"
19 " QToolButton {"
20 "background: none;"
20 "background: none;"
21 "border: none;"
21 "border: none;"
22 " }";
22 " }";
23 }
23 }
24
24
25 SqpSidePane::SqpSidePane(QWidget *parent) : QWidget{parent}, ui{new Ui::SqpSidePane}
25 SqpSidePane::SqpSidePane(QWidget *parent) : QWidget{parent}, ui{new Ui::SqpSidePane}
26 {
26 {
27 QVBoxLayout *sidePaneLayout = new QVBoxLayout(this);
27 // QVBoxLayout *sidePaneLayout = new QVBoxLayout(this);
28 sidePaneLayout->setContentsMargins(0, 0, 0, 0);
28 // sidePaneLayout->setContentsMargins(0, 0, 0, 0);
29 this->setLayout(sidePaneLayout);
29 // this->setLayout(sidePaneLayout);
30
30
31 ui->setupUi(this);
31 ui->setupUi(this);
32 m_SidePaneToolbar = new QToolBar(this);
32 m_SidePaneToolbar = new QToolBar();
33 m_SidePaneToolbar->setOrientation(Qt::Vertical);
33 m_SidePaneToolbar->setOrientation(Qt::Vertical);
34 sidePaneLayout->addWidget(m_SidePaneToolbar);
34 this->layout()->addWidget(m_SidePaneToolbar);
35
35
36 m_SidePaneToolbar->setStyleSheet(SQPSIDEPANESTYLESHEET);
36 m_SidePaneToolbar->setStyleSheet(SQPSIDEPANESTYLESHEET);
37
38 this->setStyleSheet(
39 " QWidget {"
40 "background: red;"
41
42 "border: 1px;"
43 " }");
37 }
44 }
38
45
39 SqpSidePane::~SqpSidePane()
46 SqpSidePane::~SqpSidePane()
40 {
47 {
41 delete ui;
48 delete ui;
42 }
49 }
43
50
44 QToolBar *SqpSidePane::sidePane()
51 QToolBar *SqpSidePane::sidePane()
45 {
52 {
46 return m_SidePaneToolbar;
53 return m_SidePaneToolbar;
47 }
54 }
@@ -1,43 +1,43
1 #include "Visualization/VisualizationWidget.h"
1 #include "Visualization/VisualizationWidget.h"
2 #include "Visualization/VisualizationTabWidget.h"
2 #include "Visualization/VisualizationTabWidget.h"
3 #include "ui_VisualizationWidget.h"
3 #include "ui_VisualizationWidget.h"
4
4
5 #include <QDebug>
5 #include <QDebug>
6 #include <QToolButton>
6 #include <QToolButton>
7
7
8 #include "iostream"
8 #include "iostream"
9
9
10 Q_LOGGING_CATEGORY(LOG_VisualizationWidget, "VisualizationWidget")
10 Q_LOGGING_CATEGORY(LOG_VisualizationWidget, "VisualizationWidget")
11
11
12 VisualizationWidget::VisualizationWidget(QWidget *parent)
12 VisualizationWidget::VisualizationWidget(QWidget *parent)
13 : QWidget{parent}, ui{new Ui::VisualizationWidget}
13 : QWidget{parent}, ui{new Ui::VisualizationWidget}
14 {
14 {
15 ui->setupUi(this);
15 ui->setupUi(this);
16
16
17 auto addTabViewButton = new QToolButton{ui->tabWidget};
17 auto addTabViewButton = new QToolButton{ui->tabWidget};
18 addTabViewButton->setText(tr("Add View"));
18 addTabViewButton->setText(tr("Add View"));
19 addTabViewButton->setCursor(Qt::ArrowCursor);
19 addTabViewButton->setCursor(Qt::ArrowCursor);
20 addTabViewButton->setAutoRaise(true);
20 addTabViewButton->setAutoRaise(true);
21 ui->tabWidget->setCornerWidget(addTabViewButton, Qt::TopRightCorner);
21 ui->tabWidget->setCornerWidget(addTabViewButton, Qt::TopRightCorner);
22
22
23 auto addTabView = [&](bool checked) {
23 auto addTabView = [&]() {
24 auto index = ui->tabWidget->addTab(new VisualizationTabWidget(ui->tabWidget),
24 auto index = ui->tabWidget->addTab(new VisualizationTabWidget(ui->tabWidget),
25 QString("View %1").arg(ui->tabWidget->count() + 1));
25 QString("View %1").arg(ui->tabWidget->count() + 1));
26 qCInfo(LOG_VisualizationWidget()) << tr("add the tab of index %1").arg(index);
26 qCInfo(LOG_VisualizationWidget()) << tr("add the tab of index %1").arg(index);
27 };
27 };
28
28
29 auto removeTabView = [&](int index) {
29 auto removeTabView = [&](int index) {
30 ui->tabWidget->removeTab(index);
30 ui->tabWidget->removeTab(index);
31 qCInfo(LOG_VisualizationWidget()) << tr("remove the tab of index %1").arg(index);
31 qCInfo(LOG_VisualizationWidget()) << tr("remove the tab of index %1").arg(index);
32 };
32 };
33
33
34 ui->tabWidget->setTabsClosable(true);
34 ui->tabWidget->setTabsClosable(true);
35
35
36 connect(addTabViewButton, &QToolButton::clicked, addTabView);
36 connect(addTabViewButton, &QToolButton::clicked, addTabView);
37 connect(ui->tabWidget, &QTabWidget::tabCloseRequested, removeTabView);
37 connect(ui->tabWidget, &QTabWidget::tabCloseRequested, removeTabView);
38 }
38 }
39
39
40 VisualizationWidget::~VisualizationWidget()
40 VisualizationWidget::~VisualizationWidget()
41 {
41 {
42 delete ui;
42 delete ui;
43 }
43 }
@@ -1,24 +1,42
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
2 <ui version="4.0">
3 <class>DataSourceWidget</class>
3 <class>DataSourceWidget</class>
4 <widget class="QWidget" name="DataSourceWidget">
4 <widget class="QWidget" name="DataSourceWidget">
5 <property name="geometry">
5 <property name="geometry">
6 <rect>
6 <rect>
7 <x>0</x>
7 <x>0</x>
8 <y>0</y>
8 <y>0</y>
9 <width>400</width>
9 <width>400</width>
10 <height>300</height>
10 <height>300</height>
11 </rect>
11 </rect>
12 </property>
12 </property>
13 <property name="windowTitle">
13 <property name="windowTitle">
14 <string>Data sources</string>
14 <string>Data sources</string>
15 </property>
15 </property>
16 <layout class="QGridLayout" name="gridLayout">
16 <layout class="QGridLayout" name="gridLayout">
17 <property name="topMargin">
18 <number>0</number>
19 </property>
20 <property name="rightMargin">
21 <number>0</number>
22 </property>
23 <property name="bottomMargin">
24 <number>0</number>
25 </property>
26 <property name="spacing">
27 <number>0</number>
28 </property>
17 <item row="0" column="0">
29 <item row="0" column="0">
18 <widget class="QTreeWidget" name="treeWidget"/>
30 <widget class="QTreeWidget" name="treeWidget">
31 <column>
32 <property name="text">
33 <string notr="true">1</string>
34 </property>
35 </column>
36 </widget>
19 </item>
37 </item>
20 </layout>
38 </layout>
21 </widget>
39 </widget>
22 <resources/>
40 <resources/>
23 <connections/>
41 <connections/>
24 </ui>
42 </ui>
@@ -1,21 +1,42
1 <?xml version="1.0" encoding="UTF-8"?>
1 <ui version="4.0">
2 <ui version="4.0">
2 <author/>
3 <comment/>
4 <exportmacro/>
5 <class>SqpSidePane</class>
3 <class>SqpSidePane</class>
6 <widget name="SqpSidePane" class="QWidget">
4 <widget class="QWidget" name="SqpSidePane">
7 <property name="geometry">
5 <property name="geometry">
8 <rect>
6 <rect>
9 <x>0</x>
7 <x>0</x>
10 <y>0</y>
8 <y>0</y>
11 <width>400</width>
9 <width>12</width>
12 <height>300</height>
10 <height>12</height>
13 </rect>
11 </rect>
14 </property>
12 </property>
13 <property name="maximumSize">
14 <size>
15 <width>45</width>
16 <height>16777215</height>
17 </size>
18 </property>
15 <property name="windowTitle">
19 <property name="windowTitle">
16 <string>Form</string>
20 <string>Form</string>
17 </property>
21 </property>
22 <layout class="QVBoxLayout" name="verticalLayout_2">
23 <property name="spacing">
24 <number>0</number>
25 </property>
26 <property name="leftMargin">
27 <number>0</number>
28 </property>
29 <property name="topMargin">
30 <number>0</number>
31 </property>
32 <property name="rightMargin">
33 <number>0</number>
34 </property>
35 <property name="bottomMargin">
36 <number>0</number>
37 </property>
38 </layout>
18 </widget>
39 </widget>
19 <pixmapfunction/>
40 <resources/>
20 <connections/>
41 <connections/>
21 </ui>
42 </ui>
General Comments 0
You need to be logged in to leave comments. Login now