mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-14 20:33:05 +02:00
Add free terminal editor widget
This commit is contained in:
parent
b1ad16d482
commit
b48ba939de
@ -15,6 +15,7 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "freeterminaleditor.h"
|
||||
#include "terminalstripeditorwindow.h"
|
||||
#include "ui_terminalstripeditorwindow.h"
|
||||
#include "terminalstriptreedockwidget.h"
|
||||
@ -22,7 +23,11 @@
|
||||
#include "terminalstripcreatordialog.h"
|
||||
#include "../UndoCommand/addterminalstripcommand.h"
|
||||
#include "../../qetproject.h"
|
||||
#include "../realterminal.h"
|
||||
|
||||
static int EMPTY_PAGE = 0;
|
||||
static int FREE_TERMINAL_PAGE = 1;
|
||||
static int TERMINAL_STRIP_PAGE = 2;
|
||||
/**
|
||||
* @brief TerminalStripEditorWindow::TerminalStripEditorWindow
|
||||
* @param project
|
||||
@ -37,7 +42,12 @@ TerminalStripEditorWindow::TerminalStripEditorWindow(QETProject *project, QWidge
|
||||
ui->m_remove_terminal->setDisabled(true);
|
||||
addTreeDockWidget();
|
||||
|
||||
m_free_terminal_editor = new FreeTerminalEditor(m_project, this);
|
||||
|
||||
connect(m_tree_dock, &TerminalStripTreeDockWidget::currentStripChanged, this, &TerminalStripEditorWindow::currentStripChanged);
|
||||
|
||||
ui->m_stacked_widget->insertWidget(EMPTY_PAGE, new QWidget(ui->m_stacked_widget));
|
||||
ui->m_stacked_widget->insertWidget(FREE_TERMINAL_PAGE, m_free_terminal_editor);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +76,24 @@ void TerminalStripEditorWindow::addTreeDockWidget()
|
||||
void TerminalStripEditorWindow::currentStripChanged(TerminalStrip *strip)
|
||||
{
|
||||
Q_UNUSED(strip)
|
||||
updateUi();
|
||||
|
||||
}
|
||||
|
||||
void TerminalStripEditorWindow::updateUi()
|
||||
{
|
||||
ui->m_remove_terminal->setEnabled(m_tree_dock->currentIsStrip());
|
||||
|
||||
ui->m_stacked_widget->setCurrentIndex(EMPTY_PAGE);
|
||||
|
||||
if (auto real_terminal = m_tree_dock->currentRealTerminal())
|
||||
{
|
||||
if (!real_terminal->parentStrip())
|
||||
{
|
||||
ui->m_stacked_widget->setCurrentIndex(FREE_TERMINAL_PAGE);
|
||||
m_free_terminal_editor->reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,18 +131,6 @@ void TerminalStripEditorWindow::on_m_remove_terminal_triggered()
|
||||
}
|
||||
|
||||
}
|
||||
// auto item = ui->m_tree_view->currentItem();
|
||||
// if (auto strip = m_item_strip_H.value(item))
|
||||
// {
|
||||
// m_item_strip_H.remove(item);
|
||||
// m_uuid_strip_H.remove(strip->uuid());
|
||||
// delete item;
|
||||
|
||||
// m_project->undoStack()->push(new RemoveTerminalStripCommand(strip, m_project));
|
||||
// }
|
||||
|
||||
// on_m_reload_pb_clicked();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
class QETProject;
|
||||
class TerminalStripTreeDockWidget;
|
||||
class TerminalStrip;
|
||||
class FreeTerminalEditor;
|
||||
|
||||
namespace Ui {
|
||||
class TerminalStripEditorWindow;
|
||||
@ -44,11 +45,13 @@ class TerminalStripEditorWindow : public QMainWindow
|
||||
private:
|
||||
void addTreeDockWidget();
|
||||
void currentStripChanged(TerminalStrip *strip);
|
||||
void updateUi();
|
||||
|
||||
private:
|
||||
Ui::TerminalStripEditorWindow *ui;
|
||||
QETProject *m_project = nullptr;
|
||||
QETProject *m_project {nullptr};
|
||||
TerminalStripTreeDockWidget *m_tree_dock;
|
||||
FreeTerminalEditor *m_free_terminal_editor {nullptr};
|
||||
};
|
||||
|
||||
#endif // TERMINALSTRIPEDITORWINDOW_H
|
||||
|
@ -13,7 +13,20 @@
|
||||
<property name="windowTitle">
|
||||
<string>Gestionnaire de borniers</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget"/>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="m_stacked_widget"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "../realterminal.h"
|
||||
#include "../../qetgraphicsitem/terminalelement.h"
|
||||
#include "../terminalstrip.h"
|
||||
#include "terminalstriptreewidget.h"
|
||||
|
||||
TerminalStripTreeDockWidget::TerminalStripTreeDockWidget(QETProject *project, QWidget *parent) :
|
||||
QDockWidget(parent),
|
||||
@ -144,6 +145,20 @@ void TerminalStripTreeDockWidget::setSelectedStrip(TerminalStrip *strip) {
|
||||
ui->m_tree_view->setCurrentItem(m_item_strip_H.key(strip));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStripTreeDockWidget::currentRealTerminal
|
||||
* @return the current real terminal or a null QSharedPointer.
|
||||
*/
|
||||
QSharedPointer<RealTerminal> TerminalStripTreeDockWidget::currentRealTerminal() const
|
||||
{
|
||||
if (auto item = ui->m_tree_view->currentItem()) {
|
||||
if (item->type() == TerminalStripTreeWidget::Terminal) {
|
||||
return m_uuid_terminal_H.value(item->data(0,TerminalStripTreeWidget::UUID_USER_ROLE).toUuid());
|
||||
}
|
||||
}
|
||||
return QSharedPointer<RealTerminal>();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged
|
||||
* @param current
|
||||
|
@ -44,6 +44,7 @@ class TerminalStripTreeDockWidget : public QDockWidget
|
||||
QString currentInstallation() const;
|
||||
QString currentLocation() const;
|
||||
void setSelectedStrip(TerminalStrip *strip);
|
||||
QSharedPointer<RealTerminal> currentRealTerminal() const;
|
||||
|
||||
signals:
|
||||
void currentStripChanged(TerminalStrip *strip);
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include <QMimeData>
|
||||
#include <QDragMoveEvent>
|
||||
|
||||
int TerminalStripTreeWidget::UUID_USER_ROLE = Qt::UserRole + 1;
|
||||
|
||||
TerminalStripTreeWidget::TerminalStripTreeWidget(QWidget *parent) :
|
||||
QTreeWidget(parent)
|
||||
{}
|
||||
|
@ -39,7 +39,7 @@ class TerminalStripTreeWidget : public QTreeWidget
|
||||
};
|
||||
|
||||
//Role used for data in QTreeWidgetItem
|
||||
static int UUID_USER_ROLE;
|
||||
static constexpr int UUID_USER_ROLE{Qt::UserRole + 1};
|
||||
|
||||
signals:
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user