view include/gui/widgets/sidebar.h @ 118:39521c47c7a3

*: another huge megacommit, SORRY The torrents page works a lot better now Added the edit option to the anime list right click menu Vectorized currently playing files Available player and extensions are now loaded at runtime from files in (dotpath)/players.json and (dotpath)/extensions.json These paths are not permanent and will likely be moved to (dotpath)/recognition ... ... ...
author Paper <mrpapersonic@gmail.com>
date Tue, 07 Nov 2023 23:40:54 -0500
parents 80f49f623d30
children 862d0d8619f6
line wrap: on
line source

#ifndef __gui__sidebar_h
#define __gui__sidebar_h

#include <QItemSelectionModel>
#include <QListWidget>

class QListWidgetItem;

class SideBar final : public QListWidget {
		Q_OBJECT

	public:
		SideBar(QWidget* parent = nullptr);
		QListWidgetItem* AddItem(QString name, QIcon icon = QIcon());
		QListWidgetItem* AddSeparator();
		int GetCurrentItem();
		bool IndexIsSeparator(QModelIndex index) const;
		static QIcon CreateIcon(const char* file);
		void SetBackgroundColor(QColor color);

	signals:
		void CurrentItemChanged(int index);

	public slots:
		void SetCurrentItem(int index);

	protected:
		virtual void mouseMoveEvent(QMouseEvent* event) override;
		QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex& index,
		                                                     const QEvent* event) const override;
		int RemoveSeparatorsFromIndex(int index);
		int AddSeparatorsToIndex(int index);
};

#endif // __gui__sidebar_h