[graphics/drawy] src: Prepare to add delegate

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 2c6da67a10165c90f086c2001b8139c7e46c3d01 by Laurent Montel.
Committed on 29/07/2026 at 05:20.
Pushed by mlaurent into branch 'master'.

Prepare to add delegate

M  +1    -1    src/gui/customelements/customelementsmodel.cpp
M  +1    -1    src/gui/customelements/customelementsmodel.hpp
M  +2    -0    src/widgets/CMakeLists.txt
M  +2    -0    src/widgets/customelementswidget/customelementslistview.cpp
A  +26   -0    src/widgets/customelementswidget/customelementslistviewdelegate.cpp     [License: GPL(v3.0+)]
A  +17   -0    src/widgets/customelementswidget/customelementslistviewdelegate.hpp     [License: GPL(v3.0+)]

https://invent.kde.org/graphics/drawy/-/commit/2c6da67a10165c90f086c2001b8139c7e46c3d01

diff --git a/src/gui/customelements/customelementsmodel.cpp b/src/gui/customelements/customelementsmodel.cpp
index ef2b044c..8b021a06 100644
--- a/src/gui/customelements/customelementsmodel.cpp
+++ b/src/gui/customelements/customelementsmodel.cpp
@@ -30,7 +30,7 @@ QVariant CustomElementsModel::data(const QModelIndex &index, int role) const
     switch (role) {
     case TimeStamp:
         return customElement.timeStamp();
-    case Icon:
+    case Pixmap:
         return {};
     }
     return {};
diff --git a/src/gui/customelements/customelementsmodel.hpp b/src/gui/customelements/customelementsmodel.hpp
index 92a684a5..0aa6bbb7 100644
--- a/src/gui/customelements/customelementsmodel.hpp
+++ b/src/gui/customelements/customelementsmodel.hpp
@@ -16,7 +16,7 @@ class LIBDRAWYGUI_EXPORT CustomElementsModel : public QAbstractListModel
 public:
     enum CustomElementRoles {
         TimeStamp = Qt::UserRole + 1,
-        Icon,
+        Pixmap,
     };
     Q_ENUM(CustomElementRoles)
 
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 9c13a5ec..ed2e2794 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -256,6 +256,8 @@ target_sources(
         customelementswidget/customelementswidget.cpp
         customelementswidget/customelementslistview.hpp
         customelementswidget/customelementslistview.cpp
+        customelementswidget/customelementslistviewdelegate.hpp
+        customelementswidget/customelementslistviewdelegate.cpp
 )
 
 if(USE_DBUS)
diff --git a/src/widgets/customelementswidget/customelementslistview.cpp b/src/widgets/customelementswidget/customelementslistview.cpp
index 58e890d0..e31bef49 100644
--- a/src/widgets/customelementswidget/customelementslistview.cpp
+++ b/src/widgets/customelementswidget/customelementslistview.cpp
@@ -4,6 +4,7 @@
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
 #include "customelementslistview.hpp"
+#include "customelementslistviewdelegate.hpp"
 
 CustomElementsListView::CustomElementsListView(QWidget *parent)
     : QListView(parent)
@@ -11,6 +12,7 @@ CustomElementsListView::CustomElementsListView(QWidget *parent)
     setMouseTracking(true);
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+    setItemDelegate(new CustomElementsListViewDelegate(this));
 }
 
 CustomElementsListView::~CustomElementsListView() = default;
diff --git a/src/widgets/customelementswidget/customelementslistviewdelegate.cpp b/src/widgets/customelementswidget/customelementslistviewdelegate.cpp
new file mode 100644
index 00000000..82e4cf4f
--- /dev/null
+++ b/src/widgets/customelementswidget/customelementslistviewdelegate.cpp
@@ -0,0 +1,26 @@
+/*
+ * SPDX-FileCopyrightText: 2026 Laurent Montel <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+#include "customelementslistviewdelegate.hpp"
+#include "customelements/customelementsmodel.hpp"
+
+CustomElementsListViewDelegate::CustomElementsListViewDelegate(QObject *parent)
+    : QStyledItemDelegate{parent}
+{
+}
+
+CustomElementsListViewDelegate::~CustomElementsListViewDelegate() = default;
+
+void CustomElementsListViewDelegate::paint([[maybe_unused]] QPainter *painter,
+                                           [[maybe_unused]] const QStyleOptionViewItem &option,
+                                           [[maybe_unused]] const QModelIndex &index) const
+{
+    // TODO
+}
+
+QSize CustomElementsListViewDelegate::sizeHint([[maybe_unused]] const QStyleOptionViewItem &option, [[maybe_unused]] const QModelIndex &index) const
+{
+    return {};
+}
diff --git a/src/widgets/customelementswidget/customelementslistviewdelegate.hpp b/src/widgets/customelementswidget/customelementslistviewdelegate.hpp
new file mode 100644
index 00000000..c431a03b
--- /dev/null
+++ b/src/widgets/customelementswidget/customelementslistviewdelegate.hpp
@@ -0,0 +1,17 @@
+/*
+ * SPDX-FileCopyrightText: 2026 Laurent Montel <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+#pragma once
+
+#include <QStyledItemDelegate>
+
+class CustomElementsListViewDelegate : public QStyledItemDelegate
+{
+public:
+    explicit CustomElementsListViewDelegate(QObject *parent = nullptr);
+    ~CustomElementsListViewDelegate() override;
+    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
+    [[nodiscard]] QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
+};
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.