~ubuntu-branches/ubuntu/vivid/mygui/vivid

« back to all changes in this revision

Viewing changes to Tools/LayoutEditor/RecentFilesManager.cpp

  • Committer: Package Import Robot
  • Author(s): Scott Howard, Bret Curtis, Scott Howard
  • Date: 2014-09-18 17:57:48 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20140918175748-dd8va78mvpw1jbes
Tags: 3.2.1-1
[ Bret Curtis ]
* Updated license for majority of files from LGPL to Expat (MIT)

[ Scott Howard ]
* New upstream release
* Updated patch to add build option for system GLEW libraries
* All patches accepted upstream except shared_libraries.patch
* Bumped SONAME due to dropped symbols, updated *.symbols and package
  names
* Updated license of debian/* to Expat with permission of all authors
* Don't install Doxygen autogenerated md5 and map files (thanks
  lintian)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*!
2
 
        @file
3
 
        @author         Albert Semenov
4
 
        @date           08/2010
5
 
*/
6
 
#include "Precompiled.h"
7
 
#include "RecentFilesManager.h"
8
 
#include "SettingsManager.h"
9
 
#include "FileSystemInfo/FileSystemInfo.h"
10
 
 
11
 
template <> tools::RecentFilesManager* MyGUI::Singleton<tools::RecentFilesManager>::msInstance = nullptr;
12
 
template <> const char* MyGUI::Singleton<tools::RecentFilesManager>::mClassTypeName("RecentFilesManager");
13
 
 
14
 
namespace tools
15
 
{
16
 
        RecentFilesManager::RecentFilesManager() :
17
 
                mMaxRecentFolders(8),
18
 
                mMaxRecentFiles(8),
19
 
                mMaxRecentProjects(8)
20
 
        {
21
 
        }
22
 
 
23
 
        RecentFilesManager::~RecentFilesManager()
24
 
        {
25
 
        }
26
 
 
27
 
        void RecentFilesManager::initialise()
28
 
        {
29
 
                if (SettingsManager::getInstance().getSector("Settings")->getExistProperty("MaxRecentFolders"))
30
 
                        mMaxRecentFolders = SettingsManager::getInstance().getSector("Settings")->getPropertyValue<size_t>("MaxRecentFolders");
31
 
                if (SettingsManager::getInstance().getSector("Settings")->getExistProperty("MaxRecentFiles"))
32
 
                        mMaxRecentFiles = SettingsManager::getInstance().getSector("Settings")->getPropertyValue<size_t>("MaxRecentFiles");
33
 
                if (SettingsManager::getInstance().getSector("Settings")->getExistProperty("MaxRecentProjects"))
34
 
                        mMaxRecentProjects = SettingsManager::getInstance().getSector("Settings")->getPropertyValue<size_t>("MaxRecentProjects");
35
 
 
36
 
                mRecentFolder = SettingsManager::getInstance().getSector("Files")->getPropertyValue("RecentFolder");
37
 
                mRecentFolders = SettingsManager::getInstance().getSector("Files")->getPropertyValueList("RecentFolders");
38
 
                mRecentFiles = SettingsManager::getInstance().getSector("Files")->getPropertyValueList("RecentFiles");
39
 
                mRecentProjects = SettingsManager::getInstance().getSector("Files")->getPropertyValueList("RecentProjects");
40
 
 
41
 
                checkArray(mRecentFolders, mMaxRecentFolders);
42
 
                checkArray(mRecentFiles, mMaxRecentFiles);
43
 
                checkArray(mRecentProjects, mMaxRecentProjects);
44
 
        }
45
 
 
46
 
        void RecentFilesManager::shutdown()
47
 
        {
48
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValue("RecentFolder", mRecentFolder);
49
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValueList("RecentFolders", mRecentFolders);
50
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValueList("RecentFiles", mRecentFiles);
51
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValueList("RecentProjects", mRecentProjects);
52
 
        }
53
 
 
54
 
        void RecentFilesManager::addRecentFolder(const MyGUI::UString& _folder)
55
 
        {
56
 
                MyGUI::UString folder(_folder);
57
 
                if (_folder.empty())
58
 
                        folder = MyGUI::UString(common::getSystemCurrentFolder());
59
 
 
60
 
                mRecentFolders.insert(mRecentFolders.begin(), folder);
61
 
 
62
 
                checkArray(mRecentFolders, mMaxRecentFolders);
63
 
        }
64
 
 
65
 
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentFolders() const
66
 
        {
67
 
                return mRecentFolders;
68
 
        }
69
 
 
70
 
        const MyGUI::UString& RecentFilesManager::getRecentFolder() const
71
 
        {
72
 
                return mRecentFolder;
73
 
        }
74
 
 
75
 
        void RecentFilesManager::setRecentFolder(const MyGUI::UString& _value)
76
 
        {
77
 
                mRecentFolder = _value;
78
 
 
79
 
                addRecentFolder(mRecentFolder);
80
 
        }
81
 
 
82
 
        void RecentFilesManager::checkArray(VectorUString& _array, size_t _maxElements)
83
 
        {
84
 
                for (size_t index = 0; index < _array.size(); ++ index)
85
 
                        _array.erase(std::remove(_array.begin() + index + 1, _array.end(), _array[index]), _array.end());
86
 
 
87
 
                while (_array.size() > _maxElements)
88
 
                        _array.pop_back();
89
 
        }
90
 
 
91
 
        void RecentFilesManager::addRecentFile(const MyGUI::UString& _fileName)
92
 
        {
93
 
                mRecentFiles.insert(mRecentFiles.begin(), _fileName);
94
 
 
95
 
                checkArray(mRecentFiles, mMaxRecentFiles);
96
 
 
97
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValueList("RecentFiles", mRecentFiles);
98
 
        }
99
 
 
100
 
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentFiles() const
101
 
        {
102
 
                return mRecentFiles;
103
 
        }
104
 
 
105
 
        void RecentFilesManager::addRecentProject(const MyGUI::UString& _fileName)
106
 
        {
107
 
                mRecentProjects.insert(mRecentProjects.begin(), _fileName);
108
 
 
109
 
                checkArray(mRecentProjects, mMaxRecentProjects);
110
 
 
111
 
                SettingsManager::getInstance().getSector("Files")->setPropertyValueList("RecentProjects", mRecentProjects);
112
 
        }
113
 
 
114
 
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentProjects() const
115
 
        {
116
 
                return mRecentProjects;
117
 
        }
118
 
 
119
 
} // namespace tools
 
