mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Merge pull request #4740 from OPM/sync-tree-selection-with-field-value
Sync tree selection with field value
This commit is contained in:
commit
d4b64c58f2
@ -605,6 +605,7 @@ void RiuSummaryCurveDefSelection::setSelectedCurveDefinitions( const std::vector
|
|||||||
{
|
{
|
||||||
resetAllFields();
|
resetAllFields();
|
||||||
|
|
||||||
|
std::set<RifEclipseSummaryAddress::SummaryVarCategory> categories;
|
||||||
for ( const auto& curveDef : curveDefinitions )
|
for ( const auto& curveDef : curveDefinitions )
|
||||||
{
|
{
|
||||||
if ( !( curveDef.summaryCase() || curveDef.isEnsembleCurve() ) ) continue;
|
if ( !( curveDef.summaryCase() || curveDef.isEnsembleCurve() ) ) continue;
|
||||||
@ -664,6 +665,14 @@ void RiuSummaryCurveDefSelection::setSelectedCurveDefinitions( const std::vector
|
|||||||
( *identifierAndField->pdmField() ) = newSelectionVector;
|
( *identifierAndField->pdmField() ) = newSelectionVector;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
categories.insert( curveDef.summaryAddress().category() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !categories.empty() )
|
||||||
|
{
|
||||||
|
RifEclipseSummaryAddress::SummaryVarCategory cat = *( categories.begin() );
|
||||||
|
m_currentSummaryCategory.setValue( cat );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1180,7 +1189,7 @@ void RiuSummaryCurveDefSelection::defineEditorAttribute( const caf::PdmFieldHand
|
|||||||
{
|
{
|
||||||
if ( &m_selectedSummaryCategories == field )
|
if ( &m_selectedSummaryCategories == field )
|
||||||
{
|
{
|
||||||
attrib->fieldToReceiveCurrentItemValue = &m_currentSummaryCategory;
|
attrib->currentIndexFieldHandle = &m_currentSummaryCategory;
|
||||||
attrib->showTextFilter = false;
|
attrib->showTextFilter = false;
|
||||||
attrib->showToggleAllCheckbox = false;
|
attrib->showToggleAllCheckbox = false;
|
||||||
attrib->setCurrentIndexWhenItemIsChecked = true;
|
attrib->setCurrentIndexWhenItemIsChecked = true;
|
||||||
|
@ -43,57 +43,56 @@
|
|||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class WidgetCellIds
|
class WidgetCellIds
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WidgetCellIds(QWidget* w, const std::vector<int>& occupiedCellIds)
|
WidgetCellIds(QWidget* w, const std::vector<int>& occupiedCellIds)
|
||||||
: m_customWidget(w),
|
: m_customWidget(w)
|
||||||
m_customWidgetCellIds(occupiedCellIds)
|
, m_customWidgetCellIds(occupiedCellIds)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget* m_customWidget;
|
QWidget* m_customWidget;
|
||||||
std::vector<int> m_customWidgetCellIds;
|
std::vector<int> m_customWidgetCellIds;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
CustomObjectEditor::CustomObjectEditor()
|
CustomObjectEditor::CustomObjectEditor()
|
||||||
{
|
{
|
||||||
m_columnCount = 3;
|
m_columnCount = 3;
|
||||||
m_rowCount = 2;
|
m_rowCount = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
CustomObjectEditor::~CustomObjectEditor()
|
CustomObjectEditor::~CustomObjectEditor() {}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::defineGridLayout(int rowCount, int columnCount)
|
void CustomObjectEditor::defineGridLayout(int rowCount, int columnCount)
|
||||||
{
|
{
|
||||||
m_rowCount = rowCount;
|
m_rowCount = rowCount;
|
||||||
m_columnCount = columnCount;
|
m_columnCount = columnCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::addWidget(QWidget* widget, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment /*= 0*/)
|
void CustomObjectEditor::addWidget(QWidget* widget,
|
||||||
|
int row,
|
||||||
|
int column,
|
||||||
|
int rowSpan,
|
||||||
|
int columnSpan,
|
||||||
|
Qt::Alignment alignment /*= 0*/)
|
||||||
{
|
{
|
||||||
CAF_ASSERT(isAreaAvailable(row, column, rowSpan, columnSpan));
|
CAF_ASSERT(isAreaAvailable(row, column, rowSpan, columnSpan));
|
||||||
|
|
||||||
@ -104,7 +103,7 @@ void CustomObjectEditor::addWidget(QWidget* widget, int row, int column, int row
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::removeWidget(QWidget* widget)
|
void CustomObjectEditor::removeWidget(QWidget* widget)
|
||||||
{
|
{
|
||||||
@ -127,7 +126,7 @@ void CustomObjectEditor::removeWidget(QWidget* widget)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::addBlankCell(int row, int column)
|
void CustomObjectEditor::addBlankCell(int row, int column)
|
||||||
{
|
{
|
||||||
@ -135,7 +134,7 @@ void CustomObjectEditor::addBlankCell(int row, int column)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QWidget* CustomObjectEditor::createWidget(QWidget* parent)
|
QWidget* CustomObjectEditor::createWidget(QWidget* parent)
|
||||||
{
|
{
|
||||||
@ -149,9 +148,10 @@ QWidget* CustomObjectEditor::createWidget(QWidget* parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::recursivelyConfigureAndUpdateTopLevelUiOrdering(const PdmUiOrdering& topLevelUiOrdering, const QString& uiConfigName)
|
void CustomObjectEditor::recursivelyConfigureAndUpdateTopLevelUiOrdering(const PdmUiOrdering& topLevelUiOrdering,
|
||||||
|
const QString& uiConfigName)
|
||||||
{
|
{
|
||||||
resetCellId();
|
resetCellId();
|
||||||
|
|
||||||
@ -165,14 +165,14 @@ void CustomObjectEditor::recursivelyConfigureAndUpdateTopLevelUiOrdering(const P
|
|||||||
|
|
||||||
if (topLevelUiItems[i].first->isUiGroup())
|
if (topLevelUiItems[i].first->isUiGroup())
|
||||||
{
|
{
|
||||||
PdmUiGroup* group = static_cast<PdmUiGroup*>(topLevelUiItems[i].first);
|
PdmUiGroup* group = static_cast<PdmUiGroup*>(topLevelUiItems[i].first);
|
||||||
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
|
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
|
||||||
|
|
||||||
/// Insert the group box at the correct position of the parent layout
|
/// Insert the group box at the correct position of the parent layout
|
||||||
int nextCellId = getNextAvailableCellId();
|
int nextCellId = getNextAvailableCellId();
|
||||||
std::pair<int, int> rowCol = rowAndColumn(nextCellId);
|
std::pair<int, int> rowCol = rowAndColumn(nextCellId);
|
||||||
m_layout->addWidget(groupBox, rowCol.first, rowCol.second, 1, 1);
|
m_layout->addWidget(groupBox, rowCol.first, rowCol.second, 1, 1);
|
||||||
|
|
||||||
recursivelyConfigureAndUpdateUiOrderingInNewGridLayout(*group, groupBox->contentFrame(), uiConfigName);
|
recursivelyConfigureAndUpdateUiOrderingInNewGridLayout(*group, groupBox->contentFrame(), uiConfigName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ void CustomObjectEditor::recursivelyConfigureAndUpdateTopLevelUiOrdering(const P
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool CustomObjectEditor::isAreaAvailable(int row, int column, int rowSpan, int columnSpan) const
|
bool CustomObjectEditor::isAreaAvailable(int row, int column, int rowSpan, int columnSpan) const
|
||||||
{
|
{
|
||||||
@ -201,7 +201,7 @@ bool CustomObjectEditor::isAreaAvailable(int row, int column, int rowSpan, int c
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool CustomObjectEditor::isCellIdAvailable(int cellId) const
|
bool CustomObjectEditor::isCellIdAvailable(int cellId) const
|
||||||
{
|
{
|
||||||
@ -220,7 +220,7 @@ bool CustomObjectEditor::isCellIdAvailable(int cellId) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void CustomObjectEditor::resetCellId()
|
void CustomObjectEditor::resetCellId()
|
||||||
{
|
{
|
||||||
@ -228,18 +228,18 @@ void CustomObjectEditor::resetCellId()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::pair<int, int> CustomObjectEditor::rowAndColumn(int cellId) const
|
std::pair<int, int> CustomObjectEditor::rowAndColumn(int cellId) const
|
||||||
{
|
{
|
||||||
int column = cellId % m_columnCount;
|
int column = cellId % m_columnCount;
|
||||||
int row = cellId / m_columnCount;
|
int row = cellId / m_columnCount;
|
||||||
|
|
||||||
return std::make_pair(row, column);
|
return std::make_pair(row, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
int CustomObjectEditor::cellId(int row, int column) const
|
int CustomObjectEditor::cellId(int row, int column) const
|
||||||
{
|
{
|
||||||
@ -247,7 +247,7 @@ int CustomObjectEditor::cellId(int row, int column) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
int CustomObjectEditor::getNextAvailableCellId()
|
int CustomObjectEditor::getNextAvailableCellId()
|
||||||
{
|
{
|
||||||
@ -267,7 +267,7 @@ int CustomObjectEditor::getNextAvailableCellId()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<int> CustomObjectEditor::cellIds(int row, int column, int rowSpan, int columnSpan) const
|
std::vector<int> CustomObjectEditor::cellIds(int row, int column, int rowSpan, int columnSpan) const
|
||||||
{
|
{
|
||||||
@ -284,5 +284,4 @@ std::vector<int> CustomObjectEditor::cellIds(int row, int column, int rowSpan, i
|
|||||||
return cells;
|
return cells;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // end namespace caf
|
} // end namespace caf
|
||||||
|
@ -48,13 +48,11 @@ class QWidget;
|
|||||||
|
|
||||||
class WidgetCellIds;
|
class WidgetCellIds;
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
|
||||||
class PdmUiItem;
|
class PdmUiItem;
|
||||||
class PdmUiGroup;
|
class PdmUiGroup;
|
||||||
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
/// Automatically layout top level groups into a grid layout
|
/// Automatically layout top level groups into a grid layout
|
||||||
///
|
///
|
||||||
@ -77,9 +75,9 @@ public:
|
|||||||
void addBlankCell(int row, int column);
|
void addBlankCell(int row, int column);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QWidget* createWidget(QWidget* parent) override;
|
QWidget* createWidget(QWidget* parent) override;
|
||||||
void recursivelyConfigureAndUpdateTopLevelUiOrdering(const PdmUiOrdering& topLevelUiOrdering,
|
void recursivelyConfigureAndUpdateTopLevelUiOrdering(const PdmUiOrdering& topLevelUiOrdering,
|
||||||
const QString& uiConfigName) override;
|
const QString& uiConfigName) override;
|
||||||
|
|
||||||
bool isAreaAvailable(int row, int column, int rowSpan, int columnSpan) const;
|
bool isAreaAvailable(int row, int column, int rowSpan, int columnSpan) const;
|
||||||
bool isCellIdAvailable(int cellId) const;
|
bool isCellIdAvailable(int cellId) const;
|
||||||
@ -90,15 +88,13 @@ private:
|
|||||||
std::vector<int> cellIds(int row, int column, int rowSpan, int columnSpan) const;
|
std::vector<int> cellIds(int row, int column, int rowSpan, int columnSpan) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPointer<QGridLayout> m_layout;
|
QPointer<QGridLayout> m_layout;
|
||||||
|
|
||||||
int m_rowCount;
|
int m_rowCount;
|
||||||
int m_columnCount;
|
int m_columnCount;
|
||||||
int m_currentCellId;
|
int m_currentCellId;
|
||||||
|
|
||||||
std::vector<WidgetCellIds> m_customWidgetAreas;
|
std::vector<WidgetCellIds> m_customWidgetAreas;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // end namespace caf
|
} // end namespace caf
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QMainWindow>
|
|
||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
#include <QItemSelection>
|
#include <QItemSelection>
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
class DemoPdmObject;
|
class DemoPdmObject;
|
||||||
class DemoPdmObjectGroup;
|
class DemoPdmObjectGroup;
|
||||||
@ -12,14 +12,14 @@ class QLabel;
|
|||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
class PdmObjectCollection;
|
class PdmObjectCollection;
|
||||||
class PdmObjectHandle;
|
class PdmObjectHandle;
|
||||||
class UiTreeModelPdm;
|
class UiTreeModelPdm;
|
||||||
class PdmUiPropertyView;
|
class PdmUiPropertyView;
|
||||||
class PdmUiTreeView;
|
class PdmUiTreeView;
|
||||||
class PdmUiTableView;
|
class PdmUiTableView;
|
||||||
class CustomObjectEditor;
|
class CustomObjectEditor;
|
||||||
}
|
} // namespace caf
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
@ -30,7 +30,7 @@ public:
|
|||||||
~MainWindow() override;
|
~MainWindow() override;
|
||||||
|
|
||||||
static MainWindow* instance();
|
static MainWindow* instance();
|
||||||
void setPdmRoot(caf::PdmObjectHandle* pdmRoot);
|
void setPdmRoot(caf::PdmObjectHandle* pdmRoot);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createActions();
|
void createActions();
|
||||||
@ -56,17 +56,16 @@ private:
|
|||||||
static MainWindow* sm_mainWindowInstance;
|
static MainWindow* sm_mainWindowInstance;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QUndoView* undoView;
|
QUndoView* undoView;
|
||||||
|
|
||||||
caf::PdmUiTreeView* m_pdmUiTreeView;
|
caf::PdmUiTreeView* m_pdmUiTreeView;
|
||||||
caf::PdmUiTreeView* m_pdmUiTreeView2;
|
caf::PdmUiTreeView* m_pdmUiTreeView2;
|
||||||
caf::PdmUiPropertyView* m_pdmUiPropertyView;
|
caf::PdmUiPropertyView* m_pdmUiPropertyView;
|
||||||
caf::PdmUiTableView* m_pdmUiTableView;
|
caf::PdmUiTableView* m_pdmUiTableView;
|
||||||
DemoPdmObjectGroup* m_testRoot;
|
DemoPdmObjectGroup* m_testRoot;
|
||||||
|
|
||||||
caf::CustomObjectEditor* m_customObjectEditor;
|
caf::CustomObjectEditor* m_customObjectEditor;
|
||||||
|
|
||||||
QLabel* m_plotLabel;
|
QLabel* m_plotLabel;
|
||||||
QLabel* m_smallPlotLabel;
|
QLabel* m_smallPlotLabel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,49 +1,56 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "cafPdmObject.h"
|
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmProxyValueField.h"
|
#include "cafPdmProxyValueField.h"
|
||||||
|
|
||||||
|
|
||||||
class ManyGroups : public caf::PdmObject
|
class ManyGroups : public caf::PdmObject
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
public:
|
|
||||||
|
|
||||||
|
public:
|
||||||
ManyGroups();
|
ManyGroups();
|
||||||
|
|
||||||
caf::PdmField<double> m_doubleField;
|
caf::PdmField<double> m_doubleField;
|
||||||
caf::PdmField<int> m_intField;
|
caf::PdmField<int> m_intField;
|
||||||
caf::PdmField<QString> m_textField;
|
caf::PdmField<QString> m_textField;
|
||||||
caf::PdmProxyValueField<double> m_proxyDoubleField;
|
caf::PdmProxyValueField<double> m_proxyDoubleField;
|
||||||
|
|
||||||
caf::PdmField<std::vector<QString> > m_multiSelectList;
|
caf::PdmField<std::vector<QString>> m_multiSelectList;
|
||||||
caf::PdmField<QString> m_stringWithMultipleOptions;
|
caf::PdmField<QString> m_stringWithMultipleOptions;
|
||||||
|
|
||||||
caf::PdmField<bool> m_toggleField;
|
caf::PdmField<bool> m_toggleField;
|
||||||
caf::PdmFieldHandle* objectToggleField() override;
|
caf::PdmFieldHandle* objectToggleField() override;
|
||||||
|
|
||||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
void setDoubleMember(const double& d) { m_doubleMember = d; std::cout << "setDoubleMember" << std::endl; }
|
void setDoubleMember(const double& d)
|
||||||
double doubleMember() const { std::cout << "doubleMember" << std::endl; return m_doubleMember; }
|
{
|
||||||
|
m_doubleMember = d;
|
||||||
|
std::cout << "setDoubleMember" << std::endl;
|
||||||
|
}
|
||||||
|
double doubleMember() const
|
||||||
|
{
|
||||||
|
std::cout << "doubleMember" << std::endl;
|
||||||
|
return m_doubleMember;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override;
|
QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||||
|
bool* useOptionsOnly) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double m_doubleMember;
|
double m_doubleMember;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||||
|
|
||||||
void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
void defineEditorAttribute(const caf::PdmFieldHandle* field,
|
||||||
|
QString uiConfigName,
|
||||||
|
caf::PdmUiEditorAttribute* attribute) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,17 +43,13 @@
|
|||||||
#include <QTextCursor>
|
#include <QTextCursor>
|
||||||
#include <QTextEdit>
|
#include <QTextEdit>
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
MenuItemProducer::MenuItemProducer() {}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
MenuItemProducer::MenuItemProducer()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void MenuItemProducer::attachTextEdit(QTextEdit* textEdit)
|
void MenuItemProducer::attachTextEdit(QTextEdit* textEdit)
|
||||||
{
|
{
|
||||||
@ -62,16 +58,16 @@ void MenuItemProducer::attachTextEdit(QTextEdit* textEdit)
|
|||||||
textEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
textEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
QObject::connect(textEdit, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotMenuItems(QPoint)));
|
QObject::connect(textEdit, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotMenuItems(QPoint)));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_textEdit = textEdit;
|
m_textEdit = textEdit;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void MenuItemProducer::slotMenuItems(QPoint point)
|
void MenuItemProducer::slotMenuItems(QPoint point)
|
||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
QAction act("Testing", this);
|
QAction act("Testing", this);
|
||||||
connect(&act, SIGNAL(triggered()), SLOT(slotShowText()));
|
connect(&act, SIGNAL(triggered()), SLOT(slotShowText()));
|
||||||
|
|
||||||
@ -89,13 +85,13 @@ void MenuItemProducer::slotMenuItems(QPoint point)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void MenuItemProducer::slotShowText()
|
void MenuItemProducer::slotShowText()
|
||||||
{
|
{
|
||||||
if (m_textEdit)
|
if (m_textEdit)
|
||||||
{
|
{
|
||||||
QAction* action = qobject_cast<QAction *>(sender());
|
QAction* action = qobject_cast<QAction*>(sender());
|
||||||
if (action)
|
if (action)
|
||||||
{
|
{
|
||||||
QTextCursor cursor = m_textEdit->textCursor();
|
QTextCursor cursor = m_textEdit->textCursor();
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QPoint>
|
#include <QPoint>
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
@ -65,6 +64,3 @@ private:
|
|||||||
QPointer<QTextEdit> m_textEdit;
|
QPointer<QTextEdit> m_textEdit;
|
||||||
int m_textPosition;
|
int m_textPosition;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,23 +2,20 @@
|
|||||||
#include "WidgetLayoutTest.h"
|
#include "WidgetLayoutTest.h"
|
||||||
|
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*= 0*/)
|
WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*= 0*/)
|
||||||
: QWidget(parent, f)
|
: QWidget(parent, f)
|
||||||
{
|
{
|
||||||
QVBoxLayout* l = new QVBoxLayout;
|
QVBoxLayout* l = new QVBoxLayout;
|
||||||
setLayout(l);
|
setLayout(l);
|
||||||
|
|
||||||
{
|
{
|
||||||
QPushButton* b1 = new QPushButton("Original config", this);
|
QPushButton* b1 = new QPushButton("Original config", this);
|
||||||
connect(b1, SIGNAL(clicked()), SLOT(setUpInitialConfiguration()));
|
connect(b1, SIGNAL(clicked()), SLOT(setUpInitialConfiguration()));
|
||||||
@ -47,11 +44,11 @@ WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*
|
|||||||
m_widget4 = new QLineEdit("4", this);
|
m_widget4 = new QLineEdit("4", this);
|
||||||
m_widget5 = new QLineEdit("5", this);
|
m_widget5 = new QLineEdit("5", this);
|
||||||
|
|
||||||
m_groupBoxA = new QGroupBox("Groupbox A", this);
|
m_groupBoxA = new QGroupBox("Groupbox A", this);
|
||||||
m_groupBoxALayout = new QGridLayout();
|
m_groupBoxALayout = new QGridLayout();
|
||||||
m_groupBoxA->setLayout(m_groupBoxALayout);
|
m_groupBoxA->setLayout(m_groupBoxALayout);
|
||||||
|
|
||||||
m_groupBoxB = new QGroupBox("Groupbox B", this);
|
m_groupBoxB = new QGroupBox("Groupbox B", this);
|
||||||
m_groupBoxBLayout = new QGridLayout();
|
m_groupBoxBLayout = new QGridLayout();
|
||||||
m_groupBoxB->setLayout(m_groupBoxBLayout);
|
m_groupBoxB->setLayout(m_groupBoxBLayout);
|
||||||
|
|
||||||
@ -59,22 +56,19 @@ WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
WidgetLayoutTest::~WidgetLayoutTest()
|
WidgetLayoutTest::~WidgetLayoutTest() {}
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfiguration()
|
void WidgetLayoutTest::setUpInitialConfiguration()
|
||||||
{
|
{
|
||||||
m_mainLayout->addWidget(m_widget1);
|
m_mainLayout->addWidget(m_widget1);
|
||||||
|
|
||||||
m_mainLayout->addWidget(m_groupBoxA);
|
m_mainLayout->addWidget(m_groupBoxA);
|
||||||
|
|
||||||
m_groupBoxALayout->addWidget(m_widget2, 0, 0);
|
m_groupBoxALayout->addWidget(m_widget2, 0, 0);
|
||||||
if (!m_widget3)
|
if (!m_widget3)
|
||||||
{
|
{
|
||||||
@ -89,7 +83,7 @@ void WidgetLayoutTest::setUpInitialConfiguration()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfigurationA()
|
void WidgetLayoutTest::setUpInitialConfigurationA()
|
||||||
{
|
{
|
||||||
@ -100,7 +94,7 @@ void WidgetLayoutTest::setUpInitialConfigurationA()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfigurationB()
|
void WidgetLayoutTest::setUpInitialConfigurationB()
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,9 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
|
|
||||||
class QGridLayout;
|
class QGridLayout;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WidgetLayoutTest : public QWidget
|
class WidgetLayoutTest : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -19,10 +16,10 @@ public:
|
|||||||
private:
|
private:
|
||||||
QGridLayout* m_mainLayout;
|
QGridLayout* m_mainLayout;
|
||||||
|
|
||||||
QGroupBox* m_groupBoxA;
|
QGroupBox* m_groupBoxA;
|
||||||
QGridLayout* m_groupBoxALayout;
|
QGridLayout* m_groupBoxALayout;
|
||||||
|
|
||||||
QGroupBox* m_groupBoxB;
|
QGroupBox* m_groupBoxB;
|
||||||
QGridLayout* m_groupBoxBLayout;
|
QGridLayout* m_groupBoxBLayout;
|
||||||
|
|
||||||
QWidget* m_widget1;
|
QWidget* m_widget1;
|
||||||
@ -36,6 +33,4 @@ private slots:
|
|||||||
|
|
||||||
void setUpInitialConfigurationA();
|
void setUpInitialConfigurationA();
|
||||||
void setUpInitialConfigurationB();
|
void setUpInitialConfigurationB();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
@ -1,355 +1,346 @@
|
|||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
|
|
||||||
#include "WidgetLayoutTest.h"
|
#include "WidgetLayoutTest.h"
|
||||||
|
|
||||||
#include "cafAppEnum.h"
|
#include "cafAppEnum.h"
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmObjectGroup.h"
|
#include "cafPdmObjectGroup.h"
|
||||||
#include "cafPdmProxyValueField.h"
|
#include "cafPdmProxyValueField.h"
|
||||||
#include "cafPdmPtrField.h"
|
#include "cafPdmPtrField.h"
|
||||||
#include "cafPdmReferenceHelper.h"
|
#include "cafPdmReferenceHelper.h"
|
||||||
#include "cafPdmUiFilePathEditor.h"
|
#include "cafPdmUiFilePathEditor.h"
|
||||||
#include "cafPdmUiListEditor.h"
|
#include "cafPdmUiListEditor.h"
|
||||||
#include "cafPdmUiPropertyView.h"
|
#include "cafPdmUiPropertyView.h"
|
||||||
#include "cafPdmUiTableView.h"
|
#include "cafPdmUiTableView.h"
|
||||||
#include "cafPdmUiTextEditor.h"
|
#include "cafPdmUiTextEditor.h"
|
||||||
#include "cafPdmUiTreeView.h"
|
#include "cafPdmUiTreeView.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QDockWidget>
|
#include <QDockWidget>
|
||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QTreeView>
|
#include <QTreeView>
|
||||||
#include <QUndoView>
|
#include <QUndoView>
|
||||||
|
|
||||||
#ifdef TAP_USE_COMMAND_FRAMEWORK
|
#ifdef TAP_USE_COMMAND_FRAMEWORK
|
||||||
#include "cafCmdExecCommandManager.h"
|
#include "cafCmdExecCommandManager.h"
|
||||||
#include "cafCmdSelectionHelper.h"
|
#include "cafCmdFeatureManager.h"
|
||||||
#include "cafCmdFeatureManager.h"
|
#include "cafCmdSelectionHelper.h"
|
||||||
#endif
|
#endif
|
||||||
#include "TapProject.h"
|
#include "TapProject.h"
|
||||||
|
|
||||||
|
MainWindow* MainWindow::sm_mainWindowInstance = NULL;
|
||||||
MainWindow* MainWindow::sm_mainWindowInstance = NULL;
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
//--------------------------------------------------------------------------------------------------
|
///
|
||||||
///
|
//--------------------------------------------------------------------------------------------------
|
||||||
//--------------------------------------------------------------------------------------------------
|
MainWindow::MainWindow()
|
||||||
MainWindow::MainWindow()
|
{
|
||||||
{
|
// Initialize command framework
|
||||||
// Initialize command framework
|
|
||||||
|
// Register default command features (add/delete item in list)
|
||||||
// Register default command features (add/delete item in list)
|
|
||||||
|
createActions();
|
||||||
createActions();
|
createDockPanels();
|
||||||
createDockPanels();
|
|
||||||
|
buildTestModel();
|
||||||
buildTestModel();
|
setPdmRoot(m_project);
|
||||||
setPdmRoot(m_project);
|
|
||||||
|
sm_mainWindowInstance = this;
|
||||||
sm_mainWindowInstance = this;
|
caf::SelectionManager::instance()->setPdmRootObject(m_project);
|
||||||
caf::SelectionManager::instance()->setPdmRootObject(m_project);
|
|
||||||
|
#ifdef TAP_USE_COMMAND_FRAMEWORK
|
||||||
#ifdef TAP_USE_COMMAND_FRAMEWORK
|
caf::CmdExecCommandManager::instance()->enableUndoCommandSystem(true);
|
||||||
caf::CmdExecCommandManager::instance()->enableUndoCommandSystem(true);
|
undoView->setStack(caf::CmdExecCommandManager::instance()->undoStack());
|
||||||
undoView->setStack(caf::CmdExecCommandManager::instance()->undoStack());
|
#endif
|
||||||
#endif
|
}
|
||||||
|
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
void MainWindow::createDockPanels()
|
||||||
//--------------------------------------------------------------------------------------------------
|
{
|
||||||
void MainWindow::createDockPanels()
|
{
|
||||||
{
|
QDockWidget* dockWidget = new QDockWidget("PdmTreeView - controls property view", this);
|
||||||
{
|
dockWidget->setObjectName("dockWidget");
|
||||||
QDockWidget* dockWidget = new QDockWidget("PdmTreeView - controls property view", this);
|
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
dockWidget->setObjectName("dockWidget");
|
|
||||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
m_pdmUiTreeView = new caf::PdmUiTreeView(dockWidget);
|
||||||
|
dockWidget->setWidget(m_pdmUiTreeView);
|
||||||
m_pdmUiTreeView = new caf::PdmUiTreeView(dockWidget);
|
|
||||||
dockWidget->setWidget(m_pdmUiTreeView);
|
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
||||||
|
}
|
||||||
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
|
||||||
}
|
{
|
||||||
|
QDockWidget* dockWidget = new QDockWidget("cafPropertyView", this);
|
||||||
{
|
dockWidget->setObjectName("dockWidget");
|
||||||
QDockWidget* dockWidget = new QDockWidget("cafPropertyView", this);
|
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
dockWidget->setObjectName("dockWidget");
|
|
||||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget);
|
||||||
|
dockWidget->setWidget(m_pdmUiPropertyView);
|
||||||
m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget);
|
|
||||||
dockWidget->setWidget(m_pdmUiPropertyView);
|
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
||||||
|
}
|
||||||
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
|
|
||||||
}
|
{
|
||||||
|
QDockWidget* dockWidget = new QDockWidget("PdmTreeView2 - controls table view", this);
|
||||||
{
|
dockWidget->setObjectName("dockWidget");
|
||||||
QDockWidget* dockWidget = new QDockWidget("PdmTreeView2 - controls table view", this);
|
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
dockWidget->setObjectName("dockWidget");
|
|
||||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
m_pdmUiTreeView2 = new caf::PdmUiTreeView(dockWidget);
|
||||||
|
m_pdmUiTreeView2->enableDefaultContextMenu(true);
|
||||||
m_pdmUiTreeView2 = new caf::PdmUiTreeView(dockWidget);
|
m_pdmUiTreeView2->enableSelectionManagerUpdating(true);
|
||||||
m_pdmUiTreeView2->enableDefaultContextMenu(true);
|
dockWidget->setWidget(m_pdmUiTreeView2);
|
||||||
m_pdmUiTreeView2->enableSelectionManagerUpdating(true);
|
|
||||||
dockWidget->setWidget(m_pdmUiTreeView2);
|
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
||||||
|
}
|
||||||
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
|
||||||
}
|
{
|
||||||
|
QDockWidget* dockWidget = new QDockWidget("cafTableView", this);
|
||||||
{
|
dockWidget->setObjectName("dockWidget");
|
||||||
QDockWidget* dockWidget = new QDockWidget("cafTableView", this);
|
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
dockWidget->setObjectName("dockWidget");
|
|
||||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
m_pdmUiTableView = new caf::PdmUiTableView(dockWidget);
|
||||||
|
m_pdmUiTableView->setSelectionRole(caf::SelectionManager::CURRENT);
|
||||||
m_pdmUiTableView = new caf::PdmUiTableView(dockWidget);
|
m_pdmUiTableView->enableDefaultContextMenu(true);
|
||||||
m_pdmUiTableView->setSelectionRole(caf::SelectionManager::CURRENT);
|
|
||||||
m_pdmUiTableView->enableDefaultContextMenu(true);
|
dockWidget->setWidget(m_pdmUiTableView);
|
||||||
|
|
||||||
dockWidget->setWidget(m_pdmUiTableView);
|
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
||||||
|
}
|
||||||
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
|
||||||
}
|
{
|
||||||
|
QDockWidget* dockWidget = new QDockWidget("Undo stack", this);
|
||||||
|
dockWidget->setObjectName("dockWidget");
|
||||||
{
|
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
||||||
QDockWidget* dockWidget = new QDockWidget("Undo stack", this);
|
|
||||||
dockWidget->setObjectName("dockWidget");
|
undoView = new QUndoView(this);
|
||||||
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
|
dockWidget->setWidget(undoView);
|
||||||
|
|
||||||
undoView = new QUndoView(this);
|
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
||||||
dockWidget->setWidget(undoView);
|
}
|
||||||
|
}
|
||||||
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
|
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void MainWindow::buildTestModel()
|
||||||
//--------------------------------------------------------------------------------------------------
|
{
|
||||||
///
|
m_project = new TapProject;
|
||||||
//--------------------------------------------------------------------------------------------------
|
}
|
||||||
void MainWindow::buildTestModel()
|
|
||||||
{
|
//--------------------------------------------------------------------------------------------------
|
||||||
m_project = new TapProject;
|
///
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void MainWindow::setPdmRoot(caf::PdmObjectHandle* pdmRoot)
|
||||||
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
caf::PdmUiObjectHandle* uiObject = uiObj(pdmRoot);
|
||||||
///
|
if (uiObject)
|
||||||
//--------------------------------------------------------------------------------------------------
|
{
|
||||||
void MainWindow::setPdmRoot(caf::PdmObjectHandle* pdmRoot)
|
m_pdmUiTreeView->setPdmItem(uiObject);
|
||||||
{
|
}
|
||||||
caf::PdmUiObjectHandle* uiObject = uiObj(pdmRoot);
|
|
||||||
if (uiObject)
|
connect(m_pdmUiTreeView, SIGNAL(selectionChanged()), SLOT(slotSimpleSelectionChanged()));
|
||||||
{
|
|
||||||
m_pdmUiTreeView->setPdmItem(uiObject);
|
// Set up test of using a field as a root item
|
||||||
}
|
// Hack, because we know that pdmRoot is a PdmObjectGroup ...
|
||||||
|
|
||||||
connect(m_pdmUiTreeView, SIGNAL(selectionChanged()), SLOT(slotSimpleSelectionChanged()));
|
std::vector<caf::PdmFieldHandle*> fields;
|
||||||
|
pdmRoot->fields(fields);
|
||||||
// Set up test of using a field as a root item
|
if (fields.size())
|
||||||
// Hack, because we know that pdmRoot is a PdmObjectGroup ...
|
{
|
||||||
|
caf::PdmFieldHandle* field = fields[0];
|
||||||
std::vector<caf::PdmFieldHandle*> fields;
|
caf::PdmUiFieldHandle* uiFieldHandle = field->uiCapability();
|
||||||
pdmRoot->fields(fields);
|
if (uiFieldHandle)
|
||||||
if (fields.size())
|
{
|
||||||
{
|
m_pdmUiTreeView2->setPdmItem(uiFieldHandle);
|
||||||
caf::PdmFieldHandle* field = fields[0];
|
uiFieldHandle->updateConnectedEditors();
|
||||||
caf::PdmUiFieldHandle* uiFieldHandle = field->uiCapability();
|
}
|
||||||
if (uiFieldHandle)
|
}
|
||||||
{
|
|
||||||
m_pdmUiTreeView2->setPdmItem(uiFieldHandle);
|
if (uiObject)
|
||||||
uiFieldHandle->updateConnectedEditors();
|
{
|
||||||
}
|
m_pdmUiTreeView2->setPdmItem(uiObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uiObject)
|
connect(m_pdmUiTreeView2, SIGNAL(selectionChanged()), SLOT(slotShowTableView()));
|
||||||
{
|
}
|
||||||
m_pdmUiTreeView2->setPdmItem(uiObject);
|
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
connect(m_pdmUiTreeView2, SIGNAL(selectionChanged()), SLOT(slotShowTableView()));
|
//--------------------------------------------------------------------------------------------------
|
||||||
}
|
MainWindow::~MainWindow()
|
||||||
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
m_pdmUiTreeView->setPdmItem(NULL);
|
||||||
///
|
m_pdmUiTreeView2->setPdmItem(NULL);
|
||||||
//--------------------------------------------------------------------------------------------------
|
m_pdmUiPropertyView->showProperties(NULL);
|
||||||
MainWindow::~MainWindow()
|
m_pdmUiTableView->setListField(NULL);
|
||||||
{
|
}
|
||||||
m_pdmUiTreeView->setPdmItem(NULL);
|
|
||||||
m_pdmUiTreeView2->setPdmItem(NULL);
|
//--------------------------------------------------------------------------------------------------
|
||||||
m_pdmUiPropertyView->showProperties(NULL);
|
///
|
||||||
m_pdmUiTableView->setListField(NULL);
|
//--------------------------------------------------------------------------------------------------
|
||||||
}
|
void MainWindow::releaseTestData()
|
||||||
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
if (m_project)
|
||||||
///
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
delete m_project;
|
||||||
void MainWindow::releaseTestData()
|
}
|
||||||
{
|
}
|
||||||
if (m_project)
|
|
||||||
{
|
//--------------------------------------------------------------------------------------------------
|
||||||
delete m_project;
|
///
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
}
|
MainWindow* MainWindow::instance()
|
||||||
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
return sm_mainWindowInstance;
|
||||||
///
|
}
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
MainWindow* MainWindow::instance()
|
//--------------------------------------------------------------------------------------------------
|
||||||
{
|
///
|
||||||
return sm_mainWindowInstance;
|
//--------------------------------------------------------------------------------------------------
|
||||||
}
|
void MainWindow::createActions()
|
||||||
|
{
|
||||||
//--------------------------------------------------------------------------------------------------
|
// Create actions
|
||||||
///
|
QAction* editInsert = new QAction("&Insert", this);
|
||||||
//--------------------------------------------------------------------------------------------------
|
QAction* editRemove = new QAction("&Remove", this);
|
||||||
void MainWindow::createActions()
|
QAction* editRemoveAll = new QAction("Remove all", this);
|
||||||
{
|
|
||||||
// Create actions
|
connect(editInsert, SIGNAL(triggered()), SLOT(slotInsert()));
|
||||||
QAction* editInsert = new QAction("&Insert", this);
|
connect(editRemove, SIGNAL(triggered()), SLOT(slotRemove()));
|
||||||
QAction* editRemove = new QAction("&Remove", this);
|
connect(editRemoveAll, SIGNAL(triggered()), SLOT(slotRemoveAll()));
|
||||||
QAction* editRemoveAll = new QAction("Remove all", this);
|
|
||||||
|
// Create menus
|
||||||
connect(editInsert, SIGNAL(triggered()), SLOT(slotInsert()));
|
QMenu* editMenu = menuBar()->addMenu("&Edit");
|
||||||
connect(editRemove, SIGNAL(triggered()), SLOT(slotRemove()));
|
editMenu->addAction(editInsert);
|
||||||
connect(editRemoveAll, SIGNAL(triggered()), SLOT(slotRemoveAll()));
|
editMenu->addAction(editRemove);
|
||||||
|
editMenu->addAction(editRemoveAll);
|
||||||
|
}
|
||||||
// Create menus
|
|
||||||
QMenu* editMenu = menuBar()->addMenu("&Edit");
|
//--------------------------------------------------------------------------------------------------
|
||||||
editMenu->addAction(editInsert);
|
///
|
||||||
editMenu->addAction(editRemove);
|
//--------------------------------------------------------------------------------------------------
|
||||||
editMenu->addAction(editRemoveAll);
|
void MainWindow::slotInsert()
|
||||||
}
|
{
|
||||||
|
/*
|
||||||
//--------------------------------------------------------------------------------------------------
|
std::vector<caf::PdmUiItem*> selection;
|
||||||
///
|
m_pdmUiTreeView->selectedUiItems(selection);
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void MainWindow::slotInsert()
|
for (size_t i = 0; i < selection.size(); ++i)
|
||||||
{
|
{
|
||||||
/*
|
caf::PdmUiFieldHandle* uiFh = dynamic_cast<caf::PdmUiFieldHandle*>(selection[i]);
|
||||||
std::vector<caf::PdmUiItem*> selection;
|
caf::PdmChildArrayField< caf::PdmObjectHandle*> * field = NULL;
|
||||||
m_pdmUiTreeView->selectedUiItems(selection);
|
|
||||||
|
if (uiFh) field = dynamic_cast<caf::PdmChildArrayField< caf::PdmObjectHandle*> *>(uiFh->fieldHandle());
|
||||||
for (size_t i = 0; i < selection.size(); ++i)
|
|
||||||
{
|
if (field)
|
||||||
caf::PdmUiFieldHandle* uiFh = dynamic_cast<caf::PdmUiFieldHandle*>(selection[i]);
|
{
|
||||||
caf::PdmChildArrayField< caf::PdmObjectHandle*> * field = NULL;
|
field->push_back(new DemoPdmObject);
|
||||||
|
field->capability<caf::PdmUiFieldHandle>()->updateConnectedEditors();
|
||||||
if (uiFh) field = dynamic_cast<caf::PdmChildArrayField< caf::PdmObjectHandle*> *>(uiFh->fieldHandle());
|
|
||||||
|
return;
|
||||||
if (field)
|
}
|
||||||
{
|
#if 0
|
||||||
field->push_back(new DemoPdmObject);
|
caf::PdmChildArrayFieldHandle* listField = NULL;
|
||||||
field->capability<caf::PdmUiFieldHandle>()->updateConnectedEditors();
|
|
||||||
|
if (uiFh) listField = dynamic_cast<caf::PdmChildArrayFieldHandle*>(uiFh->fieldHandle());
|
||||||
return;
|
|
||||||
}
|
if (listField)
|
||||||
#if 0
|
{
|
||||||
caf::PdmChildArrayFieldHandle* listField = NULL;
|
caf::PdmObjectHandle* obj = listField->createAppendObject();
|
||||||
|
listField->capability<caf::PdmUiFieldHandle>()->updateConnectedEditors();
|
||||||
if (uiFh) listField = dynamic_cast<caf::PdmChildArrayFieldHandle*>(uiFh->fieldHandle());
|
}
|
||||||
|
#endif
|
||||||
if (listField)
|
}
|
||||||
{
|
*/
|
||||||
caf::PdmObjectHandle* obj = listField->createAppendObject();
|
}
|
||||||
listField->capability<caf::PdmUiFieldHandle>()->updateConnectedEditors();
|
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
#endif
|
///
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
*/
|
void MainWindow::slotRemove()
|
||||||
}
|
{
|
||||||
|
std::vector<caf::PdmUiItem*> selection;
|
||||||
//--------------------------------------------------------------------------------------------------
|
m_pdmUiTreeView->selectedUiItems(selection);
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
for (size_t i = 0; i < selection.size(); ++i)
|
||||||
void MainWindow::slotRemove()
|
{
|
||||||
{
|
caf::PdmObjectHandle* obj = dynamic_cast<caf::PdmObjectHandle*>(selection[i]);
|
||||||
std::vector<caf::PdmUiItem*> selection;
|
if (obj)
|
||||||
m_pdmUiTreeView->selectedUiItems(selection);
|
{
|
||||||
|
caf::PdmFieldHandle* field = obj->parentField();
|
||||||
for (size_t i = 0; i < selection.size(); ++i)
|
|
||||||
{
|
// Ordering is important
|
||||||
caf::PdmObjectHandle* obj = dynamic_cast< caf::PdmObjectHandle*>(selection[i]);
|
|
||||||
if (obj)
|
field->removeChildObject(obj);
|
||||||
{
|
|
||||||
caf::PdmFieldHandle* field = obj->parentField();
|
// Delete object
|
||||||
|
delete obj;
|
||||||
// Ordering is important
|
|
||||||
|
// Update editors
|
||||||
field->removeChildObject(obj);
|
field->uiCapability()->updateConnectedEditors();
|
||||||
|
|
||||||
// Delete object
|
break;
|
||||||
delete obj;
|
}
|
||||||
|
}
|
||||||
// Update editors
|
}
|
||||||
field->uiCapability()->updateConnectedEditors();
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
break;
|
///
|
||||||
}
|
//--------------------------------------------------------------------------------------------------
|
||||||
}
|
void MainWindow::slotRemoveAll() {}
|
||||||
}
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
//--------------------------------------------------------------------------------------------------
|
///
|
||||||
///
|
//--------------------------------------------------------------------------------------------------
|
||||||
//--------------------------------------------------------------------------------------------------
|
void MainWindow::slotSimpleSelectionChanged()
|
||||||
void MainWindow::slotRemoveAll()
|
{
|
||||||
{
|
std::vector<caf::PdmUiItem*> selection;
|
||||||
|
m_pdmUiTreeView->selectedUiItems(selection);
|
||||||
}
|
caf::PdmObjectHandle* obj = NULL;
|
||||||
|
caf::PdmChildArrayFieldHandle* listField = NULL;
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
if (selection.size())
|
||||||
//--------------------------------------------------------------------------------------------------
|
{
|
||||||
void MainWindow::slotSimpleSelectionChanged()
|
caf::PdmUiObjectHandle* pdmUiObj = dynamic_cast<caf::PdmUiObjectHandle*>(selection[0]);
|
||||||
{
|
if (pdmUiObj) obj = pdmUiObj->objectHandle();
|
||||||
std::vector<caf::PdmUiItem*> selection;
|
}
|
||||||
m_pdmUiTreeView->selectedUiItems(selection);
|
|
||||||
caf::PdmObjectHandle* obj = NULL;
|
m_pdmUiPropertyView->showProperties(obj);
|
||||||
caf::PdmChildArrayFieldHandle* listField = NULL;
|
}
|
||||||
|
|
||||||
if (selection.size())
|
//--------------------------------------------------------------------------------------------------
|
||||||
{
|
///
|
||||||
caf::PdmUiObjectHandle* pdmUiObj = dynamic_cast<caf::PdmUiObjectHandle*>( selection[0] );
|
//--------------------------------------------------------------------------------------------------
|
||||||
if (pdmUiObj) obj = pdmUiObj->objectHandle();
|
void MainWindow::slotShowTableView()
|
||||||
}
|
{
|
||||||
|
std::vector<caf::PdmUiItem*> selection;
|
||||||
m_pdmUiPropertyView->showProperties(obj);
|
m_pdmUiTreeView2->selectedUiItems(selection);
|
||||||
}
|
caf::PdmObjectHandle* obj = NULL;
|
||||||
|
caf::PdmChildArrayFieldHandle* listField = NULL;
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
if (selection.size())
|
||||||
//--------------------------------------------------------------------------------------------------
|
{
|
||||||
void MainWindow::slotShowTableView()
|
caf::PdmUiItem* pdmUiItem = selection[0];
|
||||||
{
|
|
||||||
std::vector<caf::PdmUiItem*> selection;
|
caf::PdmUiFieldHandle* guiField = dynamic_cast<caf::PdmUiFieldHandle*>(pdmUiItem);
|
||||||
m_pdmUiTreeView2->selectedUiItems(selection);
|
|
||||||
caf::PdmObjectHandle* obj = NULL;
|
if (guiField) listField = dynamic_cast<caf::PdmChildArrayFieldHandle*>(guiField->fieldHandle());
|
||||||
caf::PdmChildArrayFieldHandle* listField = NULL;
|
|
||||||
|
if (listField)
|
||||||
if (selection.size())
|
{
|
||||||
{
|
if (!listField->hasSameFieldCountForAllObjects())
|
||||||
caf::PdmUiItem* pdmUiItem = selection[0];
|
{
|
||||||
|
listField = NULL;
|
||||||
caf::PdmUiFieldHandle* guiField = dynamic_cast<caf::PdmUiFieldHandle*>(pdmUiItem);
|
}
|
||||||
|
}
|
||||||
if (guiField) listField = dynamic_cast<caf::PdmChildArrayFieldHandle*>(guiField->fieldHandle());
|
}
|
||||||
|
|
||||||
if (listField)
|
m_pdmUiTableView->setListField(listField);
|
||||||
{
|
|
||||||
if (!listField->hasSameFieldCountForAllObjects())
|
if (listField)
|
||||||
{
|
{
|
||||||
listField = NULL;
|
listField->uiCapability()->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
m_pdmUiTableView->setListField(listField);
|
|
||||||
|
|
||||||
if (listField)
|
|
||||||
{
|
|
||||||
listField->uiCapability()->updateConnectedEditors();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,24 +1,23 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QMainWindow>
|
|
||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
#include <QItemSelection>
|
#include <QItemSelection>
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
class QTreeView;
|
class QTreeView;
|
||||||
class QUndoView;
|
class QUndoView;
|
||||||
|
|
||||||
class TapProject;
|
class TapProject;
|
||||||
|
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
class PdmObjectCollection;
|
class PdmObjectCollection;
|
||||||
class PdmObjectHandle;
|
class PdmObjectHandle;
|
||||||
class UiTreeModelPdm;
|
class UiTreeModelPdm;
|
||||||
class PdmUiPropertyView;
|
class PdmUiPropertyView;
|
||||||
class PdmUiTreeView;
|
class PdmUiTreeView;
|
||||||
class PdmUiTableView;
|
class PdmUiTableView;
|
||||||
}
|
} // namespace caf
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
@ -29,7 +28,7 @@ public:
|
|||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
||||||
static MainWindow* instance();
|
static MainWindow* instance();
|
||||||
void setPdmRoot(caf::PdmObjectHandle* pdmRoot);
|
void setPdmRoot(caf::PdmObjectHandle* pdmRoot);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createActions();
|
void createActions();
|
||||||
@ -37,7 +36,6 @@ private:
|
|||||||
void createToolBars();
|
void createToolBars();
|
||||||
void createDockPanels();
|
void createDockPanels();
|
||||||
|
|
||||||
|
|
||||||
void buildTestModel();
|
void buildTestModel();
|
||||||
void releaseTestData();
|
void releaseTestData();
|
||||||
|
|
||||||
@ -49,18 +47,16 @@ private slots:
|
|||||||
void slotSimpleSelectionChanged();
|
void slotSimpleSelectionChanged();
|
||||||
void slotShowTableView();
|
void slotShowTableView();
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static MainWindow* sm_mainWindowInstance;
|
static MainWindow* sm_mainWindowInstance;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QUndoView* undoView;
|
QUndoView* undoView;
|
||||||
|
|
||||||
caf::PdmUiTreeView* m_pdmUiTreeView;
|
caf::PdmUiTreeView* m_pdmUiTreeView;
|
||||||
caf::PdmUiTreeView* m_pdmUiTreeView2;
|
caf::PdmUiTreeView* m_pdmUiTreeView2;
|
||||||
caf::PdmUiPropertyView* m_pdmUiPropertyView;
|
caf::PdmUiPropertyView* m_pdmUiPropertyView;
|
||||||
caf::PdmUiTableView* m_pdmUiTableView;
|
caf::PdmUiTableView* m_pdmUiTableView;
|
||||||
|
|
||||||
TapProject* m_project;
|
TapProject* m_project;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,13 +2,10 @@
|
|||||||
|
|
||||||
#include "cafPdmUiListEditor.h"
|
#include "cafPdmUiListEditor.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(TapCvfSpecialization, "TapCvfSpecialization");
|
CAF_PDM_SOURCE_INIT(TapCvfSpecialization, "TapCvfSpecialization");
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
TapCvfSpecialization::TapCvfSpecialization()
|
TapCvfSpecialization::TapCvfSpecialization()
|
||||||
{
|
{
|
||||||
@ -24,9 +21,11 @@ TapCvfSpecialization::TapCvfSpecialization()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void TapCvfSpecialization::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void TapCvfSpecialization::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||||
|
const QVariant& oldValue,
|
||||||
|
const QVariant& newValue)
|
||||||
{
|
{
|
||||||
if (changedField == &m_colorField)
|
if (changedField == &m_colorField)
|
||||||
{
|
{
|
||||||
@ -35,9 +34,11 @@ void TapCvfSpecialization::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void TapCvfSpecialization::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
|
void TapCvfSpecialization::defineEditorAttribute(const caf::PdmFieldHandle* field,
|
||||||
|
QString uiConfigName,
|
||||||
|
caf::PdmUiEditorAttribute* attribute)
|
||||||
{
|
{
|
||||||
if (field == &m_vecArrayField)
|
if (field == &m_vecArrayField)
|
||||||
{
|
{
|
||||||
@ -48,4 +49,3 @@ void TapCvfSpecialization::defineEditorAttribute(const caf::PdmFieldHandle* fiel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,42 +1,38 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include "cvfBase.h"
|
#include "cvfBase.h"
|
||||||
#include "cvfColor3.h"
|
#include "cvfColor3.h"
|
||||||
#include "cvfVector3.h"
|
|
||||||
#include "cvfMatrix4.h"
|
#include "cvfMatrix4.h"
|
||||||
|
#include "cvfVector3.h"
|
||||||
|
|
||||||
#include "cafPdmFieldCvfColor.h"
|
#include "cafPdmFieldCvfColor.h"
|
||||||
#include "cafPdmFieldCvfVec3d.h"
|
|
||||||
#include "cafPdmFieldCvfMat4d.h"
|
#include "cafPdmFieldCvfMat4d.h"
|
||||||
|
#include "cafPdmFieldCvfVec3d.h"
|
||||||
|
|
||||||
#include "cafPdmObject.h"
|
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
|
#include "cafPdmObject.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
class TapCvfSpecialization : public caf::PdmObject
|
class TapCvfSpecialization : public caf::PdmObject
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TapCvfSpecialization();
|
TapCvfSpecialization();
|
||||||
|
|
||||||
|
|
||||||
caf::PdmField<QString> m_testField;
|
caf::PdmField<QString> m_testField;
|
||||||
|
|
||||||
caf::PdmField<cvf::Color3f> m_colorField;
|
caf::PdmField<cvf::Color3f> m_colorField;
|
||||||
caf::PdmField<cvf::Vec3d> m_vectorField;
|
caf::PdmField<cvf::Vec3d> m_vectorField;
|
||||||
caf::PdmField<cvf::Mat4d> m_matrixField;
|
caf::PdmField<cvf::Mat4d> m_matrixField;
|
||||||
|
|
||||||
caf::PdmField< std::vector< cvf::Vec3d> > m_vecArrayField;
|
caf::PdmField<std::vector<cvf::Vec3d>> m_vecArrayField;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
virtual void
|
||||||
|
defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
CAF_PDM_SOURCE_INIT(TapProject, "RPMProject");
|
CAF_PDM_SOURCE_INIT(TapProject, "RPMProject");
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
TapProject::TapProject(void)
|
TapProject::TapProject(void)
|
||||||
{
|
{
|
||||||
@ -15,9 +15,6 @@ TapProject::TapProject(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
TapProject::~TapProject(void)
|
TapProject::~TapProject(void) {}
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include "cafPdmDocument.h"
|
|
||||||
#include "cafPdmChildArrayField.h"
|
#include "cafPdmChildArrayField.h"
|
||||||
#include "cafPdmChildField.h"
|
#include "cafPdmChildField.h"
|
||||||
|
#include "cafPdmDocument.h"
|
||||||
|
|
||||||
class TapCvfSpecialization;
|
class TapCvfSpecialization;
|
||||||
|
|
||||||
|
|
||||||
class TapProject : public caf::PdmDocument
|
class TapProject : public caf::PdmDocument
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
@ -16,7 +14,7 @@ public:
|
|||||||
TapProject(void);
|
TapProject(void);
|
||||||
virtual ~TapProject(void);
|
virtual ~TapProject(void);
|
||||||
|
|
||||||
caf::PdmChildArrayField< caf::PdmObjectHandle* > m_objectList;
|
caf::PdmChildArrayField<caf::PdmObjectHandle*> m_objectList;
|
||||||
|
|
||||||
caf::PdmChildField< TapCvfSpecialization* > m_testSpecialization;
|
caf::PdmChildField<TapCvfSpecialization*> m_testSpecialization;
|
||||||
};
|
};
|
@ -2,23 +2,20 @@
|
|||||||
#include "WidgetLayoutTest.h"
|
#include "WidgetLayoutTest.h"
|
||||||
|
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*= 0*/)
|
WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*= 0*/)
|
||||||
: QWidget(parent, f)
|
: QWidget(parent, f)
|
||||||
{
|
{
|
||||||
QVBoxLayout* l = new QVBoxLayout;
|
QVBoxLayout* l = new QVBoxLayout;
|
||||||
setLayout(l);
|
setLayout(l);
|
||||||
|
|
||||||
{
|
{
|
||||||
QPushButton* b1 = new QPushButton("Original config", this);
|
QPushButton* b1 = new QPushButton("Original config", this);
|
||||||
connect(b1, SIGNAL(clicked()), SLOT(setUpInitialConfiguration()));
|
connect(b1, SIGNAL(clicked()), SLOT(setUpInitialConfiguration()));
|
||||||
@ -47,11 +44,11 @@ WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*
|
|||||||
m_widget4 = new QLineEdit("4", this);
|
m_widget4 = new QLineEdit("4", this);
|
||||||
m_widget5 = new QLineEdit("5", this);
|
m_widget5 = new QLineEdit("5", this);
|
||||||
|
|
||||||
m_groupBoxA = new QGroupBox("Groupbox A", this);
|
m_groupBoxA = new QGroupBox("Groupbox A", this);
|
||||||
m_groupBoxALayout = new QGridLayout();
|
m_groupBoxALayout = new QGridLayout();
|
||||||
m_groupBoxA->setLayout(m_groupBoxALayout);
|
m_groupBoxA->setLayout(m_groupBoxALayout);
|
||||||
|
|
||||||
m_groupBoxB = new QGroupBox("Groupbox B", this);
|
m_groupBoxB = new QGroupBox("Groupbox B", this);
|
||||||
m_groupBoxBLayout = new QGridLayout();
|
m_groupBoxBLayout = new QGridLayout();
|
||||||
m_groupBoxB->setLayout(m_groupBoxBLayout);
|
m_groupBoxB->setLayout(m_groupBoxBLayout);
|
||||||
|
|
||||||
@ -59,22 +56,19 @@ WidgetLayoutTest::WidgetLayoutTest(QWidget* parent /*= 0*/, Qt::WindowFlags f /*
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
WidgetLayoutTest::~WidgetLayoutTest()
|
WidgetLayoutTest::~WidgetLayoutTest() {}
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfiguration()
|
void WidgetLayoutTest::setUpInitialConfiguration()
|
||||||
{
|
{
|
||||||
m_mainLayout->addWidget(m_widget1);
|
m_mainLayout->addWidget(m_widget1);
|
||||||
|
|
||||||
m_mainLayout->addWidget(m_groupBoxA);
|
m_mainLayout->addWidget(m_groupBoxA);
|
||||||
|
|
||||||
m_groupBoxALayout->addWidget(m_widget2, 0, 0);
|
m_groupBoxALayout->addWidget(m_widget2, 0, 0);
|
||||||
if (!m_widget3)
|
if (!m_widget3)
|
||||||
{
|
{
|
||||||
@ -89,7 +83,7 @@ void WidgetLayoutTest::setUpInitialConfiguration()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfigurationA()
|
void WidgetLayoutTest::setUpInitialConfigurationA()
|
||||||
{
|
{
|
||||||
@ -100,7 +94,7 @@ void WidgetLayoutTest::setUpInitialConfigurationA()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void WidgetLayoutTest::setUpInitialConfigurationB()
|
void WidgetLayoutTest::setUpInitialConfigurationB()
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,9 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
|
|
||||||
class QGridLayout;
|
class QGridLayout;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WidgetLayoutTest : public QWidget
|
class WidgetLayoutTest : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -19,10 +16,10 @@ public:
|
|||||||
private:
|
private:
|
||||||
QGridLayout* m_mainLayout;
|
QGridLayout* m_mainLayout;
|
||||||
|
|
||||||
QGroupBox* m_groupBoxA;
|
QGroupBox* m_groupBoxA;
|
||||||
QGridLayout* m_groupBoxALayout;
|
QGridLayout* m_groupBoxALayout;
|
||||||
|
|
||||||
QGroupBox* m_groupBoxB;
|
QGroupBox* m_groupBoxB;
|
||||||
QGridLayout* m_groupBoxBLayout;
|
QGridLayout* m_groupBoxBLayout;
|
||||||
|
|
||||||
QWidget* m_widget1;
|
QWidget* m_widget1;
|
||||||
@ -36,6 +33,4 @@ private slots:
|
|||||||
|
|
||||||
void setUpInitialConfigurationA();
|
void setUpInitialConfigurationA();
|
||||||
void setUpInitialConfigurationB();
|
void setUpInitialConfigurationB();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -354,6 +354,26 @@ void PdmUiTreeSelectionEditor::configureAndUpdateUi(const QString& uiConfigName)
|
|||||||
m_treeView->setRootIsDecorated(m_model->hasGrandChildren());
|
m_treeView->setRootIsDecorated(m_model->hasGrandChildren());
|
||||||
|
|
||||||
m_model->resetUiValueCache();
|
m_model->resetUiValueCache();
|
||||||
|
|
||||||
|
if (m_attributes.currentIndexFieldHandle)
|
||||||
|
{
|
||||||
|
PdmUiFieldHandle* uiFieldHandle = m_attributes.currentIndexFieldHandle->uiCapability();
|
||||||
|
if (uiFieldHandle)
|
||||||
|
{
|
||||||
|
QModelIndexList indices = allVisibleSourceModelIndices();
|
||||||
|
QVariant currentItemValue = uiFieldHandle->uiValue();
|
||||||
|
|
||||||
|
for (const auto& mi : indices)
|
||||||
|
{
|
||||||
|
QVariant itemValue = m_model->data(mi, PdmUiTreeSelectionQModel::optionItemValueRole());
|
||||||
|
if (currentItemValue == itemValue)
|
||||||
|
{
|
||||||
|
QModelIndex treeViewIndex = m_proxyModel->mapFromSource(mi);
|
||||||
|
m_treeView->setCurrentIndex(treeViewIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -637,9 +657,9 @@ void PdmUiTreeSelectionEditor::currentChanged(const QModelIndex& current)
|
|||||||
m_proxyModel->setData(current, true, Qt::CheckStateRole);
|
m_proxyModel->setData(current, true, Qt::CheckStateRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_attributes.fieldToReceiveCurrentItemValue)
|
if (m_attributes.currentIndexFieldHandle)
|
||||||
{
|
{
|
||||||
PdmUiFieldHandle* uiFieldHandle = m_attributes.fieldToReceiveCurrentItemValue->uiCapability();
|
PdmUiFieldHandle* uiFieldHandle = m_attributes.currentIndexFieldHandle->uiCapability();
|
||||||
if (uiFieldHandle)
|
if (uiFieldHandle)
|
||||||
{
|
{
|
||||||
QVariant v = m_proxyModel->data(current, PdmUiTreeSelectionQModel::optionItemValueRole());
|
QVariant v = m_proxyModel->data(current, PdmUiTreeSelectionQModel::optionItemValueRole());
|
||||||
|
@ -64,11 +64,11 @@ public:
|
|||||||
bool singleSelectionMode;
|
bool singleSelectionMode;
|
||||||
bool setCurrentIndexWhenItemIsChecked;
|
bool setCurrentIndexWhenItemIsChecked;
|
||||||
|
|
||||||
/// fieldToReceiveCurrentFieldValue is used to communicate the value of current item in the tree view
|
/// currentIndexFieldHandle is used to communicate the value of current item in the tree view
|
||||||
/// This is useful when displaying a list of appEnums, and a dependent view is displaying content based on
|
/// This is useful when displaying a list of appEnums, and a dependent view is displaying content based on
|
||||||
/// the current item in the tree view
|
/// the current item in the tree view
|
||||||
/// Make sure the type of the receiving field is of the same type as the field used in PdmUiTreeSelectionEditor
|
/// Make sure the type of the receiving field is of the same type as the field used in PdmUiTreeSelectionEditor
|
||||||
caf::PdmFieldHandle* fieldToReceiveCurrentItemValue;
|
caf::PdmFieldHandle* currentIndexFieldHandle;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PdmUiTreeSelectionEditorAttribute()
|
PdmUiTreeSelectionEditorAttribute()
|
||||||
@ -78,7 +78,7 @@ public:
|
|||||||
singleSelectionMode = false;
|
singleSelectionMode = false;
|
||||||
setCurrentIndexWhenItemIsChecked = false;
|
setCurrentIndexWhenItemIsChecked = false;
|
||||||
|
|
||||||
fieldToReceiveCurrentItemValue = nullptr;
|
currentIndexFieldHandle = nullptr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user