From c2a3b603b16dd0418cf8b8ccb966e528317486f0 Mon Sep 17 00:00:00 2001 From: zhangjiaping Date: Tue, 17 Aug 2021 14:56:24 +0800 Subject: [PATCH 1/2] Add list item class. --- src/frontend/list-items/lanlistitem.cpp | 6 ++++ src/frontend/list-items/lanlistitem.h | 15 +++++++++ src/frontend/list-items/list-items.pri | 8 +++-- src/frontend/list-items/listitem.cpp | 42 ++++++++++++++++++++++-- src/frontend/list-items/listitem.h | 18 +++++++++- src/frontend/list-items/wlanlistitem.cpp | 6 ++++ src/frontend/list-items/wlanlistitem.h | 15 +++++++++ 7 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 src/frontend/list-items/lanlistitem.cpp create mode 100644 src/frontend/list-items/lanlistitem.h create mode 100644 src/frontend/list-items/wlanlistitem.cpp create mode 100644 src/frontend/list-items/wlanlistitem.h diff --git a/src/frontend/list-items/lanlistitem.cpp b/src/frontend/list-items/lanlistitem.cpp new file mode 100644 index 00000000..05ea12b4 --- /dev/null +++ b/src/frontend/list-items/lanlistitem.cpp @@ -0,0 +1,6 @@ +#include "lanlistitem.h" + +LanListItem::LanListItem(QWidget *parent) : ListItem(parent) +{ + +} diff --git a/src/frontend/list-items/lanlistitem.h b/src/frontend/list-items/lanlistitem.h new file mode 100644 index 00000000..c970ac42 --- /dev/null +++ b/src/frontend/list-items/lanlistitem.h @@ -0,0 +1,15 @@ +#ifndef LANLISTITEM_H +#define LANLISTITEM_H +#include "listitem.h" + +class LanListItem : public ListItem +{ + Q_OBJECT +public: + LanListItem(QWidget *parent = nullptr); + ~LanListItem() = default; +protected: + +}; + +#endif // LANLISTITEM_H diff --git a/src/frontend/list-items/list-items.pri b/src/frontend/list-items/list-items.pri index c2c61590..27443cf7 100644 --- a/src/frontend/list-items/list-items.pri +++ b/src/frontend/list-items/list-items.pri @@ -5,12 +5,16 @@ FORMS += \ $$PWD/onelancform.ui HEADERS += \ + $$PWD/lanlistitem.h \ $$PWD/listitem.h \ $$PWD/oneconnform.h \ - $$PWD/onelancform.h + $$PWD/onelancform.h \ + $$PWD/wlanlistitem.h SOURCES += \ + $$PWD/lanlistitem.cpp \ $$PWD/listitem.cpp \ $$PWD/oneconnform.cpp \ - $$PWD/onelancform.cpp + $$PWD/onelancform.cpp \ + $$PWD/wlanlistitem.cpp diff --git a/src/frontend/list-items/listitem.cpp b/src/frontend/list-items/listitem.cpp index 9d637e04..2909506c 100644 --- a/src/frontend/list-items/listitem.cpp +++ b/src/frontend/list-items/listitem.cpp @@ -1,6 +1,44 @@ #include "listitem.h" -ListItem::ListItem() -{ +#define MAIN_LAYOUT_MARGINS 0,0,0,0 +#define MAIN_LAYOUT_SPACING 0 +#define ITEM_FRAME_MARGINS 16,6,16,6 +#define ITEM_FRAME_SPACING 10 +ListItem::ListItem(QWidget *parent) : QFrame(parent) +{ + initUI(); +} + +ListItem::~ListItem() +{ + delete m_netButton; + m_netButton = NULL; + delete m_infoButton; + m_infoButton = NULL; +} + +void ListItem::setName(const QString &name) +{ + m_nameLabel->setText(name); +} + +void ListItem::initUI() +{ + m_mainLayout = new QVBoxLayout(this); + this->setLayout(m_mainLayout); + m_mainLayout->setContentsMargins(MAIN_LAYOUT_MARGINS); + m_mainLayout->setSpacing(MAIN_LAYOUT_SPACING); + m_itemFrame = new QFrame(this); + m_hItemLayout = new QHBoxLayout(m_itemFrame); + m_hItemLayout->setContentsMargins(ITEM_FRAME_MARGINS); + m_hItemLayout->setSpacing(ITEM_FRAME_SPACING); + m_netButton = new NetButton(m_itemFrame); + m_nameLabel = new QLabel(m_itemFrame); + m_infoButton = new InfoButton(m_itemFrame); + m_hItemLayout->addWidget(m_netButton); + m_hItemLayout->addWidget(m_nameLabel); + m_hItemLayout->addStretch(); + m_hItemLayout->addWidget(m_infoButton); + m_mainLayout->addWidget(m_itemFrame); } diff --git a/src/frontend/list-items/listitem.h b/src/frontend/list-items/listitem.h index 0a8ae4db..041f9645 100644 --- a/src/frontend/list-items/listitem.h +++ b/src/frontend/list-items/listitem.h @@ -1,12 +1,28 @@ #ifndef LISTITEM_H #define LISTITEM_H #include +#include +#include "netbutton.h" +#include "infobutton.h" class ListItem : public QFrame { Q_OBJECT public: - ListItem(); + ListItem(QWidget *parent = nullptr); + ~ListItem(); + void setName(const QString &name); + +protected: + QVBoxLayout * m_mainLayout = nullptr; + QFrame * m_itemFrame = nullptr; + QHBoxLayout * m_hItemLayout = nullptr; + NetButton * m_netButton = nullptr; + QLabel * m_nameLabel = nullptr; + InfoButton * m_infoButton = nullptr; + +private: + void initUI(); }; #endif // LISTITEM_H diff --git a/src/frontend/list-items/wlanlistitem.cpp b/src/frontend/list-items/wlanlistitem.cpp new file mode 100644 index 00000000..00059a86 --- /dev/null +++ b/src/frontend/list-items/wlanlistitem.cpp @@ -0,0 +1,6 @@ +#include "wlanlistitem.h" + +WlanListItem::WlanListItem(QWidget *parent) : ListItem(parent) +{ + +} diff --git a/src/frontend/list-items/wlanlistitem.h b/src/frontend/list-items/wlanlistitem.h new file mode 100644 index 00000000..8aa02a9f --- /dev/null +++ b/src/frontend/list-items/wlanlistitem.h @@ -0,0 +1,15 @@ +#ifndef WLANLISTITEM_H +#define WLANLISTITEM_H +#include "listitem.h" + +class WlanListItem : public ListItem +{ + Q_OBJECT +public: + WlanListItem(QWidget *parent = nullptr); + ~WlanListItem() = default; +protected: + +}; + +#endif // WLANLISTITEM_H From c299e43cdae298b5a217eeabd15347fa4f7939f4 Mon Sep 17 00:00:00 2001 From: zhangjiaping Date: Tue, 17 Aug 2021 15:04:51 +0800 Subject: [PATCH 2/2] Optimize code. --- src/frontend/list-items/listitem.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/frontend/list-items/listitem.cpp b/src/frontend/list-items/listitem.cpp index 2909506c..5b662e49 100644 --- a/src/frontend/list-items/listitem.cpp +++ b/src/frontend/list-items/listitem.cpp @@ -14,6 +14,7 @@ ListItem::~ListItem() { delete m_netButton; m_netButton = NULL; + delete m_infoButton; m_infoButton = NULL; } @@ -26,19 +27,24 @@ void ListItem::setName(const QString &name) void ListItem::initUI() { m_mainLayout = new QVBoxLayout(this); - this->setLayout(m_mainLayout); m_mainLayout->setContentsMargins(MAIN_LAYOUT_MARGINS); m_mainLayout->setSpacing(MAIN_LAYOUT_SPACING); + this->setLayout(m_mainLayout); + m_itemFrame = new QFrame(this); + m_hItemLayout = new QHBoxLayout(m_itemFrame); m_hItemLayout->setContentsMargins(ITEM_FRAME_MARGINS); m_hItemLayout->setSpacing(ITEM_FRAME_SPACING); + m_netButton = new NetButton(m_itemFrame); m_nameLabel = new QLabel(m_itemFrame); m_infoButton = new InfoButton(m_itemFrame); + m_hItemLayout->addWidget(m_netButton); m_hItemLayout->addWidget(m_nameLabel); m_hItemLayout->addStretch(); m_hItemLayout->addWidget(m_infoButton); + m_mainLayout->addWidget(m_itemFrame); }