WSF
NewFilePrefObject.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2019 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WIZARD_NEW_FILE_PREF_OBJECT_HPP
13#define WIZARD_NEW_FILE_PREF_OBJECT_HPP
14
15#include "ViExport.hpp"
16#include "WkfPrefObject.hpp"
17
18namespace wizard
19{
21{
22 std::string mName;
23 std::string mText;
24 bool mEnableComment = true;
25 bool mEnableMacros = true;
26};
27
29{
34
35 std::vector<HeadingData> mData;
36};
37
39{
40 using iterator = typename std::vector<HeadingData>::const_iterator;
43
44 iterator begin() const noexcept { return mBegin; }
45 iterator end() const noexcept { return mEnd; }
46};
47
48class VI_EXPORT NewFilePrefObject : public wkf::PrefObjectT<NewFilePrefData>
49{
50 Q_OBJECT
51public:
52 static constexpr const char* cNAME = "NewFileOptions";
53
54 NewFilePrefObject(QObject* aParent = nullptr);
55 ~NewFilePrefObject() noexcept override = default;
56
57 void Apply() override;
58
59 // Copy-move
61
62 NewFilePrefData ReadSettings(QSettings& aSettings) const override;
63 void SaveSettingsP(QSettings& aSettings) const override;
64
65 int GetHeadingCount() const noexcept;
66
67 HeadingData* GetHeading(const std::string& aName);
68 const HeadingData* GetHeading(const std::string& aName) const;
69
71 void RemoveHeading(const std::string& aName);
72
73 void SortList();
74
75 NewFileDataRange Data() const;
76
78 const HeadingData* First() const;
79};
80} // namespace wizard
81
83
84#endif
Q_DECLARE_METATYPE(wizard::ProjectWorkspace *)
#define VI_EXPORT
Definition ViExport.hpp:38
void SortList()
Definition NewFilePrefObject.cpp:133
void SaveSettingsP(QSettings &aSettings) const override
Definition NewFilePrefObject.cpp:66
void Apply() override
Definition NewFilePrefObject.cpp:28
NewFilePrefData ReadSettings(QSettings &aSettings) const override
Definition NewFilePrefObject.cpp:38
void SetPreferences(NewFilePrefData aData)
Definition NewFilePrefObject.cpp:33
NewFilePrefObject(QObject *aParent=nullptr)
Definition NewFilePrefObject.cpp:23
HeadingData & AddHeading()
Definition NewFilePrefObject.cpp:112
static constexpr const char * cNAME
Definition NewFilePrefObject.hpp:52
HeadingData * GetHeading(const std::string &aName)
Definition NewFilePrefObject.cpp:88
int GetHeadingCount() const noexcept
Definition NewFilePrefObject.cpp:83
NewFileDataRange Data() const
Definition NewFilePrefObject.cpp:162
HeadingData * First()
Definition NewFilePrefObject.cpp:167
~NewFilePrefObject() noexcept override=default
void RemoveHeading(const std::string &aName)
Definition NewFilePrefObject.cpp:118
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Definition Runner.hpp:22
Definition NewFilePrefObject.hpp:21
bool mEnableMacros
Definition NewFilePrefObject.hpp:25
std::string mText
Definition NewFilePrefObject.hpp:23
std::string mName
Definition NewFilePrefObject.hpp:22
bool mEnableComment
Definition NewFilePrefObject.hpp:24
Definition NewFilePrefObject.hpp:39
typename std::vector< HeadingData >::const_iterator iterator
Definition NewFilePrefObject.hpp:40
iterator mEnd
Definition NewFilePrefObject.hpp:42
iterator begin() const noexcept
Definition NewFilePrefObject.hpp:44
iterator mBegin
Definition NewFilePrefObject.hpp:41
iterator end() const noexcept
Definition NewFilePrefObject.hpp:45
Definition NewFilePrefObject.hpp:29
std::vector< HeadingData > mData
Definition NewFilePrefObject.hpp:35
NewFilePrefData()
Definition NewFilePrefObject.cpp:16
Copyrights Multiple, All Rights Reserved