mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
109 lines
4.3 KiB
C++
109 lines
4.3 KiB
C++
// Created on: 2017-06-16
|
|
// Created by: Natalia ERMOLAEVA
|
|
// Copyright (c) 2017 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#include <inspector/DFBrowserPane_TableView.hxx>
|
|
#include <inspector/DFBrowserPane_Tools.hxx>
|
|
|
|
#include <inspector/TreeModel_Tools.hxx>
|
|
|
|
#include <Standard_WarningsDisable.hxx>
|
|
#include <QAbstractTableModel>
|
|
#include <QHeaderView>
|
|
#include <QHBoxLayout>
|
|
#include <QScrollBar>
|
|
#include <QTableView>
|
|
#include <QWidget>
|
|
#include <Standard_WarningsRestore.hxx>
|
|
|
|
// =======================================================================
|
|
// function : Constructor
|
|
// purpose :
|
|
// =======================================================================
|
|
DFBrowserPane_TableView::DFBrowserPane_TableView (QWidget* theParent,
|
|
const QMap<int, int>& theDefaultColumnWidths)
|
|
: QWidget (theParent)
|
|
{
|
|
QHBoxLayout* aLay = new QHBoxLayout (this);
|
|
aLay->setContentsMargins (0, 0, 0, 0);
|
|
|
|
myTableView = new QTableView (theParent);
|
|
myTableView->setShowGrid (false);
|
|
|
|
QHeaderView* aVHeader = myTableView->verticalHeader();
|
|
aVHeader->setVisible (false);
|
|
aVHeader->setDefaultSectionSize (aVHeader->minimumSectionSize());
|
|
|
|
myTableView->horizontalHeader()->setStretchLastSection (true);
|
|
myTableView->horizontalHeader()->setVisible (false);
|
|
aLay->addWidget (myTableView);
|
|
myDefaultColumnWidths = theDefaultColumnWidths;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : SetModel
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_TableView::SetModel (QAbstractTableModel* theModel)
|
|
{
|
|
myTableView->setModel (theModel);
|
|
|
|
for (int aColumnId = 0, aCount = theModel->columnCount(); aColumnId < aCount; aColumnId++)
|
|
myTableView->setColumnWidth (aColumnId, myDefaultColumnWidths.contains (aColumnId) ?
|
|
myDefaultColumnWidths[aColumnId] : DFBrowserPane_Tools::DefaultPanelColumnWidth (aColumnId));
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : SetFixedRowCount
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_TableView::SetFixedRowCount (const int theCount, QTableView* theView, const bool theScroll)
|
|
{
|
|
int aHeight = theView->verticalHeader()->defaultSectionSize()*theCount + TreeModel_Tools::HeaderSectionMargin();
|
|
if (theScroll)
|
|
aHeight += theView->horizontalScrollBar()->sizeHint().height();
|
|
|
|
theView->setMaximumHeight (aHeight);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : SetVisibleHorizontalHeader
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_TableView::SetVisibleHorizontalHeader (const bool& theVisible)
|
|
{
|
|
myTableView->horizontalHeader()->setVisible (theVisible);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : GetSelectedColumnValues
|
|
// purpose :
|
|
// =======================================================================
|
|
QStringList DFBrowserPane_TableView::GetSelectedColumnValues (QTableView* theTableView, const int theColumnId)
|
|
{
|
|
QAbstractItemModel* aModel = theTableView->model();
|
|
QModelIndexList aSelectedIndices = theTableView->selectionModel()->selectedIndexes();
|
|
|
|
QStringList aSelectedEntries;
|
|
for (QModelIndexList::const_iterator aSelectedIt = aSelectedIndices.begin();
|
|
aSelectedIt != aSelectedIndices.end(); aSelectedIt++)
|
|
{
|
|
QModelIndex anIndex = *aSelectedIt;
|
|
if (theColumnId == anIndex.column())
|
|
aSelectedEntries.append (aModel->data (aModel->index (anIndex.row(), theColumnId, anIndex.parent()),
|
|
Qt::DisplayRole).toString());
|
|
}
|
|
return aSelectedEntries;
|
|
}
|