Skip to content

Commit 2a02f76

Browse files
Defined chain methods & removed unused include
1 parent ab3a067 commit 2a02f76

1 file changed

Lines changed: 39 additions & 8 deletions

File tree

Source/Core/Include/CoreClearCache.hpp

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,60 @@
33
#include <QObject>
44
#include <QPushButton>
55
#include <QSettings>
6-
#include <functional>
76
#include "../../GUI/Include/TableView.hpp"
87
#include "../../Utils/Include/Namespace_Macro.hpp"
98
#include "../../Lib_Memory/Include/Memory.hpp"
9+
#include "../../Utils/Include/Meta_Macro.hpp"
10+
#include "../../Listener/Include/ListenerClearCache.hpp"
11+
#include "../../Utils/Include/Meta_Macro.hpp"
1012

1113
using std::function;
1214
using ZClipboard::Lib_Memory::MakePtr;
1315
using ZClipboard::Lib_Memory::PtrUnique;
1416
using ZClipboard::GUI::TableView;
17+
using ZClipboard::Listener::ClearCacheListener;
18+
using std::enable_if_t;
19+
using std::is_invocable_v;
1520

1621
CORE_NAMESPACE
1722

18-
struct ParamImpl {
23+
struct CoreClearBuilderData {
1924
QPushButton *button;
25+
QSettings *settings;
26+
TableView *tableView;
2027
};
2128

22-
class ClearCoreBuilder {
23-
private:
24-
PtrUnique<ParamImpl> Impl;
29+
class CoreClearBuilder {
30+
private:
31+
using Self = CoreClearBuilder;
32+
using ImplData = CoreClearBuilderData;
33+
using Listener = ClearCacheListener;
34+
using Button = QPushButton;
35+
using Settings = QSettings;
36+
37+
private:
38+
PtrUnique<ImplData> Impl;
39+
PtrUnique<Listener> func_Builder;
40+
2541

26-
public:
27-
ClearCoreBuilder *StartBuild(QPushButton* button);
28-
void ThenAddListener(function<void()> func);
42+
private:
43+
inline Button *GetClearButton() noexcept;
44+
inline Settings *GetSettings() noexcept;
45+
inline TableView *GetTableView() noexcept;
46+
47+
public:
48+
Self *StartBuild();
49+
50+
CLASS_BUILD(T, V)
51+
Self *WithAndThen(T ImplData::*member, V&& value) {
52+
Impl.get()->*member = FORWARD(V, value);
53+
54+
return this;
55+
}
56+
57+
Self *WhenDone();
58+
void Finally_Setup_Listener();
59+
2960
};
3061

3162
END_NAMESPACE

0 commit comments

Comments
 (0)