some little refactor, deleting assets

This commit is contained in:
Blue 2024-01-21 16:22:56 -03:00
parent 7a116bfdf2
commit 5c4bd18cdc
Signed by: blue
GPG key ID: 9B203B252A63EE38
21 changed files with 139 additions and 36 deletions

14
utils/CMakeLists.txt Normal file
View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
# SPDX-License-Identifier: GPL-3.0-or-later
set(HEADERS
finalaction.h
helpers.h
)
set(SOURCES
finalaction.cpp
helpers.cpp
)
target_sources(magpie PRIVATE ${SOURCES})

13
utils/finalaction.cpp Normal file
View file

@ -0,0 +1,13 @@
// SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later
#include "finalaction.h"
FinalAction::FinalAction(const std::function<void()>& action):
action(action)
{}
FinalAction::~FinalAction() {
action();
}

22
utils/finalaction.h Normal file
View file

@ -0,0 +1,22 @@
// SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <functional>
class FinalAction {
public:
FinalAction(const std::function<void()>& action);
~FinalAction();
FinalAction() = delete;
FinalAction(const FinalAction&) = delete;
FinalAction(FinalAction&&) = delete;
FinalAction& operator = (const FinalAction&) = delete;
FinalAction& operator = (FinalAction&&) = delete;
private:
std::function<void()> action;
};

5
utils/helpers.cpp Normal file
View file

@ -0,0 +1,5 @@
//SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
//SPDX-License-Identifier: GPL-3.0-or-later
#include "helpers.h"

17
utils/helpers.h Normal file
View file

@ -0,0 +1,17 @@
//SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
//SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <QVariant>
#include <stdexcept>
#define UNUSED(X) (void)(X)
template <class T>
const T& qast(const QVariant& variant) {
if (variant.userType() == qMetaTypeId<T>())
return *reinterpret_cast<const T*>(variant.data());
throw std::runtime_error("An usuccessfull qast");
}