mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 22:00:35 +01:00
Link single element widget : when link a folio report, add columns for the values : Conductor text, function, tension/protocole
Add a line edit used to filter the QTreeWidgetItem. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4886 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
#include "elementprovider.h"
|
#include "elementprovider.h"
|
||||||
#include "linkelementcommand.h"
|
#include "linkelementcommand.h"
|
||||||
#include "diagramposition.h"
|
#include "diagramposition.h"
|
||||||
|
#include "conductor.h"
|
||||||
|
|
||||||
#include <QTreeWidgetItem>
|
#include <QTreeWidgetItem>
|
||||||
|
|
||||||
@@ -55,6 +56,10 @@ LinkSingleElementWidget::LinkSingleElementWidget(Element *elmt, QWidget *parent)
|
|||||||
m_showed_element->setHighlighted(false);
|
m_showed_element->setHighlighted(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// QHeaderView *qhv = ui->m_tree_widget->header();
|
||||||
|
// qhv->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
// connect(qhv, &QHeaderView::customContextMenuRequested, [](){qDebug() << "test";});
|
||||||
|
|
||||||
setElement(elmt);
|
setElement(elmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,7 +165,7 @@ QUndoCommand *LinkSingleElementWidget::associatedUndo() const
|
|||||||
*/
|
*/
|
||||||
QString LinkSingleElementWidget::title() const
|
QString LinkSingleElementWidget::title() const
|
||||||
{
|
{
|
||||||
if (m_element->linkType() == Element::AllReport)
|
if (m_element->linkType() & Element::AllReport)
|
||||||
return tr("Report de folio");
|
return tr("Report de folio");
|
||||||
else
|
else
|
||||||
return tr("Référence croisée (esclave)");
|
return tr("Référence croisée (esclave)");
|
||||||
@@ -190,11 +195,22 @@ void LinkSingleElementWidget::updateUi()
|
|||||||
void LinkSingleElementWidget::buildTree()
|
void LinkSingleElementWidget::buildTree()
|
||||||
{
|
{
|
||||||
clearTreeWidget();
|
clearTreeWidget();
|
||||||
|
setUpHeaderLabels();
|
||||||
|
|
||||||
|
if (m_element->linkType() == Element::Slave)
|
||||||
|
{
|
||||||
foreach(Element *elmt, availableElements())
|
foreach(Element *elmt, availableElements())
|
||||||
{
|
{
|
||||||
|
QStringList search_list;
|
||||||
QStringList str_list;
|
QStringList str_list;
|
||||||
str_list << elmt->elementInformations()["label"].toString();
|
str_list << elmt->elementInformations()["label"].toString();
|
||||||
|
if (!str_list.last().isEmpty())
|
||||||
|
search_list << str_list.last();
|
||||||
|
|
||||||
str_list << elmt->elementInformations()["comment"].toString();
|
str_list << elmt->elementInformations()["comment"].toString();
|
||||||
|
if (!str_list.last().isEmpty())
|
||||||
|
search_list << str_list.last();
|
||||||
|
|
||||||
if (Diagram *diag = elmt->diagram())
|
if (Diagram *diag = elmt->diagram())
|
||||||
{
|
{
|
||||||
str_list << QString::number(diag->folioIndex() + 1);
|
str_list << QString::number(diag->folioIndex() + 1);
|
||||||
@@ -208,11 +224,57 @@ void LinkSingleElementWidget::buildTree()
|
|||||||
{
|
{
|
||||||
qDebug() << "In method void LinkSingleElementWidget::updateUi(), provied element must have be in a diagram";
|
qDebug() << "In method void LinkSingleElementWidget::updateUi(), provied element must have be in a diagram";
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *qtwi = new QTreeWidgetItem(ui->m_tree_widget, str_list);
|
QTreeWidgetItem *qtwi = new QTreeWidgetItem(ui->m_tree_widget, str_list);
|
||||||
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
||||||
|
m_qtwi_strl_hash.insert(qtwi, search_list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//setUpCompleter();
|
else if (m_element->linkType() & Element::AllReport)
|
||||||
|
{
|
||||||
|
foreach(Element *elmt, availableElements())
|
||||||
|
{
|
||||||
|
QStringList search_list;
|
||||||
|
QStringList str_list;
|
||||||
|
|
||||||
|
if (elmt->conductors().size())
|
||||||
|
{
|
||||||
|
ConductorProperties cp = elmt->conductors().first()->properties();
|
||||||
|
str_list << cp.text;
|
||||||
|
if (!str_list.last().isEmpty())
|
||||||
|
search_list << str_list.last();
|
||||||
|
str_list << cp.m_function;
|
||||||
|
if (!str_list.last().isEmpty())
|
||||||
|
search_list << str_list.last();
|
||||||
|
str_list << cp.m_tension_protocol;
|
||||||
|
if (!str_list.last().isEmpty())
|
||||||
|
search_list << str_list.last();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
str_list << "" << "" << "";
|
||||||
|
|
||||||
|
if (Diagram *diag = elmt->diagram())
|
||||||
|
{
|
||||||
|
str_list << QString::number(diag->folioIndex() + 1);
|
||||||
|
autonum::sequentialNumbers seq;
|
||||||
|
QString F =autonum::AssignVariables::formulaToLabel(diag->border_and_titleblock.folio(), seq, diag, elmt);
|
||||||
|
str_list << F;
|
||||||
|
str_list << diag->convertPosition(elmt->scenePos()).toString();
|
||||||
|
str_list << diag->title();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug() << "In method void LinkSingleElementWidget::updateUi(), provied element must have be in a diagram";
|
||||||
|
}
|
||||||
|
|
||||||
|
QTreeWidgetItem *qtwi = new QTreeWidgetItem(ui->m_tree_widget, str_list);
|
||||||
|
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
||||||
|
m_qtwi_strl_hash.insert(qtwi, search_list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setUpCompleter();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -257,26 +319,24 @@ QList <Element *> LinkSingleElementWidget::availableElements()
|
|||||||
return elmt_list;
|
return elmt_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
///**
|
/**
|
||||||
// * @brief LinkSingleElementWidget::setUpCompleter
|
* @brief LinkSingleElementWidget::setUpCompleter
|
||||||
// * Setup the completer of search_field
|
* Setup the completer of search_field
|
||||||
// */
|
*/
|
||||||
//void LinkSingleElementWidget::setUpCompleter()
|
void LinkSingleElementWidget::setUpCompleter()
|
||||||
//{
|
{
|
||||||
// ui->m_search_field->clear();
|
ui->m_search_field->clear();
|
||||||
// if(ui->m_search_field->completer())
|
if(ui->m_search_field->completer())
|
||||||
// delete ui->m_search_field->completer();
|
delete ui->m_search_field->completer();
|
||||||
|
|
||||||
// QStringList filter;
|
QStringList search;
|
||||||
// foreach(QTreeWidgetItem *qtwi, m_qtwi_elmt_hash.keys())
|
foreach(QStringList strl , m_qtwi_strl_hash.values())
|
||||||
// {
|
search.append(strl);
|
||||||
// filter << qtwi->data(0, Qt::DisplayRole).toString();
|
|
||||||
// filter << qtwi->data(1, Qt::DisplayRole).toString();
|
QCompleter *c = new QCompleter(search, ui->m_search_field);
|
||||||
// }
|
c->setCaseSensitivity(Qt::CaseInsensitive);
|
||||||
// QCompleter *c = new QCompleter(filter, ui->m_search_field);
|
ui->m_search_field->setCompleter(c);
|
||||||
// c->setCaseSensitivity(Qt::CaseInsensitive);
|
}
|
||||||
// ui->m_search_field->setCompleter(c);
|
|
||||||
//}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief LinkSingleElementWidget::clearTreeWidget
|
* @brief LinkSingleElementWidget::clearTreeWidget
|
||||||
@@ -297,6 +357,18 @@ void LinkSingleElementWidget::clearTreeWidget()
|
|||||||
delete qtwi;
|
delete qtwi;
|
||||||
|
|
||||||
m_qtwi_elmt_hash.clear();
|
m_qtwi_elmt_hash.clear();
|
||||||
|
m_qtwi_strl_hash.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LinkSingleElementWidget::setUpHeaderLabels()
|
||||||
|
{
|
||||||
|
QStringList list;
|
||||||
|
if (m_element->linkType() == Element::Slave)
|
||||||
|
list << tr("Label") << tr("Commentaire") << tr("N° de folio") << tr("Label de folio") << tr("Position") << tr("Titre de folio");
|
||||||
|
else if (m_element->linkType() & Element::AllReport)
|
||||||
|
list << tr("N° de fil") << tr("Fonction") << tr("Tension / Protocole") << tr("N° de folio") << tr("Label de folio") << tr("Position") << tr("Titre de folio");
|
||||||
|
|
||||||
|
ui->m_tree_widget->setHeaderLabels(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -364,6 +436,7 @@ void LinkSingleElementWidget::hideButtons()
|
|||||||
ui->m_unlink_pb->hide();
|
ui->m_unlink_pb->hide();
|
||||||
ui->m_show_linked_pb->hide();
|
ui->m_show_linked_pb->hide();
|
||||||
ui->m_show_this_pb->hide();
|
ui->m_show_this_pb->hide();
|
||||||
|
ui->m_search_field->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -376,6 +449,7 @@ void LinkSingleElementWidget::showButtons()
|
|||||||
ui->m_unlink_pb->show();
|
ui->m_unlink_pb->show();
|
||||||
ui->m_show_linked_pb->show();
|
ui->m_show_linked_pb->show();
|
||||||
ui->m_show_this_pb->show();
|
ui->m_show_this_pb->show();
|
||||||
|
ui->m_search_field->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LinkSingleElementWidget::on_m_unlink_pb_clicked()
|
void LinkSingleElementWidget::on_m_unlink_pb_clicked()
|
||||||
@@ -450,3 +524,34 @@ void LinkSingleElementWidget::on_m_show_this_pb_clicked()
|
|||||||
{
|
{
|
||||||
m_show_element->trigger();
|
m_show_element->trigger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief LinkSingleElementWidget::on_m_search_field_textEdited
|
||||||
|
* Search all items which match with @arg1 and shows it, other items is hidden.
|
||||||
|
* If @arg1 is empty, show all items.
|
||||||
|
* @param arg1
|
||||||
|
*/
|
||||||
|
void LinkSingleElementWidget::on_m_search_field_textEdited(const QString &arg1)
|
||||||
|
{
|
||||||
|
//Show all items if arg1 is empty, if not hide all items
|
||||||
|
foreach(QTreeWidgetItem *qtwi, m_qtwi_elmt_hash.keys())
|
||||||
|
qtwi->setHidden(!arg1.isEmpty());
|
||||||
|
|
||||||
|
QList <QTreeWidgetItem *> qtwi_list;
|
||||||
|
|
||||||
|
foreach(QTreeWidgetItem *qtwi, m_qtwi_strl_hash.keys())
|
||||||
|
{
|
||||||
|
foreach(QString str, m_qtwi_strl_hash.value(qtwi))
|
||||||
|
{
|
||||||
|
if(str.contains(arg1, Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
qtwi_list << qtwi;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Show items which match with arg1
|
||||||
|
foreach(QTreeWidgetItem *qtwi, qtwi_list)
|
||||||
|
qtwi->setHidden(false);
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,8 +60,9 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
|
|
||||||
private :
|
private :
|
||||||
QList <Element *> availableElements();
|
QList <Element *> availableElements();
|
||||||
// void setUpCompleter();
|
void setUpCompleter();
|
||||||
void clearTreeWidget();
|
void clearTreeWidget();
|
||||||
|
void setUpHeaderLabels();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void diagramWasRemovedFromProject();
|
void diagramWasRemovedFromProject();
|
||||||
@@ -76,6 +77,8 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
void on_m_show_linked_pb_clicked();
|
void on_m_show_linked_pb_clicked();
|
||||||
void on_m_show_this_pb_clicked();
|
void on_m_show_this_pb_clicked();
|
||||||
|
|
||||||
|
void on_m_search_field_textEdited(const QString &arg1);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::LinkSingleElementWidget *ui;
|
Ui::LinkSingleElementWidget *ui;
|
||||||
|
|
||||||
@@ -83,6 +86,7 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
Element::kind m_filter;
|
Element::kind m_filter;
|
||||||
|
|
||||||
QHash <QTreeWidgetItem*, Element*> m_qtwi_elmt_hash;
|
QHash <QTreeWidgetItem*, Element*> m_qtwi_elmt_hash;
|
||||||
|
QHash <QTreeWidgetItem*, QStringList> m_qtwi_strl_hash;
|
||||||
|
|
||||||
QTreeWidgetItem *m_qtwi_at_context_menu = nullptr,
|
QTreeWidgetItem *m_qtwi_at_context_menu = nullptr,
|
||||||
*m_pending_qtwi = nullptr;
|
*m_pending_qtwi = nullptr;
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="1" column="2">
|
||||||
<widget class="QLabel" name="m_label">
|
<widget class="QPushButton" name="m_show_this_pb">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Cet élément est déjà lié</string>
|
<string>Voir cet élément</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0" colspan="3">
|
<item row="3" column="0" colspan="3">
|
||||||
<widget class="QTreeWidget" name="m_tree_widget">
|
<widget class="QTreeWidget" name="m_tree_widget">
|
||||||
<property name="indentation">
|
<property name="indentation">
|
||||||
<number>5</number>
|
<number>5</number>
|
||||||
@@ -31,40 +31,15 @@
|
|||||||
</property>
|
</property>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Label</string>
|
<string notr="true">1</string>
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>Commentaire</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>N° de folio</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>Label de folio</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>Position</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>Titre de folio</string>
|
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item row="1" column="0">
|
||||||
<widget class="QPushButton" name="m_show_this_pb">
|
<widget class="QPushButton" name="m_unlink_pb">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Voir cet élément</string>
|
<string>Délier</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -75,10 +50,17 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="m_unlink_pb">
|
<widget class="QLabel" name="m_label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Délier</string>
|
<string>Cet élément est déjà lié</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="3">
|
||||||
|
<widget class="QLineEdit" name="m_search_field">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Recherche</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user