repositoriestreeview.h
52 lines
| 1.6 KiB
| text/x-c
|
CLexer
r1407 | /* | |||
This file is part of SciQLop. | ||||
SciQLop is free software: you can redistribute it and/or modify | ||||
it under the terms of the GNU General Public License as published by | ||||
the Free Software Foundation, either version 3 of the License, or | ||||
(at your option) any later version. | ||||
SciQLop is distributed in the hope that it will be useful, | ||||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
GNU General Public License for more details. | ||||
You should have received a copy of the GNU General Public License | ||||
along with SciQLop. If not, see <https://www.gnu.org/licenses/>. | ||||
*/ | ||||
#ifndef REPOSITORIESTREEVIEW_H | ||||
#define REPOSITORIESTREEVIEW_H | ||||
r1408 | #include <Catalogue2/repositoriesmodel.h> | |||
r1407 | #include <QObject> | |||
#include <QTreeView> | ||||
class RepositoriesTreeView : public QTreeView | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
RepositoriesTreeView(QWidget* parent = nullptr); | ||||
public slots: | ||||
r1408 | void refresh() { static_cast<RepositoriesModel*>(model())->refresh(); } | |||
r1407 | ||||
signals: | ||||
void repositorySelected(const QString& repository); | ||||
r1408 | void catalogueSelected(const CatalogueController::Catalogue_ptr& catalogue); | |||
r1407 | ||||
r1408 | private: | |||
void _itemSelected(const QModelIndex& index) | ||||
{ | ||||
auto item = RepositoriesModel::to_item(index); | ||||
if (item->type == RepositoriesModel::ItemType::Repository) | ||||
{ | ||||
emit repositorySelected(item->repository()); | ||||
} | ||||
else if (item->type == RepositoriesModel::ItemType::Catalogue) | ||||
{ | ||||
emit catalogueSelected(item->catalogue()); | ||||
} | ||||
} | ||||
r1407 | }; | |||
#endif // REPOSITORIESTREEVIEW_H | ||||