1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
/**
* @file llfloatergltfasseteditor.h
* @author Brad Payne
* @brief floater to exercise standard fonts
*
* $LicenseInfo:firstyear=2024&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2024, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLFLOATERGLTFASSETEDITOR_H
#define LL_LLFLOATERGLTFASSETEDITOR_H
#include "llfloater.h"
#include "llfolderviewmodel.h"
#include "llgltffolderviews.h"
class LLGLTFViewModel;
class LLFolderViewFolder;
class LLFolderViewModelItem;
class LLGLTFSort
{
public:
LLGLTFSort() { }
bool operator()(const LLGLTFItem* const& a, const LLGLTFItem* const& b) const;
private:
};
class LLGLTFFilter : public LLFolderViewFilter
{
public:
LLGLTFFilter() { mEmpty = ""; }
~LLGLTFFilter() {}
bool check(const LLFolderViewModelItem* item) { return true; }
bool checkFolder(const LLFolderViewModelItem* folder) const { return true; }
void setEmptyLookupMessage(const std::string& message) { }
std::string getEmptyLookupMessage(bool is_empty_folder = false) const { return mEmpty; }
bool showAllResults() const { return true; }
std::string::size_type getStringMatchOffset(LLFolderViewModelItem* item) const { return std::string::npos; }
std::string::size_type getFilterStringSize() const { return 0; }
bool isActive() const { return false; }
bool isModified() const { return false; }
void clearModified() { }
const std::string& getName() const { return mEmpty; }
const std::string& getFilterText() { return mEmpty; }
void setModified(EFilterModified behavior = FILTER_RESTART) { }
void resetTime(S32 timeout) { }
bool isTimedOut() { return false; }
bool isDefault() const { return true; }
bool isNotDefault() const { return false; }
void markDefault() { }
void resetDefault() { }
S32 getCurrentGeneration() const { return 0; }
S32 getFirstSuccessGeneration() const { return 0; }
S32 getFirstRequiredGeneration() const { return 0; }
private:
std::string mEmpty;
};
class LLGLTFViewModel
: public LLFolderViewModel<LLGLTFSort, LLGLTFItem, LLGLTFItem, LLGLTFFilter>
{
public:
typedef LLFolderViewModel< LLGLTFSort, LLGLTFItem, LLGLTFItem, LLGLTFFilter> base_t;
LLGLTFViewModel();
void sort(LLFolderViewFolder* folder);
bool startDrag(std::vector<LLFolderViewModelItem*>& items) { return false; }
private:
};
class LLFloaterGltfAssetEditor : public LLFloater
{
public:
LLFloaterGltfAssetEditor(const LLSD& key);
~LLFloaterGltfAssetEditor();
bool postBuild() override;
LLGLTFViewModel& getRootViewModel() { return mGLTFViewModel; }
private:
LLGLTFViewModel mGLTFViewModel;
LLPanel* mItemListPanel = nullptr;
LLFolderView* mConversationsRoot = nullptr;
};
#endif LL_LLFLOATERGLTFASSETEDITOR_H
|