mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
Update empty method guards to new style with regex (see PR). Used clang-format 18.1.8. New actions to validate code formatting is added. Update .clang-format with disabling of include sorting. It is temporary changes, then include will be sorted. Apply formatting for /src and /tools folder. The files with .hxx,.cxx,.lxx,.h,.pxx,.hpp,*.cpp extensions.
193 lines
7.1 KiB
C++
193 lines
7.1 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_AttributePane.hxx>
|
|
#include <inspector/DFBrowserPane_ItemRole.hxx>
|
|
#include <inspector/DFBrowserPane_TableView.hxx>
|
|
#include <inspector/DFBrowserPane_Tools.hxx>
|
|
#include <inspector/DFBrowserPane_AttributePaneModel.hxx>
|
|
|
|
#include <AIS_InteractiveObject.hxx>
|
|
|
|
#include <Standard_WarningsDisable.hxx>
|
|
#include <QGridLayout>
|
|
#include <QHeaderView>
|
|
#include <QItemSelectionModel>
|
|
#include <QTableView>
|
|
#include <QWidget>
|
|
#include <Standard_WarningsRestore.hxx>
|
|
|
|
// =======================================================================
|
|
// function : Constructor
|
|
// purpose :
|
|
// =======================================================================
|
|
DFBrowserPane_AttributePane::DFBrowserPane_AttributePane()
|
|
: DFBrowserPane_AttributePaneAPI(),
|
|
myMainWidget(0),
|
|
myTableView(0)
|
|
{
|
|
myPaneModel = new DFBrowserPane_AttributePaneModel();
|
|
|
|
getPaneModel()->SetColumnCount(getColumnCount());
|
|
getPaneModel()->SetHeaderValues(getHeaderValues(Qt::Horizontal), Qt::Horizontal);
|
|
|
|
mySelectionModels.push_back(new QItemSelectionModel(myPaneModel));
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : GetWidget
|
|
// purpose :
|
|
// =======================================================================
|
|
QWidget* DFBrowserPane_AttributePane::GetWidget(QWidget* theParent, const bool isToCreate)
|
|
{
|
|
if (!myMainWidget && isToCreate)
|
|
myMainWidget = CreateWidget(theParent);
|
|
return myMainWidget;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : CreateWidget
|
|
// purpose :
|
|
// =======================================================================
|
|
QWidget* DFBrowserPane_AttributePane::CreateWidget(QWidget* theParent)
|
|
{
|
|
QWidget* aMainWidget = new QWidget(theParent);
|
|
aMainWidget->setVisible(false);
|
|
|
|
myTableView = new DFBrowserPane_TableView(aMainWidget, getTableColumnWidths());
|
|
myTableView->SetModel(myPaneModel);
|
|
QTableView* aTableView = myTableView->GetTableView();
|
|
DFBrowserPane_AttributePaneModel* aPaneModel =
|
|
dynamic_cast<DFBrowserPane_AttributePaneModel*>(myPaneModel);
|
|
if (aPaneModel)
|
|
{
|
|
if (aPaneModel->GetOrientation() == Qt::Vertical)
|
|
aTableView->horizontalHeader()->setVisible(
|
|
!aPaneModel->HeaderValues(Qt::Horizontal).isEmpty());
|
|
else
|
|
aTableView->verticalHeader()->setVisible(!aPaneModel->HeaderValues(Qt::Vertical).isEmpty());
|
|
}
|
|
aTableView->setSelectionModel(mySelectionModels.front());
|
|
aTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
|
|
QGridLayout* aLay = new QGridLayout(aMainWidget);
|
|
aLay->setContentsMargins(0, 0, 0, 0);
|
|
aLay->addWidget(myTableView);
|
|
|
|
return aMainWidget;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : Init
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_AttributePane::Init(const Handle(TDF_Attribute)& theAttribute)
|
|
{
|
|
QList<QVariant> aValues;
|
|
GetValues(theAttribute, aValues);
|
|
getPaneModel()->Init(aValues);
|
|
|
|
if (myTableView)
|
|
myTableView->GetTableView()->resizeColumnToContents(0);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : GetAttributeInfo
|
|
// purpose :
|
|
// =======================================================================
|
|
QVariant DFBrowserPane_AttributePane::GetAttributeInfo(const Handle(TDF_Attribute)& theAttribute,
|
|
int theRole,
|
|
int theColumnId)
|
|
{
|
|
switch (theRole)
|
|
{
|
|
case DFBrowserPane_ItemRole_ShortInfo: {
|
|
QList<QVariant> aValues;
|
|
GetShortAttributeInfo(theAttribute, aValues);
|
|
QStringList anInfoList;
|
|
for (QList<QVariant>::const_iterator aValuesIt = aValues.begin(); aValuesIt != aValues.end();
|
|
aValuesIt++)
|
|
anInfoList.append(aValuesIt->toString());
|
|
return QVariant(anInfoList.join(", "));
|
|
}
|
|
default:
|
|
return DFBrowserPane_AttributePane::GetAttributeInfoByType(
|
|
theAttribute.IsNull() ? "" : theAttribute->DynamicType()->Name(),
|
|
theRole,
|
|
theColumnId);
|
|
}
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : GetShortAttributeInfo
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_AttributePane::GetShortAttributeInfo(const Handle(TDF_Attribute)& theAttribute,
|
|
QList<QVariant>& theValues)
|
|
{
|
|
QList<QVariant> aValues;
|
|
GetValues(theAttribute, aValues);
|
|
|
|
for (int aValuesEvenId = 1; aValuesEvenId < aValues.size(); aValuesEvenId = aValuesEvenId + 2)
|
|
theValues.append(aValues[aValuesEvenId]);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : GetAttributeInfoByType
|
|
// purpose :
|
|
// =======================================================================
|
|
QVariant DFBrowserPane_AttributePane::GetAttributeInfoByType(Standard_CString theAttributeName,
|
|
int theRole,
|
|
int theColumnId)
|
|
{
|
|
if (theColumnId != 0)
|
|
return QVariant();
|
|
|
|
switch (theRole)
|
|
{
|
|
case Qt::DisplayRole:
|
|
case Qt::ToolTipRole:
|
|
return QVariant(theAttributeName);
|
|
case Qt::DecorationRole:
|
|
return QIcon(":/icons/attribute.png");
|
|
case DFBrowserPane_ItemRole_Decoration_40x40:
|
|
return QIcon(":/icons/attribute_40x40.png");
|
|
default:
|
|
break;
|
|
}
|
|
return QVariant();
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : getPaneModel
|
|
// purpose :
|
|
// =======================================================================
|
|
DFBrowserPane_AttributePaneModel* DFBrowserPane_AttributePane::getPaneModel() const
|
|
{
|
|
return dynamic_cast<DFBrowserPane_AttributePaneModel*>(myPaneModel);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : getTableColumnWidths
|
|
// purpose :
|
|
// =======================================================================
|
|
QMap<int, int> DFBrowserPane_AttributePane::getTableColumnWidths() const
|
|
{
|
|
QMap<int, int> aValues;
|
|
for (int aColumnId = 0, aCount = getPaneModel()->columnCount(); aColumnId < aCount; aColumnId++)
|
|
aValues.insert(aColumnId, DFBrowserPane_Tools::DefaultPanelColumnWidth(aColumnId));
|
|
return aValues;
|
|
}
|