85 inline static std::string_view logger_name =
86 "ores.qt.connection_tree_model";
88 [[nodiscard]]
static auto& lg() {
90 static auto instance = make_logger(logger_name);
104 NodeTypeRole = Qt::UserRole + 1,
113 QObject* parent =
nullptr);
117 QModelIndex index(
int row,
int column,
118 const QModelIndex& parent = QModelIndex())
const override;
119 QModelIndex parent(
const QModelIndex& index)
const override;
120 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
121 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
122 QVariant data(
const QModelIndex& index,
int role = Qt::DisplayRole)
const override;
123 QVariant headerData(
int section, Qt::Orientation orientation,
124 int role = Qt::DisplayRole)
const override;
125 Qt::ItemFlags flags(
const QModelIndex& index)
const override;
126 bool setData(
const QModelIndex& index,
const QVariant& value,
127 int role = Qt::EditRole)
override;
130 Qt::DropActions supportedDropActions()
const override;
131 QStringList mimeTypes()
const override;
132 QMimeData* mimeData(
const QModelIndexList& indexes)
const override;
133 bool canDropMimeData(
const QMimeData* data, Qt::DropAction action,
134 int row,
int column,
const QModelIndex& parent)
const override;
135 bool dropMimeData(
const QMimeData* data, Qt::DropAction action,
136 int row,
int column,
const QModelIndex& parent)
override;
140 QModelIndex indexFromUuid(
const boost::uuids::uuid&
id)
const;
146 void setFolderExpanded(
const QModelIndex& index,
bool expanded);
149 std::optional<connections::domain::folder> getFolderFromIndex(
150 const QModelIndex& index)
const;
151 std::optional<connections::domain::server_environment> getEnvironmentFromIndex(
152 const QModelIndex& index)
const;
155 void dataRefreshed();
156 void errorOccurred(
const QString& message);
161 const std::optional<boost::uuids::uuid>& parentId);
163 const std::optional<boost::uuids::uuid>& folderId);
166 const boost::uuids::uuid&
id)
const;
169 std::unique_ptr<ConnectionTreeNode> rootNode_;
171 QIcon folderOpenIcon_;
173 std::unordered_set<boost::uuids::uuid> expandedFolders_;