File indexing completed on 2024-09-22 05:16:04
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "versionview.hpp" 0010 0011 // tool 0012 #include "versiontablemodel.hpp" 0013 #include "versionviewtool.hpp" 0014 // Kasten core 0015 #include <Kasten/Versionable> 0016 #include <Kasten/AbstractModel> 0017 // Qt 0018 #include <QVBoxLayout> 0019 #include <QTreeView> 0020 0021 namespace Kasten { 0022 0023 VersionView::VersionView(VersionViewTool* tool, QWidget* parent) 0024 : QWidget(parent) 0025 , mTool(tool) 0026 { 0027 mVersionTableModel = new VersionTableModel(nullptr, nullptr, this); 0028 0029 auto* baseLayout = new QVBoxLayout(this); 0030 baseLayout->setContentsMargins(0, 0, 0, 0); 0031 0032 mVersionTableView = new QTreeView(this); 0033 mVersionTableView->setObjectName(QStringLiteral("VersionsTable")); 0034 mVersionTableView->setRootIsDecorated(false); 0035 mVersionTableView->setItemsExpandable(false); 0036 mVersionTableView->setUniformRowHeights(true); 0037 mVersionTableView->setAllColumnsShowFocus(true); 0038 mVersionTableView->setModel(mVersionTableModel); 0039 0040 baseLayout->addWidget(mVersionTableView, 10); 0041 0042 connect(mTool, &Kasten::VersionViewTool::modelChanged, 0043 this, &VersionView::setModel); 0044 0045 setModel(mTool->model()); 0046 } 0047 0048 VersionView::~VersionView() = default; 0049 0050 void VersionView::setModel(AbstractModel* model) 0051 { 0052 If::Versionable* versionControl = model ? qobject_cast<If::Versionable*>(model) : nullptr; 0053 0054 mVersionTableModel->setModel(model, versionControl); 0055 0056 for (int c = 0; c < VersionTableModel::NoOfColumnIds; ++c) { 0057 mVersionTableView->resizeColumnToContents(c); 0058 } 0059 } 0060 0061 } 0062 0063 #include "moc_versionview.cpp"