mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +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
|
You should have received a copy of the GNU General Public License
|
||||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
#include "freeterminaleditor.h"
|
||||||
#include "terminalstripeditorwindow.h"
|
#include "terminalstripeditorwindow.h"
|
||||||
#include "ui_terminalstripeditorwindow.h"
|
#include "ui_terminalstripeditorwindow.h"
|
||||||
#include "terminalstriptreedockwidget.h"
|
#include "terminalstriptreedockwidget.h"
|
||||||
@ -22,7 +23,11 @@
|
|||||||
#include "terminalstripcreatordialog.h"
|
#include "terminalstripcreatordialog.h"
|
||||||
#include "../UndoCommand/addterminalstripcommand.h"
|
#include "../UndoCommand/addterminalstripcommand.h"
|
||||||
#include "../../qetproject.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
|
* @brief TerminalStripEditorWindow::TerminalStripEditorWindow
|
||||||
* @param project
|
* @param project
|
||||||
@ -37,7 +42,12 @@ TerminalStripEditorWindow::TerminalStripEditorWindow(QETProject *project, QWidge
|
|||||||
ui->m_remove_terminal->setDisabled(true);
|
ui->m_remove_terminal->setDisabled(true);
|
||||||
addTreeDockWidget();
|
addTreeDockWidget();
|
||||||
|
|
||||||
|
m_free_terminal_editor = new FreeTerminalEditor(m_project, this);
|
||||||
|
|
||||||
connect(m_tree_dock, &TerminalStripTreeDockWidget::currentStripChanged, this, &TerminalStripEditorWindow::currentStripChanged);
|
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)
|
void TerminalStripEditorWindow::currentStripChanged(TerminalStrip *strip)
|
||||||
{
|
{
|
||||||
Q_UNUSED(strip)
|
Q_UNUSED(strip)
|
||||||
|
updateUi();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void TerminalStripEditorWindow::updateUi()
|
||||||
|
{
|
||||||
ui->m_remove_terminal->setEnabled(m_tree_dock->currentIsStrip());
|
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 QETProject;
|
||||||
class TerminalStripTreeDockWidget;
|
class TerminalStripTreeDockWidget;
|
||||||
class TerminalStrip;
|
class TerminalStrip;
|
||||||
|
class FreeTerminalEditor;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class TerminalStripEditorWindow;
|
class TerminalStripEditorWindow;
|
||||||
@ -44,11 +45,13 @@ class TerminalStripEditorWindow : public QMainWindow
|
|||||||
private:
|
private:
|
||||||
void addTreeDockWidget();
|
void addTreeDockWidget();
|
||||||
void currentStripChanged(TerminalStrip *strip);
|
void currentStripChanged(TerminalStrip *strip);
|
||||||
|
void updateUi();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::TerminalStripEditorWindow *ui;
|
Ui::TerminalStripEditorWindow *ui;
|
||||||
QETProject *m_project = nullptr;
|
QETProject *m_project {nullptr};
|
||||||
TerminalStripTreeDockWidget *m_tree_dock;
|
TerminalStripTreeDockWidget *m_tree_dock;
|
||||||
|
FreeTerminalEditor *m_free_terminal_editor {nullptr};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TERMINALSTRIPEDITORWINDOW_H
|
#endif // TERMINALSTRIPEDITORWINDOW_H
|
||||||
|
@ -13,7 +13,20 @@
|
|||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Gestionnaire de borniers</string>
|
<string>Gestionnaire de borniers</string>
|
||||||
</property>
|
</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">
|
<widget class="QMenuBar" name="menubar">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "../realterminal.h"
|
#include "../realterminal.h"
|
||||||
#include "../../qetgraphicsitem/terminalelement.h"
|
#include "../../qetgraphicsitem/terminalelement.h"
|
||||||
#include "../terminalstrip.h"
|
#include "../terminalstrip.h"
|
||||||
|
#include "terminalstriptreewidget.h"
|
||||||
|
|
||||||
TerminalStripTreeDockWidget::TerminalStripTreeDockWidget(QETProject *project, QWidget *parent) :
|
TerminalStripTreeDockWidget::TerminalStripTreeDockWidget(QETProject *project, QWidget *parent) :
|
||||||
QDockWidget(parent),
|
QDockWidget(parent),
|
||||||
@ -144,6 +145,20 @@ void TerminalStripTreeDockWidget::setSelectedStrip(TerminalStrip *strip) {
|
|||||||
ui->m_tree_view->setCurrentItem(m_item_strip_H.key(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
|
* @brief TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged
|
||||||
* @param current
|
* @param current
|
||||||
|
@ -44,6 +44,7 @@ class TerminalStripTreeDockWidget : public QDockWidget
|
|||||||
QString currentInstallation() const;
|
QString currentInstallation() const;
|
||||||
QString currentLocation() const;
|
QString currentLocation() const;
|
||||||
void setSelectedStrip(TerminalStrip *strip);
|
void setSelectedStrip(TerminalStrip *strip);
|
||||||
|
QSharedPointer<RealTerminal> currentRealTerminal() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentStripChanged(TerminalStrip *strip);
|
void currentStripChanged(TerminalStrip *strip);
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
#include <QMimeData>
|
#include <QMimeData>
|
||||||
#include <QDragMoveEvent>
|
#include <QDragMoveEvent>
|
||||||
|
|
||||||
int TerminalStripTreeWidget::UUID_USER_ROLE = Qt::UserRole + 1;
|
|
||||||
|
|
||||||
TerminalStripTreeWidget::TerminalStripTreeWidget(QWidget *parent) :
|
TerminalStripTreeWidget::TerminalStripTreeWidget(QWidget *parent) :
|
||||||
QTreeWidget(parent)
|
QTreeWidget(parent)
|
||||||
{}
|
{}
|
||||||
|
@ -39,7 +39,7 @@ class TerminalStripTreeWidget : public QTreeWidget
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Role used for data in QTreeWidgetItem
|
//Role used for data in QTreeWidgetItem
|
||||||
static int UUID_USER_ROLE;
|
static constexpr int UUID_USER_ROLE{Qt::UserRole + 1};
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user