mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Continue revamp of elementprovider
This commit is contained in:
@@ -53,9 +53,9 @@ ElementProvider::ElementProvider(Diagram *diag) {
|
||||
the filter for search element
|
||||
@return
|
||||
*/
|
||||
QList <Element *> ElementProvider::freeElement(ElementData::Types filter) const
|
||||
QVector <QPointer<Element>> ElementProvider::freeElement(ElementData::Types filter) const
|
||||
{
|
||||
QList<Element *> free_elmt;
|
||||
QVector<QPointer<Element>> free_elmt;
|
||||
QList<Element *> elmt_list;
|
||||
|
||||
//serch in all diagram
|
||||
@@ -97,31 +97,6 @@ QList <Element *> ElementProvider::fromUuids(QList<QUuid> uuid_list) const
|
||||
return found_element;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief ElementProvider::find
|
||||
Search and return the asked element corresponding with the given filter
|
||||
@param filter
|
||||
the filter for search element
|
||||
(You can find all filter with the define in Element.h)
|
||||
@obsolete use instead QVector<_Tp1> ElementProvider::find(ElementData::Type elmt_type) const
|
||||
*/
|
||||
QList <Element *> ElementProvider::find(const int filter) const
|
||||
{
|
||||
QList <Element *> elmt_;
|
||||
|
||||
//serch in all diagram
|
||||
foreach (Diagram *d, m_diagram_list) {
|
||||
//get all element in diagram d
|
||||
QList <Element *> elmt_list;
|
||||
elmt_list = d->elements();
|
||||
foreach (Element *elmt, elmt_list) {
|
||||
if (filter & elmt->linkType())
|
||||
elmt_ << elmt;
|
||||
}
|
||||
}
|
||||
return (elmt_);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ElementProvider::find
|
||||
* Search and return the element with the type given in parameter
|
||||
|
||||
@@ -41,9 +41,8 @@ class ElementProvider
|
||||
public:
|
||||
ElementProvider(QETProject *prj, Diagram *diagram=nullptr);
|
||||
ElementProvider(Diagram *diag);
|
||||
QList <Element *> freeElement(ElementData::Types filter) const;
|
||||
QVector <QPointer<Element>> freeElement(ElementData::Types filter) const;
|
||||
QList <Element *> fromUuids(QList <QUuid>) const;
|
||||
QList <Element *> find(const int filter) const;
|
||||
QVector<QPointer<Element> > find(ElementData::Types elmt_type) const;
|
||||
QVector <QetGraphicsTableItem *> table(QetGraphicsTableItem *table = nullptr, QAbstractItemModel *model = nullptr);
|
||||
QetGraphicsTableItem *tableFromUuid(const QUuid &uuid);
|
||||
|
||||
@@ -235,11 +235,12 @@ void LinkSingleElementWidget::buildTree()
|
||||
setUpHeaderLabels();
|
||||
QSettings settings;
|
||||
|
||||
const QList <Element *> elmt_list = availableElements();
|
||||
if (m_element->linkType() == Element::Slave)
|
||||
const auto elmt_vector{availableElements()};
|
||||
|
||||
if (m_element->elementData().m_type == ElementData::Slave)
|
||||
{
|
||||
|
||||
for(Element *elmt : elmt_list)
|
||||
for(const auto &elmt : elmt_vector)
|
||||
{
|
||||
QStringList search_list;
|
||||
QStringList str_list;
|
||||
@@ -285,9 +286,9 @@ void LinkSingleElementWidget::buildTree()
|
||||
ui->m_tree_widget->header()->restoreState(v.toByteArray());
|
||||
}
|
||||
|
||||
else if (m_element->linkType() & Element::AllReport)
|
||||
else if (m_element->elementData().m_type & ElementData::AllReport)
|
||||
{
|
||||
for(Element *elmt : elmt_list)
|
||||
for(const auto &elmt : elmt_vector)
|
||||
{
|
||||
QStringList search_list;
|
||||
QStringList str_list;
|
||||
@@ -369,25 +370,25 @@ bool LinkSingleElementWidget::setLiveEdit(bool live_edit)
|
||||
to be linked with the edited element.
|
||||
This methode take care of the combo box "find in diagram"
|
||||
*/
|
||||
QList <Element *> LinkSingleElementWidget::availableElements()
|
||||
QVector <QPointer<Element>> LinkSingleElementWidget::availableElements()
|
||||
{
|
||||
QList <Element *> elmt_list;
|
||||
QVector <QPointer<Element>> elmt_vector;
|
||||
//if element isn't free and unlink isn't pressed, return an empty list
|
||||
if (!m_element->isFree() && !m_unlink)
|
||||
return elmt_list;
|
||||
return elmt_vector;
|
||||
|
||||
if (!m_element->diagram() || !m_element->diagram()->project()) return elmt_list;
|
||||
if (!m_element->diagram() || !m_element->diagram()->project()) return elmt_vector;
|
||||
|
||||
ElementProvider ep(m_element->diagram()->project());
|
||||
if (m_filter & ElementData::AllReport)
|
||||
elmt_list = ep.freeElement(m_filter);
|
||||
elmt_vector = ep.freeElement(m_filter);
|
||||
else
|
||||
elmt_list = ep.find(m_filter);
|
||||
elmt_vector = ep.find(m_filter);
|
||||
|
||||
//If element is linked, remove is parent from the list
|
||||
if(!m_element->isFree()) elmt_list.removeAll(m_element->linkedElements().first());
|
||||
if(!m_element->isFree()) elmt_vector.removeAll(m_element->linkedElements().first());
|
||||
|
||||
return elmt_list;
|
||||
return elmt_vector;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -65,7 +65,7 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
||||
bool setLiveEdit(bool live_edit) override;
|
||||
|
||||
private :
|
||||
QList <Element *> availableElements();
|
||||
QVector <QPointer<Element>> availableElements();
|
||||
void setUpCompleter();
|
||||
void clearTreeWidget();
|
||||
void setUpHeaderLabels();
|
||||
|
||||
@@ -258,8 +258,7 @@ void MasterPropertiesWidget::updateUi()
|
||||
|
||||
//Build the list of free available element
|
||||
QList <QTreeWidgetItem *> items_list;
|
||||
const QList<Element *> free_list = elmt_prov.freeElement(ElementData::Slave);
|
||||
for(Element *elmt : free_list)
|
||||
for(const auto &elmt : elmt_prov.freeElement(ElementData::Slave))
|
||||
{
|
||||
QTreeWidgetItem *qtwi = new QTreeWidgetItem(ui->m_free_tree_widget);
|
||||
qtwi->setIcon(0, elmt->pixmap());
|
||||
|
||||
Reference in New Issue
Block a user