#pragma once
#include "configobject.hpp"
#include <qqmlintegration.h>

namespace ZShell::config {

class ClipboardSizes : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(int, itemHeight, 60)
	CFG_PROPERTY(int, minPreviewWidth, 200)
	CFG_PROPERTY(int, previewWidth, 800)
	CFG_PROPERTY(int, width, 500)

	public:
	explicit ClipboardSizes(QObject* parent = nullptr) : ConfigObject(parent) {}
};

class Clipboard : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(bool, enabled, true)
	CFG_PROPERTY(int, maxEntriesShown, 10)
	CONFIG_SUBOBJECT(ClipboardSizes, sizes)

	public:
	explicit Clipboard(QObject* parent = nullptr)
		: ConfigObject(parent), m_sizes(new ClipboardSizes(this)) {}
};

} // namespace ZShell::config
