mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-21 08:40:53 +01:00
Master, slave and report QTreeWidget used for Xref :
The header of the QTreeWidget have a context menu used to save the current state of the columns (size and position). git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4887 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -44,6 +44,7 @@ LinkSingleElementWidget::LinkSingleElementWidget(Element *elmt, QWidget *parent)
|
|||||||
m_link_action = new QAction(tr("Lier l'élément"), this);
|
m_link_action = new QAction(tr("Lier l'élément"), this);
|
||||||
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
|
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
|
||||||
m_show_element = new QAction(tr("Montrer l'élément esclave"), this);
|
m_show_element = new QAction(tr("Montrer l'élément esclave"), this);
|
||||||
|
m_save_header_state = new QAction(tr("Enregistrer la disposition"), this);
|
||||||
|
|
||||||
connect(m_show_qtwi, &QAction::triggered, [this]() {this->on_m_tree_widget_itemDoubleClicked(this->m_qtwi_at_context_menu, 0);});
|
connect(m_show_qtwi, &QAction::triggered, [this]() {this->on_m_tree_widget_itemDoubleClicked(this->m_qtwi_at_context_menu, 0);});
|
||||||
connect(m_link_action, &QAction::triggered, this, &LinkSingleElementWidget::linkTriggered);
|
connect(m_link_action, &QAction::triggered, this, &LinkSingleElementWidget::linkTriggered);
|
||||||
@@ -56,9 +57,19 @@ LinkSingleElementWidget::LinkSingleElementWidget(Element *elmt, QWidget *parent)
|
|||||||
m_showed_element->setHighlighted(false);
|
m_showed_element->setHighlighted(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
// QHeaderView *qhv = ui->m_tree_widget->header();
|
QHeaderView *qhv = ui->m_tree_widget->header();
|
||||||
// qhv->setContextMenuPolicy(Qt::CustomContextMenu);
|
qhv->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
// connect(qhv, &QHeaderView::customContextMenuRequested, [](){qDebug() << "test";});
|
connect(qhv, &QHeaderView::customContextMenuRequested, this, &LinkSingleElementWidget::headerCustomContextMenuRequested);
|
||||||
|
connect(m_save_header_state, &QAction::triggered, [this, qhv]()
|
||||||
|
{
|
||||||
|
QByteArray qba = qhv->saveState();
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
if (this->m_element->linkType() & Element::AllReport)
|
||||||
|
settings.setValue("link-element-widget/report-state", qba);
|
||||||
|
else if (this->m_element->linkType() == Element::Slave)
|
||||||
|
settings.setValue("link-element-widget/slave-state", qba);
|
||||||
|
});
|
||||||
|
|
||||||
setElement(elmt);
|
setElement(elmt);
|
||||||
}
|
}
|
||||||
@@ -196,6 +207,7 @@ void LinkSingleElementWidget::buildTree()
|
|||||||
{
|
{
|
||||||
clearTreeWidget();
|
clearTreeWidget();
|
||||||
setUpHeaderLabels();
|
setUpHeaderLabels();
|
||||||
|
ui->m_tree_widget->header()->resetDefaultSectionSize();
|
||||||
|
|
||||||
if (m_element->linkType() == Element::Slave)
|
if (m_element->linkType() == Element::Slave)
|
||||||
{
|
{
|
||||||
@@ -229,6 +241,11 @@ void LinkSingleElementWidget::buildTree()
|
|||||||
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
||||||
m_qtwi_strl_hash.insert(qtwi, search_list);
|
m_qtwi_strl_hash.insert(qtwi, search_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
QVariant v = settings.value("link-element-widget/slave-state");
|
||||||
|
if(!v.isNull())
|
||||||
|
ui->m_tree_widget->header()->restoreState(v.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (m_element->linkType() & Element::AllReport)
|
else if (m_element->linkType() & Element::AllReport)
|
||||||
@@ -272,6 +289,11 @@ void LinkSingleElementWidget::buildTree()
|
|||||||
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
m_qtwi_elmt_hash.insert(qtwi, elmt);
|
||||||
m_qtwi_strl_hash.insert(qtwi, search_list);
|
m_qtwi_strl_hash.insert(qtwi, search_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
QVariant v = settings.value("link-element-widget/report-state");
|
||||||
|
if(!v.isNull())
|
||||||
|
ui->m_tree_widget->header()->restoreState(v.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
setUpCompleter();
|
setUpCompleter();
|
||||||
@@ -452,6 +474,13 @@ void LinkSingleElementWidget::showButtons()
|
|||||||
ui->m_search_field->hide();
|
ui->m_search_field->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LinkSingleElementWidget::headerCustomContextMenuRequested(const QPoint &pos)
|
||||||
|
{
|
||||||
|
m_context_menu->clear();
|
||||||
|
m_context_menu->addAction(m_save_header_state);
|
||||||
|
m_context_menu->popup(ui->m_tree_widget->header()->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
|
||||||
void LinkSingleElementWidget::on_m_unlink_pb_clicked()
|
void LinkSingleElementWidget::on_m_unlink_pb_clicked()
|
||||||
{
|
{
|
||||||
m_unlink = true;
|
m_unlink = true;
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
void linkTriggered();
|
void linkTriggered();
|
||||||
void hideButtons();
|
void hideButtons();
|
||||||
void showButtons();
|
void showButtons();
|
||||||
|
void headerCustomContextMenuRequested(const QPoint &pos);
|
||||||
|
|
||||||
void on_m_unlink_pb_clicked();
|
void on_m_unlink_pb_clicked();
|
||||||
void on_m_tree_widget_itemDoubleClicked(QTreeWidgetItem *item, int column);
|
void on_m_tree_widget_itemDoubleClicked(QTreeWidgetItem *item, int column);
|
||||||
@@ -97,7 +98,8 @@ class LinkSingleElementWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
QMenu *m_context_menu;
|
QMenu *m_context_menu;
|
||||||
QAction *m_link_action,
|
QAction *m_link_action,
|
||||||
*m_show_qtwi,
|
*m_show_qtwi,
|
||||||
*m_show_element;
|
*m_show_element,
|
||||||
|
*m_save_header_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LINKSINGLEELEMENTWIDGET_H
|
#endif // LINKSINGLEELEMENTWIDGET_H
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ MasterPropertiesWidget::MasterPropertiesWidget(Element *elmt, QWidget *parent) :
|
|||||||
m_unlink_action = new QAction(tr("Délier l'élément"), this);
|
m_unlink_action = new QAction(tr("Délier l'élément"), this);
|
||||||
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
|
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
|
||||||
m_show_element = new QAction(tr("Montrer l'élément maître"), this);
|
m_show_element = new QAction(tr("Montrer l'élément maître"), this);
|
||||||
|
m_save_header_state = new QAction(tr("Enregistrer la disposition"), this);
|
||||||
|
|
||||||
connect(ui->m_free_tree_widget, &QTreeWidget::itemDoubleClicked, this, &MasterPropertiesWidget::showElementFromTWI);
|
connect(ui->m_free_tree_widget, &QTreeWidget::itemDoubleClicked, this, &MasterPropertiesWidget::showElementFromTWI);
|
||||||
connect(ui->m_link_tree_widget, &QTreeWidget::itemDoubleClicked, this, &MasterPropertiesWidget::showElementFromTWI);
|
connect(ui->m_link_tree_widget, &QTreeWidget::itemDoubleClicked, this, &MasterPropertiesWidget::showElementFromTWI);
|
||||||
@@ -65,6 +66,16 @@ MasterPropertiesWidget::MasterPropertiesWidget(Element *elmt, QWidget *parent) :
|
|||||||
m_showed_element->setHighlighted(false);
|
m_showed_element->setHighlighted(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QHeaderView *qhv = ui->m_free_tree_widget->header();
|
||||||
|
qhv->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
connect(qhv, &QHeaderView::customContextMenuRequested, this, &MasterPropertiesWidget::headerCustomContextMenuRequested);
|
||||||
|
connect(m_save_header_state, &QAction::triggered, [this, qhv]()
|
||||||
|
{
|
||||||
|
QByteArray qba = qhv->saveState();
|
||||||
|
QSettings settings;
|
||||||
|
settings.setValue("link-element-widget/master-state", qba);
|
||||||
|
});
|
||||||
|
|
||||||
setElement(elmt);
|
setElement(elmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +260,20 @@ void MasterPropertiesWidget::updateUi()
|
|||||||
if(items_list.count())
|
if(items_list.count())
|
||||||
ui->m_link_tree_widget->addTopLevelItems(items_list);
|
ui->m_link_tree_widget->addTopLevelItems(items_list);
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
QVariant v = settings.value("link-element-widget/master-state");
|
||||||
|
if(!v.isNull())
|
||||||
|
{
|
||||||
|
ui->m_free_tree_widget->header()->restoreState(v.toByteArray());
|
||||||
|
ui->m_link_tree_widget->header()->restoreState(v.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MasterPropertiesWidget::headerCustomContextMenuRequested(const QPoint &pos)
|
||||||
|
{
|
||||||
|
m_context_menu->clear();
|
||||||
|
m_context_menu->addAction(m_save_header_state);
|
||||||
|
m_context_menu->popup(ui->m_free_tree_widget->header()->mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ class MasterPropertiesWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
void updateUi();
|
void updateUi();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void headerCustomContextMenuRequested(const QPoint &pos);
|
||||||
void on_link_button_clicked();
|
void on_link_button_clicked();
|
||||||
void on_unlink_button_clicked();
|
void on_unlink_button_clicked();
|
||||||
void showElementFromTWI(QTreeWidgetItem *qtwi, int column);
|
void showElementFromTWI(QTreeWidgetItem *qtwi, int column);
|
||||||
@@ -76,7 +77,8 @@ class MasterPropertiesWidget : public AbstractElementPropertiesEditorWidget
|
|||||||
QAction *m_link_action,
|
QAction *m_link_action,
|
||||||
*m_unlink_action,
|
*m_unlink_action,
|
||||||
*m_show_qtwi,
|
*m_show_qtwi,
|
||||||
*m_show_element;
|
*m_show_element,
|
||||||
|
*m_save_header_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MASTERPROPERTIESWIDGET_H
|
#endif // MASTERPROPERTIESWIDGET_H
|
||||||
|
|||||||
Reference in New Issue
Block a user