QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
terminalstriptreedockwidget.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef TERMINALSTRIPTREEDOCKWIDGET_H
19#define TERMINALSTRIPTREEDOCKWIDGET_H
20
21#include <QDockWidget>
22#include <QPointer>
23#include <QHash>
24
25class QETProject;
26class QTreeWidgetItem;
27class TerminalStrip;
28class RealTerminal;
29
30namespace Ui {
31 class TerminalStripTreeDockWidget;
32}
33
34class TerminalStripTreeDockWidget : public QDockWidget
35{
36 Q_OBJECT
37 private:
46 //Role used for data in QTreeWidgetItem
47 static constexpr int UUID_USER_ROLE{Qt::UserRole + 1};
48
49 public:
50 explicit TerminalStripTreeDockWidget(QETProject *project, QWidget *parent = nullptr);
52
53 void setProject(QETProject *project = nullptr);
54 void reload();
55 bool currentIsStrip() const;
57 QString currentInstallation() const;
58 QString currentLocation() const;
60 QSharedPointer<RealTerminal> currentRealTerminal() const;
61
62 signals:
64
65 private slots:
66 void on_m_tree_view_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
67
68 private:
69 void buildTree();
70 QTreeWidgetItem* addTerminalStrip(TerminalStrip *terminal_strip);
71 void addFreeTerminal();
72 void setCurrentStrip(TerminalStrip *strip);
73
74 private:
75 Ui::TerminalStripTreeDockWidget *ui;
76 QPointer<QETProject> m_project;
77 QPointer<TerminalStrip> m_current_strip;
78
79 QHash<QTreeWidgetItem *, QPointer<TerminalStrip>> m_item_strip_H;
80 QHash<QUuid, QSharedPointer<RealTerminal>> m_uuid_terminal_H;
81 QHash<QUuid, QPointer<TerminalStrip>> m_uuid_strip_H;
82 QVector<QMetaObject::Connection> m_strip_changed_connection;
84 QMetaObject::Connection m_project_destroy_connection;
85};
86
87#endif // TERMINALSTRIPTREEDOCKWIDGET_H
Definition qetproject.h:77
The RealTerminal class Represent a real terminal. A real terminal can be a drawn terminal in a folio ...
Definition realterminal.h:43
The TerminalStrip class This class hold all the datas and configurations of a terminal strip (but the...
Definition terminalstrip.h:45
QHash< QUuid, QPointer< TerminalStrip > > m_uuid_strip_H
Definition terminalstriptreedockwidget.h:81
QPointer< QETProject > m_project
Definition terminalstriptreedockwidget.h:76
TerminalStrip * currentStrip() const
TerminalStripTreeDockWidget::currentStrip.
Definition terminalstriptreedockwidget.cpp:116
QMetaObject::Connection m_project_destroy_connection
Definition terminalstriptreedockwidget.h:84
void setProject(QETProject *project=nullptr)
TerminalStripTreeDockWidget::setProject Set @project as project handled by this tree dock....
Definition terminalstriptreedockwidget.cpp:58
QHash< QTreeWidgetItem *, QPointer< TerminalStrip > > m_item_strip_H
Definition terminalstriptreedockwidget.h:79
void buildTree()
TerminalStripTreeDockWidget::buildTree.
Definition terminalstriptreedockwidget.cpp:225
QSharedPointer< RealTerminal > currentRealTerminal() const
TerminalStripTreeDockWidget::currentRealTerminal.
Definition terminalstriptreedockwidget.cpp:174
void addFreeTerminal()
TerminalStripTreeDockWidget::addFreeTerminal.
Definition terminalstriptreedockwidget.cpp:330
bool m_current_is_free_terminal
Definition terminalstriptreedockwidget.h:83
QPointer< TerminalStrip > m_current_strip
Definition terminalstriptreedockwidget.h:77
TreeWidgetType
Definition terminalstriptreedockwidget.h:38
@ Installation
Definition terminalstriptreedockwidget.h:42
@ Root
Definition terminalstriptreedockwidget.h:39
@ Strip
Definition terminalstriptreedockwidget.h:44
@ Terminal
Definition terminalstriptreedockwidget.h:40
@ Location
Definition terminalstriptreedockwidget.h:43
@ FreeTerminal
Definition terminalstriptreedockwidget.h:41
QString currentInstallation() const
TerminalStripTreeDockWidget::currentInstallation.
Definition terminalstriptreedockwidget.cpp:124
QTreeWidgetItem * addTerminalStrip(TerminalStrip *terminal_strip)
Definition terminalstriptreedockwidget.cpp:253
void reload()
TerminalStripTreeDockWidget::reload.
Definition terminalstriptreedockwidget.cpp:77
static constexpr int UUID_USER_ROLE
Definition terminalstriptreedockwidget.h:47
void on_m_tree_view_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged.
Definition terminalstriptreedockwidget.cpp:189
TerminalStripTreeDockWidget(QETProject *project, QWidget *parent=nullptr)
Definition terminalstriptreedockwidget.cpp:33
bool currentIsStrip() const
TerminalStripTreeDockWidget::currentIsStrip.
Definition terminalstriptreedockwidget.cpp:107
void currentStripChanged(TerminalStrip *strip)
Ui::TerminalStripTreeDockWidget * ui
Definition terminalstriptreedockwidget.h:75
QString currentLocation() const
TerminalStripTreeDockWidget::currentLocation.
Definition terminalstriptreedockwidget.cpp:147
void setCurrentStrip(TerminalStrip *strip)
Definition terminalstriptreedockwidget.cpp:361
QHash< QUuid, QSharedPointer< RealTerminal > > m_uuid_terminal_H
Definition terminalstriptreedockwidget.h:80
QVector< QMetaObject::Connection > m_strip_changed_connection
Definition terminalstriptreedockwidget.h:82
void setSelectedStrip(TerminalStrip *strip)
TerminalStripTreeDockWidget::setSelectedStrip.
Definition terminalstriptreedockwidget.cpp:166
~TerminalStripTreeDockWidget()
Definition terminalstriptreedockwidget.cpp:43
Definition autonumberingdockwidget.h:30