From ec6c1cad23aeaa4e7ae9cd27420fef49c6ca05fe Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Thu, 29 Jul 2021 18:05:25 +0300 Subject: [PATCH] Cleaning carousel. --- src/app/puzzle/vpcarrousel.cpp | 1 + src/app/puzzle/vpcarrousel.h | 2 +- src/app/puzzle/vpcarrouselpiece.cpp | 14 ++++--------- src/app/puzzle/vpcarrouselpiece.h | 11 +++++------ src/app/puzzle/vpcarrouselpiecelist.cpp | 26 ++++++++++--------------- src/app/puzzle/vpcarrouselpiecelist.h | 5 ++--- 6 files changed, 23 insertions(+), 36 deletions(-) diff --git a/src/app/puzzle/vpcarrousel.cpp b/src/app/puzzle/vpcarrousel.cpp index 757ca97af..89de72f83 100644 --- a/src/app/puzzle/vpcarrousel.cpp +++ b/src/app/puzzle/vpcarrousel.cpp @@ -47,6 +47,7 @@ VPCarrousel::VPCarrousel(VPLayout *layout, QWidget *parent) : ui(new Ui::VPCarrousel), m_layout(layout) { + SCASSERT(m_layout != nullptr) ui->setupUi(this); ui->listWidget->SetCarrousel(this); diff --git a/src/app/puzzle/vpcarrousel.h b/src/app/puzzle/vpcarrousel.h index 6f431e283..67d4b9170 100644 --- a/src/app/puzzle/vpcarrousel.h +++ b/src/app/puzzle/vpcarrousel.h @@ -100,7 +100,7 @@ private: Qt::Orientation m_orientation{Qt::Vertical}; - static QString GetSheetName(const VPCarrouselSheet &sheet); + static auto GetSheetName(const VPCarrouselSheet &sheet) -> QString; }; #endif // VPCARROUSEL_H diff --git a/src/app/puzzle/vpcarrouselpiece.cpp b/src/app/puzzle/vpcarrouselpiece.cpp index 49e973338..bad64e9d3 100644 --- a/src/app/puzzle/vpcarrouselpiece.cpp +++ b/src/app/puzzle/vpcarrouselpiece.cpp @@ -44,9 +44,10 @@ Q_LOGGING_CATEGORY(pCarrouselPiece, "p.carrouselPiece") //--------------------------------------------------------------------------------------------------------------------- VPCarrouselPiece::VPCarrouselPiece(VPPiece *piece, QListWidget* parent) : - QListWidgetItem(parent,1001), + QListWidgetItem(parent, Type), m_piece(piece) { + SCASSERT(m_piece != nullptr) int width = 120 - 8; QFontMetrics metrix = QFontMetrics(QFont()); QString clippedText = metrix.elidedText(piece->GetName(), Qt::ElideRight, width); @@ -54,15 +55,8 @@ VPCarrouselPiece::VPCarrouselPiece(VPPiece *piece, QListWidget* parent) : setText(clippedText); } - //--------------------------------------------------------------------------------------------------------------------- -VPCarrouselPiece::~VPCarrouselPiece() -{ - -} - -//--------------------------------------------------------------------------------------------------------------------- -VPPiece * VPCarrouselPiece::GetPiece() +auto VPCarrouselPiece::GetPiece() -> VPPiece * { return m_piece; } @@ -74,7 +68,7 @@ void VPCarrouselPiece::RefreshSelection() } //--------------------------------------------------------------------------------------------------------------------- -QIcon VPCarrouselPiece::CreatePieceIcon(const QSize &size, bool isDragIcon) const +auto VPCarrouselPiece::CreatePieceIcon(const QSize &size, bool isDragIcon) const -> QIcon { QRectF boundingRect = m_piece->DetailBoundingRect(); qreal canvasSize = qMax(boundingRect.height(), boundingRect.width()); diff --git a/src/app/puzzle/vpcarrouselpiece.h b/src/app/puzzle/vpcarrouselpiece.h index d9d0a83f4..781d4beef 100644 --- a/src/app/puzzle/vpcarrouselpiece.h +++ b/src/app/puzzle/vpcarrouselpiece.h @@ -37,14 +37,16 @@ class VPCarrouselPiece : public QListWidgetItem { public: + enum { Type = UserType + 1}; + explicit VPCarrouselPiece(VPPiece *piece, QListWidget* parent); - ~VPCarrouselPiece(); + virtual ~VPCarrouselPiece() = default; /** * @brief GetPiece Returns the corresponding layout piece * @return the corresponding layout piece */ - VPPiece * GetPiece(); + auto GetPiece() -> VPPiece *; /** * @brief RefreshSelection refreshes the selection of the piece according to the selection information of m_piece @@ -56,15 +58,12 @@ public: * @param size of the icon * @return the created icon */ - QIcon CreatePieceIcon(const QSize &size, bool isDragIcon = false) const; + auto CreatePieceIcon(const QSize &size, bool isDragIcon = false) const -> QIcon; private: Q_DISABLE_COPY(VPCarrouselPiece) VPPiece *m_piece; - -private slots: - }; #endif // VPCARROUSELPIECE_H diff --git a/src/app/puzzle/vpcarrouselpiecelist.cpp b/src/app/puzzle/vpcarrouselpiecelist.cpp index a1198a826..2651ed4d5 100644 --- a/src/app/puzzle/vpcarrouselpiecelist.cpp +++ b/src/app/puzzle/vpcarrouselpiecelist.cpp @@ -45,21 +45,15 @@ Q_LOGGING_CATEGORY(pCarrouselPieceList, "p.carrouselPieceList") //--------------------------------------------------------------------------------------------------------------------- VPCarrouselPieceList::VPCarrouselPieceList(QWidget* parent) : - QListWidget(parent), - m_dragStart(QPoint()) + QListWidget(parent) { - setStyleSheet("QListWidget::item{border: 2px solid transparent; color: black;} QListWidget::item:selected {border: 2px solid rgb(255,160,160);}"); + setStyleSheet("QListWidget::item{border: 2px solid transparent; color: black;} " + "QListWidget::item:selected {border: 2px solid rgb(255,160,160);}"); setContextMenuPolicy(Qt::DefaultContextMenu); setSelectionMode(QAbstractItemView::MultiSelection); setViewMode(QListView::IconMode); } -//--------------------------------------------------------------------------------------------------------------------- -VPCarrouselPieceList::~VPCarrouselPieceList() -{ - -} - //--------------------------------------------------------------------------------------------------------------------- void VPCarrouselPieceList::SetCarrousel(VPCarrousel *carrousel) { @@ -116,7 +110,7 @@ void VPCarrouselPieceList::mousePressEvent(QMouseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void VPCarrouselPieceList::mouseMoveEvent(QMouseEvent *event) { - if ((event->buttons() & Qt::LeftButton) && + if (((event->buttons() & Qt::LeftButton) != 0u) && ((event->pos() - m_dragStart).manhattanLength() >= QApplication::startDragDistance()) && (selectedItems().count() > 0) && (not m_pieceList.isEmpty() && m_pieceList.first()->Sheet() == nullptr)) // only if it's from unplaced pieces @@ -136,9 +130,9 @@ void VPCarrouselPieceList::startDrag(Qt::DropActions supportedActions) Q_UNUSED(supportedActions) QListWidgetItem* _item = currentItem(); - if(_item->type() == 1001) + if(_item->type() == VPCarrouselPiece::Type) { - VPCarrouselPiece *pieceItem = static_cast (_item); + auto *pieceItem = static_cast (_item); // starts the dragging auto *drag = new QDrag(this); @@ -171,9 +165,9 @@ void VPCarrouselPieceList::dragMoveEvent(QDragMoveEvent* e) void VPCarrouselPieceList::contextMenuEvent(QContextMenuEvent *event) { QListWidgetItem* _item = currentItem(); - if(_item != nullptr && _item->type() == 1001) + if(_item != nullptr && _item->type() == VPCarrouselPiece::Type) { - VPCarrouselPiece *pieceItem = static_cast (_item); + auto *pieceItem = static_cast (_item); QMenu menu; @@ -223,9 +217,9 @@ void VPCarrouselPieceList::on_SelectionChangedExternal() for(int i = 0; i < count(); ++i) { QListWidgetItem* _item = item(i); - if(_item->type() == 1001) + if(_item->type() == VPCarrouselPiece::Type) { - VPCarrouselPiece *itemPiece = static_cast (_item); + auto *itemPiece = static_cast (_item); itemPiece->RefreshSelection(); } } diff --git a/src/app/puzzle/vpcarrouselpiecelist.h b/src/app/puzzle/vpcarrouselpiecelist.h index ba60dbe26..e8fd0b587 100644 --- a/src/app/puzzle/vpcarrouselpiecelist.h +++ b/src/app/puzzle/vpcarrouselpiecelist.h @@ -39,7 +39,7 @@ class VPCarrouselPieceList : public QListWidget Q_OBJECT public: explicit VPCarrouselPieceList(QWidget* parent); - ~VPCarrouselPieceList(); + virtual ~VPCarrouselPieceList() = default; /** * @brief Refresh refreshes the items of the carrousel piece list @@ -58,7 +58,6 @@ public: */ void SetCarrousel(VPCarrousel *carrousel); - public slots: /** * @brief on_SelectionChangedExternal when the selection was changed outside of the carrousel @@ -78,7 +77,7 @@ private: Q_DISABLE_COPY(VPCarrouselPieceList) QList m_pieceList{}; - QPoint m_dragStart; + QPoint m_dragStart{}; VPCarrousel *m_carrousel{nullptr}; };