File indexing completed on 2024-07-21 04:34:57

0001 /*
0002     The item for Smb4K's shares view.
0003 
0004     SPDX-FileCopyrightText: 2006-2021 Alexander Reinholdt <alexander.reinholdt@kdemail.net>
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef SMB4KSHARESVIEWITEM_H
0009 #define SMB4KSHARESVIEWITEM_H
0010 
0011 // application specific includes
0012 #include "core/smb4kglobal.h"
0013 
0014 // Qt includes
0015 #include <QListWidgetItem>
0016 #include <QPointer>
0017 #include <QWidget>
0018 
0019 // forward declarations
0020 class Smb4KSharesView;
0021 
0022 /**
0023  * This class provides the items for the shares icon view
0024  * of Smb4K.
0025  *
0026  * @author Alexander Reinholdt <alexander.reinholdt@kdemail.net>
0027  */
0028 
0029 class Smb4KSharesViewItem : public QListWidgetItem
0030 {
0031 public:
0032     /**
0033      * The constructor.
0034      *
0035      * @param share         The Smb4KShare object that represents the share.
0036      *
0037      * @param parent        The parent widget of this item.
0038      */
0039     Smb4KSharesViewItem(Smb4KSharesView *parent, const SharePtr &share);
0040 
0041     /**
0042      * The destructor
0043      */
0044     ~Smb4KSharesViewItem();
0045 
0046     /**
0047      * This function returns the encapsulated Smb4KShare item.
0048      *
0049      * @returns the encapsulated Smb4KShare item.
0050      */
0051     const SharePtr &shareItem()
0052     {
0053         return m_share;
0054     }
0055 
0056     /**
0057      * This function updates the encapsulated Smb4KShare object.
0058      */
0059     void update();
0060 
0061     /**
0062      * This function modifies the alignment according to the @p mode used in
0063      * the parent list widget.
0064      */
0065     void setItemAlignment(QListView::ViewMode mode);
0066 
0067 private:
0068     /**
0069      * The Smb4KShare item
0070      */
0071     SharePtr m_share;
0072 };
0073 
0074 #endif