14 explicit ItemModule(QObject *parent =
nullptr);
15 ItemModule(
const QString &name,
const QString &displayName,
bool isTitle =
true);
17 template<
typename FunT>
18 ItemModule(
const QString &name,
const QString &displayName, FunT callback,
bool leftVisible =
true)
21 setLeftVisible(leftVisible);
22 setRightWidget(callback);
25 template<
class classT,
class W
idgetT>
26 ItemModule(
const QString &name,
const QString &displayName, classT *receiver, WidgetT *(classT::*callback)(
ModuleObject *),
bool leftVisible =
true)
29 setLeftVisible(leftVisible);
30 setRightWidget(receiver, callback);
33 template<
class classT,
class W
idgetT>
34 ItemModule(
const QString &name,
const QString &displayName, classT *receiver, WidgetT *(classT::*callback)(),
bool leftVisible =
true)
37 setLeftVisible(leftVisible);
38 setRightWidget(receiver, callback);
43 void setTitleItem(
bool isTitle);
44 void setBackground(
bool has);
45 void setWordWrap(
bool on);
46 bool wordWrap()
const;
47 void setLeftVisible(
bool visible);
48 bool clickable()
const;
49 void setClickable(
const bool clickable);
51 template<
typename FunT>
52 void setRightWidget(FunT callback)
55 return (callback)(module);
57 setCallback(std::bind(fun, callback,
this));
60 template<
class classT,
class W
idgetT>
61 void setRightWidget(classT *receiver, WidgetT *(classT::*callback)(
ModuleObject *))
64 return (receiver->*callback)(module);
66 setCallback(std::bind(fun, receiver, callback,
this));
69 template<
class classT,
class W
idgetT>
70 void setRightWidget(classT *receiver, WidgetT *(classT::*callback)())
72 auto fun = [](classT *receiver, WidgetT *(classT::*callback)()) {
73 return (receiver->*callback)();
75 setCallback(std::bind(fun, receiver, callback));
79 inline DCC_MODULE_TYPE getClassID()
const override {
return ITEM; }
82 void clicked(QWidget *widget);
85 void setCallback(std::function<QWidget *()> callback);