diff --git a/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.cpp b/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..76fd8da3469b759487f63c8b7dc233cdf30b7a5b
--- /dev/null
+++ b/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.cpp
@@ -0,0 +1,6 @@
+#include "CustomPlacementButtonDelegate.h"
+
+CustomPlacementButtonDelegate::CustomPlacementButtonDelegate()
+{
+
+}
diff --git a/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.h b/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..acf8bc105d7e8e8426735940e614044d69e52a65
--- /dev/null
+++ b/controls/WidgetDelegateListView/CustomPlacementButtonDelegate.h
@@ -0,0 +1,11 @@
+#ifndef CUSTOMPLACEMENTBUTTONDELEGATE_H
+#define CUSTOMPLACEMENTBUTTONDELEGATE_H
+
+
+class CustomPlacementButtonDelegate : public WidgetDelegateBase
+{
+public:
+    CustomPlacementButtonDelegate();
+};
+
+#endif // CUSTOMPLACEMENTBUTTONDELEGATE_H
diff --git a/controls/WidgetDelegateListView/WidgetDelegateBase.cpp b/controls/WidgetDelegateListView/WidgetDelegateBase.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fded923df6775a51fcff53890598d42dd27f5d16
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateBase.cpp
@@ -0,0 +1,6 @@
+#include "AbstractWidgetDelegate.h"
+
+AbstractWidgetDelegate::AbstractWidgetDelegate(QWidget *parent) : QWidget(parent)
+{
+
+}
diff --git a/controls/WidgetDelegateListView/WidgetDelegateBase.h b/controls/WidgetDelegateListView/WidgetDelegateBase.h
new file mode 100644
index 0000000000000000000000000000000000000000..c8c22bfbaf5d7b78820ce12f21900c8d8bbe5c92
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateBase.h
@@ -0,0 +1,16 @@
+#ifndef ABSTRACTWIDGETDELEGATE_H
+#define ABSTRACTWIDGETDELEGATE_H
+
+#include <QWidget>
+
+class AbstractWidgetDelegate : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit AbstractWidgetDelegate(QWidget *parent = nullptr);
+
+signals:
+
+};
+
+#endif // ABSTRACTWIDGETDELEGATE_H
diff --git a/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.cpp b/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..670838bbfbead5f920fb0c12d7032ec43f87c1c4
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.cpp
@@ -0,0 +1,6 @@
+#include "WidgetDelegateFactoryBase.h"
+
+WidgetDelegateFactoryBase::WidgetDelegateFactoryBase()
+{
+
+}
diff --git a/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.h b/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.h
new file mode 100644
index 0000000000000000000000000000000000000000..0c160627c285ffdc5e2712430d330a1626b9703f
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateFactoryBase.h
@@ -0,0 +1,11 @@
+#ifndef WIDGETDELEGATEFACTORYBASE_H
+#define WIDGETDELEGATEFACTORYBASE_H
+
+
+class WidgetDelegateFactoryBase
+{
+public:
+    WidgetDelegateFactoryBase();
+};
+
+#endif // WIDGETDELEGATEFACTORYBASE_H
diff --git a/controls/WidgetDelegateListView/WidgetDelegateListView.cpp b/controls/WidgetDelegateListView/WidgetDelegateListView.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8fda0597bb494b273ab178b95bdb68fa2fa282d3
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateListView.cpp
@@ -0,0 +1,6 @@
+#include "WidgetDelegateListView.h"
+
+WidgetDelegateListView::WidgetDelegateListView()
+{
+
+}
diff --git a/controls/WidgetDelegateListView/WidgetDelegateListView.h b/controls/WidgetDelegateListView/WidgetDelegateListView.h
new file mode 100644
index 0000000000000000000000000000000000000000..cfa5e6b0c602affd8a45d5345f102fa9ce8488fc
--- /dev/null
+++ b/controls/WidgetDelegateListView/WidgetDelegateListView.h
@@ -0,0 +1,11 @@
+#ifndef WIDGETDELEGATELISTVIEW_H
+#define WIDGETDELEGATELISTVIEW_H
+
+
+class WidgetDelegateListView : public QScrollArea
+{
+public:
+    WidgetDelegateListView();
+};
+
+#endif // WIDGETDELEGATELISTVIEW_H
diff --git a/controls/controls.pri b/controls/controls.pri
index 2a6a106094382b168ea7a502b685e3829d729e33..fc4307a435763e97c8d0591856ceff857d18fbaf 100644
--- a/controls/controls.pri
+++ b/controls/controls.pri
@@ -13,7 +13,11 @@ SOURCES += \
     $$PWD/AnimatedLineEdit.cpp \
     $$PWD/ScreenOverlaying.cpp \
     $$PWD/StyledDropShadowEffect.cpp \
-    $$PWD/StyledSubcontrol.cpp
+    $$PWD/StyledSubcontrol.cpp \
+    $$PWD/WidgetDelegateListView/CustomPlacementButtonDelegate.cpp \
+    $$PWD/WidgetDelegateListView/WidgetDelegateBase.cpp \
+    $$PWD/WidgetDelegateListView/WidgetDelegateFactoryBase.cpp \
+    $$PWD/WidgetDelegateListView/WidgetDelegateListView.cpp
 
 HEADERS += \
     $$PWD/AdaptiveWidget.h \
@@ -30,7 +34,11 @@ HEADERS += \
     $$PWD/AnimatedLineEdit.h \
     $$PWD/ScreenOverlaying.h \
     $$PWD/StyledDropShadowEffect.h \
-    $$PWD/StyledSubcontrol.h
+    $$PWD/StyledSubcontrol.h \
+    $$PWD/WidgetDelegateListView/CustomPlacementButtonDelegate.h \
+    $$PWD/WidgetDelegateListView/WidgetDelegateBase.h \
+    $$PWD/WidgetDelegateListView/WidgetDelegateFactoryBase.h \
+    $$PWD/WidgetDelegateListView/WidgetDelegateListView.h
 
 INCLUDEPATH += $$PWD