1
/*!
 
2
        @file
 
3
        @author         Albert Semenov
 
4
        @date           08/2010
 
5
*/
 
6
 
 
7
#include "Precompiled.h"
 
8
#include "RecentFilesManager.h"
 
9
#include "SettingsManager.h"
 
10
#include "FileSystemInfo/FileSystemInfo.h"
 
11
 
 
12
template <> tools::RecentFilesManager* MyGUI::Singleton<tools::RecentFilesManager>::msInstance = nullptr;
 
13
template <> const char* MyGUI::Singleton<tools::RecentFilesManager>::mClassTypeName = "RecentFilesManager";
 
14
 
 
15
namespace tools
 
16
{
 
17
 
 
18
        RecentFilesManager::RecentFilesManager() :
 
19
                mMaxRecentFolders(0),
 
20
                mMaxRecentFiles(0),
 
21
                mMaxRecentProjects(0)
 
22
        {
 
23
        }
 
24
 
 
25
        RecentFilesManager::~RecentFilesManager()
 
26
        {
 
27
        }
 
28
 
 
29
        void RecentFilesManager::initialise()
 
30
        {
 
31
                if (!SettingsManager::getInstance().tryGetValue<size_t>("Files/MaxRecentFolders", mMaxRecentFolders))
 
32
                        mMaxRecentFolders = 8;
 
33
 
 
34
                if (!SettingsManager::getInstance().tryGetValue<size_t>("Files/MaxRecentFiles", mMaxRecentFiles))
 
35
                        mMaxRecentFiles = 8;
 
36
 
 
37
                if (!SettingsManager::getInstance().tryGetValue<size_t>("Files/MaxRecentProjects", mMaxRecentProjects))
 
38
                        mMaxRecentProjects = 8;
 
39
 
 
40
                mRecentFolder = SettingsManager::getInstance().getValue("Files/RecentFolder");
 
41
                mRecentFolders = SettingsManager::getInstance().getValueList<MyGUI::UString>("Files/RecentFolder.List");
 
42
                mRecentFiles = SettingsManager::getInstance().getValueList<MyGUI::UString>("Files/RecentFile.List");
 
43
                mRecentProjects = SettingsManager::getInstance().getValueList<MyGUI::UString>("Files/RecentProject.List");
 
44
 
 
45
                checkArray(mRecentFolders, mMaxRecentFolders);
 
46
                checkArray(mRecentFiles, mMaxRecentFiles);
 
47
                checkArray(mRecentProjects, mMaxRecentProjects);
 
48
        }
 
49
 
 
50
        void RecentFilesManager::shutdown()
 
51
        {
 
52
                SettingsManager::getInstance().setValue("Files/RecentFolder", mRecentFolder);
 
53
                SettingsManager::getInstance().setValueList<MyGUI::UString>("Files/RecentFolder.List", mRecentFolders);
 
54
                SettingsManager::getInstance().setValueList<MyGUI::UString>("Files/RecentFile.List", mRecentFiles);
 
55
                SettingsManager::getInstance().setValueList<MyGUI::UString>("Files/RecentProject.List", mRecentProjects);
 
56
        }
 
57
 
 
58
        void RecentFilesManager::addRecentFolder(const MyGUI::UString& _folder)
 
59
        {
 
60
                MyGUI::UString folder(_folder);
 
61
                if (_folder.empty())
 
62
                        folder = MyGUI::UString(common::getSystemCurrentFolder());
 
63
 
 
64
                mRecentFolders.insert(mRecentFolders.begin(), folder);
 
65
 
 
66
                checkArray(mRecentFolders, mMaxRecentFolders);
 
67
        }
 
68
 
 
69
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentFolders() const
 
70
        {
 
71
                return mRecentFolders;
 
72
        }
 
73
 
 
74
        const MyGUI::UString& RecentFilesManager::getRecentFolder() const
 
75
        {
 
76
                return mRecentFolder;
 
77
        }
 
78
 
 
79
        void RecentFilesManager::setRecentFolder(const MyGUI::UString& _value)
 
80
        {
 
81
                mRecentFolder = _value;
 
82
 
 
83
                addRecentFolder(mRecentFolder);
 
84
        }
 
85
 
 
86
        void RecentFilesManager::checkArray(VectorUString& _array, size_t _maxElements)
 
87
        {
 
88
                for (size_t index = 0; index < _array.size(); ++ index)
 
89
                        _array.erase(std::remove(_array.begin() + index + 1, _array.end(), _array[index]), _array.end());
 
90
 
 
91
                while (_array.size() > _maxElements)
 
92
                        _array.pop_back();
 
93
        }
 
94
 
 
95
        void RecentFilesManager::addRecentFile(const MyGUI::UString& _fileName)
 
96
        {
 
97
                mRecentFiles.insert(mRecentFiles.begin(), _fileName);
 
98
 
 
99
                checkArray(mRecentFiles, mMaxRecentFiles);
 
100
 
 
101
                SettingsManager::getInstance().setValueList<MyGUI::UString>("Files/RecentFile.List", mRecentFiles);
 
102
        }
 
103
 
 
104
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentFiles() const
 
105
        {
 
106
                return mRecentFiles;
 
107
        }
 
108
 
 
109
        void RecentFilesManager::addRecentProject(const MyGUI::UString& _fileName)
 
110
        {
 
111
                mRecentProjects.insert(mRecentProjects.begin(), _fileName);
 
112
 
 
113
                checkArray(mRecentProjects, mMaxRecentProjects);
 
114
 
 
115
                SettingsManager::getInstance().setValueList<MyGUI::UString>("Files/RecentProject.List", mRecentProjects);
 
116
        }
 
117
 
 
118
        const RecentFilesManager::VectorUString& RecentFilesManager::getRecentProjects() const
 
119
        {
 
120
                return mRecentProjects;
 
121
        }
 
122
 
 
123
}