some little refactor, deleting assets
This commit is contained in:
parent
7a116bfdf2
commit
5c4bd18cdc
21 changed files with 139 additions and 36 deletions
14
utils/CMakeLists.txt
Normal file
14
utils/CMakeLists.txt
Normal 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
13
utils/finalaction.cpp
Normal 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
22
utils/finalaction.h
Normal 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
5
utils/helpers.cpp
Normal 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
17
utils/helpers.h
Normal 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");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue