mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
1. Added specific header files to disable and restore compiler warnings: Standard_WarningsDisable.hxx, Standard_WarningsRestore.hxx. (Currently only MSVC compiler is handled.) 2. Inspector: compiler warnings are disabled for all includes of Qt headers. 3. Inspector: minor code correction to avoid warning due to use of floating point values in integer calculations.
165 lines
5.5 KiB
C++
165 lines
5.5 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_AttributePaneModel.hxx>
|
|
|
|
#include <Standard_WarningsDisable.hxx>
|
|
#include <QApplication>
|
|
#include <QFont>
|
|
#include <QColor>
|
|
#include <Standard_WarningsRestore.hxx>
|
|
|
|
// =======================================================================
|
|
// function : Constructor
|
|
// purpose :
|
|
// =======================================================================
|
|
DFBrowserPane_AttributePaneModel::DFBrowserPane_AttributePaneModel (QObject* theParent)
|
|
: QAbstractTableModel (theParent), myOrientation (Qt::Vertical), myColumnCount (1)
|
|
{
|
|
myItalicColumns.append (0);
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : Init
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_AttributePaneModel::Init (const QList<QVariant>& theValues)
|
|
{
|
|
myValuesMap.clear();
|
|
|
|
if (myOrientation == Qt::Vertical)
|
|
{
|
|
int aRows = theValues.size() / myColumnCount;
|
|
QList<QVariant> aRowValues;
|
|
int aValuesIndex = 0;
|
|
for (int aRowId = 0; aRowId < aRows; aRowId++)
|
|
{
|
|
aRowValues.clear();
|
|
for (int aColumnId = 0; aColumnId < myColumnCount; aColumnId++)
|
|
{
|
|
aRowValues.append (theValues[aValuesIndex]);
|
|
aValuesIndex++;
|
|
}
|
|
myValuesMap[aRowId] = aRowValues;
|
|
}
|
|
}
|
|
else {
|
|
int aCols = theValues.size() / myColumnCount;
|
|
QList<QVariant> aColValues;
|
|
int aValuesIndex = 0;
|
|
for (int aColumnId = 0; aColumnId < aCols; aColumnId++)
|
|
{
|
|
aColValues.clear();
|
|
for (int aRowId = 0; aRowId < myColumnCount; aRowId++)
|
|
{
|
|
aColValues.append (theValues[aValuesIndex]);
|
|
aValuesIndex++;
|
|
}
|
|
myValuesMap[aColumnId] = aColValues;
|
|
}
|
|
}
|
|
emit layoutChanged();
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : SetHeaderValues
|
|
// purpose :
|
|
// =======================================================================
|
|
void DFBrowserPane_AttributePaneModel::SetHeaderValues (const QList<QVariant>& theValues,
|
|
Qt::Orientation theOrientation)
|
|
{
|
|
if (theOrientation == Qt::Horizontal)
|
|
myHorizontalHeaderValues = theValues;
|
|
else
|
|
myVerticalHeaderValues = theValues;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : columnCount
|
|
// purpose :
|
|
// =======================================================================
|
|
int DFBrowserPane_AttributePaneModel::columnCount (const QModelIndex&/* theParent*/) const
|
|
{
|
|
return myOrientation == Qt::Vertical ? myColumnCount : myValuesMap.size();
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : rowCount
|
|
// purpose :
|
|
// =======================================================================
|
|
int DFBrowserPane_AttributePaneModel::rowCount (const QModelIndex&/* theParent*/) const
|
|
{
|
|
return myOrientation == Qt::Vertical ? myValuesMap.size() : myColumnCount;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : data
|
|
// purpose :
|
|
// =======================================================================
|
|
QVariant DFBrowserPane_AttributePaneModel::data (const QModelIndex& theIndex, int theRole) const
|
|
{
|
|
QVariant aValue;
|
|
|
|
if (theRole == Qt::DisplayRole)
|
|
{
|
|
if (myOrientation == Qt::Vertical)
|
|
{
|
|
int aRowId = theIndex.row();
|
|
QList<QVariant> aRowValues = myValuesMap[aRowId];
|
|
aValue = aRowValues.at (theIndex.column());
|
|
}
|
|
else
|
|
{
|
|
int aColId = theIndex.column();
|
|
QList<QVariant> aColValues = myValuesMap[aColId];
|
|
aValue = aColValues.at (theIndex.row());
|
|
}
|
|
}
|
|
if (myItalicColumns.contains (theIndex.column()) && theRole == Qt::FontRole)
|
|
{
|
|
QFont aFont = qApp->font();
|
|
aFont.setItalic (true);
|
|
return aFont;
|
|
}
|
|
if (myItalicColumns.contains (theIndex.column()) && theRole == Qt::ForegroundRole)
|
|
return QColor (Qt::darkGray).darker(150);
|
|
|
|
return aValue;
|
|
}
|
|
|
|
// =======================================================================
|
|
// function : headerData
|
|
// purpose :
|
|
// =======================================================================
|
|
QVariant DFBrowserPane_AttributePaneModel::headerData (int theSection, Qt::Orientation theOrientation,
|
|
int theRole) const
|
|
{
|
|
QVariant aValue = QAbstractTableModel::headerData (theSection, theOrientation, theRole);
|
|
if (theRole == Qt::DisplayRole)
|
|
{
|
|
if (theOrientation == Qt::Horizontal)
|
|
{
|
|
if (!myHorizontalHeaderValues.empty() && theSection < myHorizontalHeaderValues.size())
|
|
aValue = myHorizontalHeaderValues[theSection];
|
|
}
|
|
else
|
|
{ // vertical
|
|
if (!myVerticalHeaderValues.empty() && theSection < myVerticalHeaderValues.size())
|
|
aValue = myVerticalHeaderValues[theSection];
|
|
}
|
|
}
|
|
return aValue;
|
|
}
|