swift
swiftdatamenus.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include <QAction>
5 #include <QDir>
6 #include <QMenu>
7 #include <QObject>
8 #include <QScopedPointer>
9 #include <QString>
10 #include <QtGlobal>
11 
12 #include "ui_swiftdata.h"
13 
17 #include "gui/guiapplication.h"
18 #include "misc/directoryutils.h"
19 #include "misc/icons.h"
20 #include "misc/swiftdirectories.h"
21 #include "swiftdata.h"
22 
23 using namespace swift::gui;
24 using namespace swift::core;
25 using namespace swift::gui::components;
26 using namespace swift::misc;
27 
28 void CSwiftData::onMenuClicked()
29 {
30  QObject *sender = QObject::sender();
31  if (sender == ui->menu_WindowFont)
32  {
33  // this->ps_setMainPageToInfoArea();
34  // ui->comp_MainInfoArea->selectSettingsTab(swift::gui::components::CSettingsComponent::SettingTabGui);
35  }
36  else if (sender == ui->menu_MappingMaxData)
37  {
38  CDbMappingComponent *mappingComponent = ui->comp_MainInfoArea->getMappingComponent();
39  mappingComponent->resizeForSelect();
40  }
41  else if (sender == ui->menu_MappingMaxMapping)
42  {
43  CDbMappingComponent *mappingComponent = ui->comp_MainInfoArea->getMappingComponent();
44  mappingComponent->resizeForMapping();
45  }
46 }
47 
48 void CSwiftData::initDynamicMenus()
49 {
50  Q_ASSERT_X(ui->menu_InfoAreas, Q_FUNC_INFO, "missing info areas");
51  Q_ASSERT_X(ui->comp_MainInfoArea, Q_FUNC_INFO, "missing main area");
52  ui->menu_InfoAreas->addActions(ui->comp_MainInfoArea->getInfoAreaSelectActions(true, ui->menu_InfoAreas));
53 
54  // menu entry for auto publish data
55  ui->menu_Mapping->addAction(CIcons::database16(), "Auto publish data", this, &CSwiftData::showAutoPublishing);
56 
57  QString resourceDir(CSwiftDirectories::shareDirectory());
58  if (!resourceDir.isEmpty() && QDir(resourceDir).exists())
59  {
60  Q_ASSERT_X(ui->comp_MainInfoArea, Q_FUNC_INFO, "Missing main info area");
61  Q_ASSERT_X(ui->comp_MainInfoArea->getDataInfoAreaComponent(), Q_FUNC_INFO, "Missing DB info area");
62  ui->menu_Mapping->addAction(CIcons::database16(), "Load all DB data",
63  ui->comp_MainInfoArea->getDataInfoAreaComponent(),
64  &CDataInfoAreaComponent::requestUpdateOfAllDbData);
65  ui->menu_Mapping->addAction(CIcons::load16(), "Load DB test data from disk",
66  ui->comp_MainInfoArea->getDataInfoAreaComponent(),
67  &CDataInfoAreaComponent::readDbDataFromResourceDir);
68  if (sGui->isDeveloperFlagSet())
69  {
70  ui->menu_Mapping->addAction(CIcons::save16(), "Save DB test data to disk",
71  ui->comp_MainInfoArea->getDataInfoAreaComponent(),
72  &CDataInfoAreaComponent::writeDbDataToResourceDir);
73  }
74  }
75 }
bool isDeveloperFlagSet() const
Running with dev.flag?
Definition: application.h:173
void resizeForMapping()
Resize so that mapping is easier.
void resizeForSelect()
Resize so that selection is easy (larger table view)
SWIFT_GUI_EXPORT swift::gui::CGuiApplication * sGui
Single instance of GUI application object.
Backend services of the swift project, like dealing with the network or the simulators.
Definition: actionbind.cpp:7
High level reusable GUI components.
Definition: aboutdialog.cpp:13
GUI related classes.
Free functions in swift::misc.