diff --git a/sources/editor/qetelementeditor.cpp b/sources/editor/qetelementeditor.cpp
index 58ca30be7..846123c09 100644
--- a/sources/editor/qetelementeditor.cpp
+++ b/sources/editor/qetelementeditor.cpp
@@ -1,17 +1,17 @@
/*
Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech.
-
+
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
-
+
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see .
*/
@@ -83,7 +83,7 @@ QETElementEditor::QETElementEditor(QWidget *parent) :
// la fenetre est maximisee par defaut
setMinimumSize(QSize(500, 350));
setWindowState(Qt::WindowMaximized);
-
+
// lecture des parametres
readSettings();
slot_updateMenus();
@@ -165,7 +165,7 @@ void QETElementEditor::setupActions()
open_dxf -> setStatusTip(tr("To install the plugin DXFtoQET\nVisit https://download.tuxfamily.org/qet/builds/dxf_to_elmt/\n"
"\n"
">> Install on Windows\n"
- "Put DXFtoQET.exe binary on C:\\Users\\user_name\\AppData\\Roaming\\qet\\ directory \n"
+ "Put DXFtoQET.exe binary on C:\\Users\\user_name\\AppData\\Roaming\\qet\\ directory \n"
));
#elif defined(Q_OS_MAC)
open_dxf -> setStatusTip(tr("To install the plugin DXFtoQET\nVisit https://download.tuxfamily.org/qet/builds/dxf_to_elmt/\n"
@@ -188,7 +188,7 @@ void QETElementEditor::setupActions()
"Put DXFtoQET binary on your /home/user_name/.qet/ directory\n"
"make it executable : chmod +x ./DXFtoQET\n"
">> Install on Windows\n"
- "Put DXFtoQET.exe binary on C:\\Users\\user_name\\AppData\\Roaming\\qet\\ directory \n"
+ "Put DXFtoQET.exe binary on C:\\Users\\user_name\\AppData\\Roaming\\qet\\ directory \n"
"\n"
">> Install on macOSX\n"
"Put DXFtoQET.app binary on /Users/user_name/.qet/ directory \n"
@@ -491,7 +491,7 @@ void QETElementEditor::slot_updateMenus()
// actions dependant du contenu du presse-papiers
paste -> setEnabled(clipboard_elmt);
paste_in_area -> setEnabled(clipboard_elmt);
-
+
// actions dependant de l'etat de la pile d'annulation
save -> setEnabled(!read_only && !m_elmt_scene -> undoStack().isClean());
undo -> setEnabled(!read_only && m_elmt_scene -> undoStack().canUndo());
@@ -534,7 +534,7 @@ void QETElementEditor::setupInterface()
// m_tools_dock_scroll_area = new QScrollArea();
// m_tools_dock_scroll_area -> setFrameStyle(QFrame::NoFrame);
// m_tools_dock_scroll_area -> setAlignment(Qt::AlignHCenter|Qt::AlignTop);
-
+
// Pile de widgets pour accueillir les deux widgets precedents
m_tools_dock_stack = new QStackedWidget();
m_tools_dock_stack -> insertWidget(0, m_default_informations);
@@ -555,7 +555,10 @@ void QETElementEditor::setupInterface()
m_tools_dock = new QDockWidget(tr("Informations", "dock title"), this);
m_tools_dock -> setObjectName("informations");
m_tools_dock -> setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- m_tools_dock -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ m_tools_dock -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
//m_tools_dock -> setMinimumWidth(380);
addDockWidget(Qt::RightDockWidgetArea, m_tools_dock);
m_tools_dock -> setWidget(m_tools_dock_stack);
@@ -564,7 +567,10 @@ void QETElementEditor::setupInterface()
m_undo_dock = new QDockWidget(tr("Annulations", "dock title"), this);
m_undo_dock -> setObjectName("undo");
m_undo_dock -> setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- m_undo_dock -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ m_undo_dock -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
m_undo_dock -> setMinimumWidth(290);
addDockWidget(Qt::RightDockWidgetArea, m_undo_dock);
QUndoView* undo_view = new QUndoView(&(m_elmt_scene -> undoStack()), this);
@@ -582,7 +588,10 @@ void QETElementEditor::setupInterface()
m_parts_dock = new QDockWidget(tr("Parties", "dock title"), this);
m_parts_dock -> setObjectName("parts_list");
m_parts_dock -> setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- m_parts_dock -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ m_parts_dock -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
m_parts_dock -> setMinimumWidth(290);
tabifyDockWidget(m_undo_dock, m_parts_dock);
m_parts_dock -> setWidget(m_parts_list);
@@ -1126,10 +1135,10 @@ void QETElementEditor::slot_openFile()
{
// repertoire a afficher initialement dans le dialogue
QString open_dir = filename_.isEmpty() ? QETApp::customElementsDir() : QDir(filename_).absolutePath();
-
+
// demande un nom de fichier a ouvrir a l'utilisateur
QString user_filename = QETElementEditor::getOpenElementFileName(this, open_dir);
-
+
// ouvre l'element
openElement(user_filename);
}
@@ -1445,7 +1454,7 @@ void QETElementEditor::slot_createPartsList()
m_parts_list -> blockSignals(true);
m_parts_list -> clear();
QList qgis = m_elmt_scene -> zItems();
-
+
// on ne construit plus la liste a partir de 200 primitives
// c'est ingerable : la maj de la liste prend trop de temps et le resultat
// est inexploitable
diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp
index 7e0c0ccf6..f844e0fb2 100644
--- a/sources/qetdiagrameditor.cpp
+++ b/sources/qetdiagrameditor.cpp
@@ -1,17 +1,17 @@
/*
Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech.
-
+
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
-
+
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see .
*/
@@ -60,7 +60,7 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) :
open_dialog_dir (QStandardPaths::writableLocation(QStandardPaths::DesktopLocation))
{
activeSubWindowIndex = 0;
-
+
QSplitter *splitter_ = new QSplitter(this);
splitter_->setChildrenCollapsible(false);
splitter_->setOrientation(Qt::Vertical);
@@ -77,19 +77,19 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) :
anim->setObjectName("search and replace animator");
m_search_and_replace_widget.setHidden(true);
anim->setLastShowSize(m_search_and_replace_widget.minimumSizeHint().height());
-
+
//Set object name to be retrieved by the stylesheets
m_workspace.setBackground(QBrush(Qt::NoBrush));
m_workspace.setObjectName("mdiarea");
m_workspace.setTabsClosable(true);
-
+
//Set the signal mapper
connect(&windowMapper, SIGNAL(mapped(QWidget *)), this, SLOT(activateWidget(QWidget *)));
-
- setWindowTitle(tr("QElectroTech", "window title"));
+
+ setWindowTitle(tr("QElectroTech", "window title"));
setWindowIcon(QET::Icons::QETLogo);
statusBar() -> showMessage(tr("QElectroTech", "status bar message"));
-
+
setUpElementsPanel();
setUpElementsCollectionWidget();
setUpUndoStack();
@@ -101,11 +101,11 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) :
setUpMenu();
tabifyDockWidget(qdw_undo, qdw_pa);
-
+
//By default the windows is maximised
setMinimumSize(QSize(500, 350));
setWindowState(Qt::WindowMaximized);
-
+
connect (&m_workspace,
SIGNAL(subWindowActivated(QMdiSubWindow *)),
this,
@@ -117,7 +117,7 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) :
readSettings();
show();
-
+
//If valid file path is given as arguments
uint opened_projects = 0;
if (files.count())
@@ -149,7 +149,10 @@ void QETDiagramEditor::setUpElementsPanel()
qdw_pa -> setObjectName ("projects panel");
qdw_pa -> setAllowedAreas (Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- qdw_pa -> setFeatures (QDockWidget::AllDockWidgetFeatures);
+ qdw_pa -> setFeatures (
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
qdw_pa -> setMinimumWidth (160);
qdw_pa -> setWidget (pa = new ElementsPanelWidget(qdw_pa));
@@ -179,7 +182,10 @@ void QETDiagramEditor::setUpElementsCollectionWidget()
m_qdw_elmt_collection = new QDockWidget(tr("Collections"), this);
m_qdw_elmt_collection->setObjectName("elements_collection_widget");
m_qdw_elmt_collection->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- m_qdw_elmt_collection->setFeatures(QDockWidget::AllDockWidgetFeatures);
+ m_qdw_elmt_collection->setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
m_element_collection_widget = new ElementsCollectionWidget(m_qdw_elmt_collection);
m_qdw_elmt_collection->setWidget(m_element_collection_widget);
@@ -205,7 +211,10 @@ void QETDiagramEditor::setUpUndoStack()
qdw_undo -> setObjectName("diagram_undo");
qdw_undo -> setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- qdw_undo -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ qdw_undo -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
qdw_undo -> setMinimumWidth(160);
qdw_undo -> setWidget(undo_view);
@@ -231,7 +240,10 @@ void QETDiagramEditor::setUpAutonumberingWidget()
{
m_autonumbering_dock = new AutoNumberingDockWidget(this);
m_autonumbering_dock -> setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- m_autonumbering_dock -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ m_autonumbering_dock -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
addDockWidget(Qt::RightDockWidgetArea, m_autonumbering_dock);
}
@@ -251,7 +263,7 @@ void QETDiagramEditor::setUpActions()
current_project -> exportProject();
}
});
-
+
//Print
m_print = new QAction(QET::Icons::DocumentPrint, tr("Imprimer"), this);
m_print->setShortcut(QKeySequence(QKeySequence::Print));
@@ -262,7 +274,7 @@ void QETDiagramEditor::setUpActions()
current_project -> printProject();
}
});
-
+
//Quit editor
m_quit_editor = new QAction(QET::Icons::ApplicationExit, tr("&Quitter"), this);
m_quit_editor->setShortcut(QKeySequence(tr("Ctrl+Q")));
@@ -314,7 +326,7 @@ void QETDiagramEditor::setUpActions()
if (DiagramView *dv = currentDiagramView())
dv->resetConductors();
});
-
+
//AutoConductor
m_auto_conductor = new QAction (QET::Icons::Autoconnect, tr("Création automatique de conducteur(s)","Tool tip of auto conductor"), this);
m_auto_conductor->setStatusTip (tr("Utiliser la création automatique de conducteur(s) quand cela est possible", "Status tip of auto conductor"));
@@ -358,13 +370,13 @@ void QETDiagramEditor::setUpActions()
project_view->editCurrentDiagramProperties();
}
});
-
+
//Edit current project properties
m_project_edit_properties = new QAction(QET::Icons::ProjectProperties, tr("Propriétés du projet"), this);
connect(m_project_edit_properties, &QAction::triggered, [this]() {
editProjectProperties(currentProjectView());
});
-
+
//Add new folio to current project
m_project_add_diagram = new QAction(QET::Icons::DiagramAdd, tr("Ajouter un folio"), this);
m_project_add_diagram->setShortcut(QKeySequence(tr("Ctrl+T")));
@@ -373,11 +385,11 @@ void QETDiagramEditor::setUpActions()
current_project->project()->addNewDiagram();
}
});
-
+
//Remove current folio from current project
m_remove_diagram_from_project = new QAction(QET::Icons::DiagramDelete, tr("Supprimer le folio"), this);
connect(m_remove_diagram_from_project, &QAction::triggered, this, &QETDiagramEditor::removeDiagramFromProject);
-
+
//Clean the current project
m_clean_project = new QAction(QET::Icons::EditClear, tr("Nettoyer le projet"), this);
connect(m_clean_project, &QAction::triggered, [this]() {
@@ -394,7 +406,7 @@ void QETDiagramEditor::setUpActions()
BOMExportDialog bom(currentProjectView()->project(), this);
bom.exec();
});
-
+
//Add a nomenclature item
m_add_nomenclature = new QAction(QET::Icons::TableOfContent, tr("Ajouter une nomenclature"), this);
connect(m_add_nomenclature, &QAction::triggered, [this]() {
@@ -430,27 +442,27 @@ void QETDiagramEditor::setUpActions()
connect(m_export_project_db, &QAction::triggered, [this]() {
projectDataBase::exportDb(this->currentProject()->dataBase(), this);
});
-
+
//MDI view style
m_tabbed_view_mode = new QAction(tr("en utilisant des onglets"), this);
m_tabbed_view_mode->setStatusTip(tr("Présente les différents projets ouverts des onglets", "status bar tip"));
m_tabbed_view_mode->setCheckable(true);
connect(m_tabbed_view_mode, &QAction::triggered, this, &QETDiagramEditor::setTabbedMode);
-
+
m_windowed_view_mode = new QAction(tr("en utilisant des fenêtres"), this);
m_windowed_view_mode->setStatusTip(tr("Présente les différents projets ouverts dans des sous-fenêtres", "status bar tip"));
m_windowed_view_mode->setCheckable(true);
connect(m_windowed_view_mode, &QAction::triggered, this, &QETDiagramEditor::setWindowedMode);
-
+
m_group_view_mode = new QActionGroup(this);
m_group_view_mode -> addAction(m_windowed_view_mode);
m_group_view_mode -> addAction(m_tabbed_view_mode);
m_group_view_mode -> setExclusive(true);
-
+
m_tile_window = new QAction(tr("&Mosaïque"), this);
m_tile_window->setStatusTip(tr("Dispose les fenêtres en mosaïque", "status bar tip"));
connect(m_tile_window, &QAction::triggered, &m_workspace, &QMdiArea::tileSubWindows);
-
+
m_cascade_window = new QAction(tr("&Cascade"), this);
m_cascade_window->setStatusTip(tr("Dispose les fenêtres en cascade", "status bar tip"));
connect(m_cascade_window, &QAction::triggered, &m_workspace, &QMdiArea::cascadeSubWindows);
@@ -467,7 +479,7 @@ void QETDiagramEditor::setUpActions()
}
}
});
-
+
m_mode_visualise = new QAction(QET::Icons::ViewMove, tr("Mode Visualisation"), this);
m_mode_visualise->setStatusTip(tr("Permet de visualiser le folio sans pouvoir le modifier", "status bar tip"));
m_mode_visualise->setCheckable(true);
@@ -489,7 +501,7 @@ void QETDiagramEditor::setUpActions()
m_next_window->setShortcut(QKeySequence::NextChild);
m_next_window->setStatusTip(tr("Active le projet suivant", "status bar tip"));
connect(m_next_window, &QAction::triggered, &m_workspace, &QMdiArea::activateNextSubWindow);
-
+
m_previous_window = new QAction(tr("Projet précédent"), this);
m_previous_window->setShortcut(QKeySequence::PreviousChild);
m_previous_window->setStatusTip(tr("Active le projet précédent", "status bar tip"));
@@ -645,11 +657,11 @@ void QETDiagramEditor::setUpActions()
//Depth action
m_depth_action_group = QET::depthActionGroup(this);
m_depth_action_group->setDisabled(true);
-
+
connect(m_depth_action_group, &QActionGroup::triggered, [this](QAction *action) {
this->currentDiagramView()->diagram()->changeZValue(action->data().value());
});
-
+
m_find = new QAction(tr("Chercher/remplacer"), this);
m_find->setShortcut(QKeySequence::Find);
connect(m_find, &QAction::triggered, [this]()
@@ -705,7 +717,7 @@ void QETDiagramEditor::setUpToolBar()
m_add_item_tool_bar = new QToolBar(tr("Ajouter"), this);
m_add_item_tool_bar->setObjectName("adding");
m_add_item_tool_bar->addActions(m_add_item_actions_group.actions());
-
+
m_depth_tool_bar = new QToolBar(tr("Profondeur", "toolbar title"));
m_depth_tool_bar->setObjectName("diagram_depth_toolbar");
m_depth_tool_bar->addActions(m_depth_action_group->actions());
@@ -792,7 +804,7 @@ void QETDiagramEditor::setUpMenu()
diagram_tool_bar -> toggleViewAction() -> setStatusTip(tr("Affiche ou non la barre d'outils Schéma"));
qdw_pa -> toggleViewAction() -> setStatusTip(tr("Affiche ou non le panel d'appareils"));
qdw_undo -> toggleViewAction() -> setStatusTip(tr("Affiche ou non la liste des modifications"));
-
+
// menu Affichage
QMenu *projects_view_mode = menu_affichage -> addMenu(QET::Icons::ConfigureToolbars, tr("Afficher les projets"));
@@ -848,7 +860,7 @@ void QETDiagramEditor::closeEvent(QCloseEvent *qce)
Reimplemented to :
-Load elements collection when WindowActivate.
@param e
- @return
+ @return
*/
bool QETDiagramEditor::event(QEvent *e)
{
@@ -916,10 +928,10 @@ void QETDiagramEditor::saveAs()
bool QETDiagramEditor::newProject()
{
auto new_project = new QETProject(this);
-
+
// add new diagram
new_project -> addNewDiagram();
-
+
return addProject(new_project);
}
@@ -952,10 +964,10 @@ bool QETDiagramEditor::openProject()
tr("Projets QElectroTech (*.qet);;Fichiers XML (*.xml);;Tous les fichiers (*)")
);
if (filepath.isEmpty()) return(false);
-
+
// retient le dossier contenant le dernier projet ouvert
open_dialog_dir = QDir(filepath);
-
+
// ouvre le fichier
return(openAndAddProject(filepath));
}
@@ -1002,7 +1014,7 @@ bool QETDiagramEditor::openAndAddProject(
bool interactive)
{
if (filepath.isEmpty()) return(false);
-
+
QFileInfo filepath_info(filepath);
//Check if project is not open in another editor
@@ -1024,7 +1036,7 @@ bool QETDiagramEditor::openAndAddProject(
return(diagram_editor -> openAndAddProject(filepath));
}
}
-
+
// check the file exists
if (!filepath_info.exists())
{
@@ -1056,7 +1068,7 @@ bool QETDiagramEditor::openAndAddProject(
}
return(false);
}
-
+
//Check if file is read only
if (!filepath_info.isWritable())
{
@@ -1070,10 +1082,10 @@ bool QETDiagramEditor::openAndAddProject(
);
}
}
-
+
//Create the project
DialogWaiting::instance(this);
-
+
QETProject *project = new QETProject(filepath);
if (project -> state() != QETProject::Ok)
{
@@ -1120,14 +1132,14 @@ bool QETDiagramEditor::addProject(QETProject *project, bool update_panel)
undo_group.addStack(project -> undoStack());
m_element_collection_widget->addProject(project);
-
+
// met a jour le panel d'elements
if (update_panel) {
pa -> elementsPanel().projectWasOpened(project);
if (currentDiagramView() != nullptr)
m_autonumbering_dock->setProject(project, project_view);
}
-
+
return(true);
}
@@ -1154,10 +1166,10 @@ ProjectView *QETDiagramEditor::currentProjectView() const
{
QMdiSubWindow *current_window = m_workspace.activeSubWindow();
if (!current_window) return(nullptr);
-
+
QWidget *current_widget = current_window -> widget();
if (!current_widget) return(nullptr);
-
+
if (ProjectView *project_view = qobject_cast(current_widget)) {
return(project_view);
}
@@ -1203,11 +1215,11 @@ Element *QETDiagramEditor::currentElement() const
DiagramView *dv = currentDiagramView();
if (!dv)
return(nullptr);
-
+
QList selected_elements = DiagramContent(dv->diagram()).m_elements;
if (selected_elements.count() != 1)
return(nullptr);
-
+
return(selected_elements.first());
}
@@ -1426,7 +1438,7 @@ void QETDiagramEditor::selectionGroupTriggered(QAction *action)
QList deti_list = dc.m_element_texts.values();
if(deti_list.size() <= 1)
return;
-
+
diagram->undoStack().push(new AddTextsGroupCommand(deti_list.first()->parentElement(), tr("Groupe"), deti_list));
}
}
@@ -1441,7 +1453,7 @@ void QETDiagramEditor::rowColumnGroupTriggered(QAction *action)
Diagram *d = dv->diagram();
BorderProperties old_bp = d->border_and_titleblock.exportBorder();
BorderProperties new_bp = d->border_and_titleblock.exportBorder();
-
+
if (value == "add_column")
new_bp.columns_count += 1;
else if (value == "remove_column")
@@ -1450,7 +1462,7 @@ void QETDiagramEditor::rowColumnGroupTriggered(QAction *action)
new_bp.rows_count += 1;
else if (value == "remove_row")
new_bp.rows_count -= 1;
-
+
d->undoStack().push(new ChangeBorderCommand(d, old_bp, new_bp));
}
@@ -1542,23 +1554,23 @@ void QETDiagramEditor::slot_updateComplexActions()
<< m_group_selected_texts;
for(QAction *action : action_list)
action->setEnabled(false);
-
+
return;
}
-
+
Diagram *diagram_ = dv->diagram();
DiagramContent dc(diagram_);
bool ro = diagram_->isReadOnly();
-
+
//Number of selected conductors
int selected_conductors_count = diagram_->selectedConductors().count();
m_conductor_reset->setEnabled(!ro && selected_conductors_count);
-
+
// number of selected elements
int selected_elements_count = dc.count(DiagramContent::Elements);
m_find_element->setEnabled(selected_elements_count == 1);
-
+
//Action that need items (elements, conductors, texts...) selected, to be enabled
bool copiable_items = dc.hasCopiableItems();
bool deletable_items = dc.hasDeletableItems();
@@ -1584,7 +1596,7 @@ void QETDiagramEditor::slot_updateComplexActions()
selected_dynamic_elmt_text++;
}
m_rotate_texts->setEnabled(!ro && (selected_texts || groups.size()));
-
+
//Action that need only element text selected
QList deti_list = dc.m_element_texts.values();
if(deti_list.size() > 1 && dc.count() == deti_list.count())
@@ -1653,7 +1665,7 @@ void QETDiagramEditor::slot_updateComplexActions()
m_edit_selection -> setIcon(QET::Icons::ElementEdit);
m_edit_selection -> setEnabled(false);
}
-
+
//Actions for edit Z value
QList list = dc.items(
DiagramContent::SelectedOnly
@@ -1670,7 +1682,7 @@ void QETDiagramEditor::slot_updateComplexActions()
void QETDiagramEditor::slot_updateModeActions()
{
DiagramView *dv = currentDiagramView();
-
+
if (!dv)
grp_visu_sel -> setEnabled(false);
else
@@ -1708,7 +1720,7 @@ void QETDiagramEditor::slot_updatePasteAction()
{
DiagramView *dv = currentDiagramView();
bool editable_diagram = (dv && !dv -> diagram() -> isReadOnly());
-
+
// pour coller, il faut un schema ouvert et un schema dans le presse-papier
m_paste -> setEnabled(editable_diagram && Diagram::clipboardMayContainDiagram());
}
@@ -1725,7 +1737,7 @@ void QETDiagramEditor::addProjectView(ProjectView *project_view)
foreach(DiagramView *dv, project_view -> diagram_views())
diagramWasAdded(dv);
-
+
//Manage the close event of project
connect(project_view, SIGNAL(projectClosed(ProjectView*)),
this, SLOT(projectWasClosed(ProjectView *)));
@@ -1736,13 +1748,13 @@ void QETDiagramEditor::addProjectView(ProjectView *project_view)
if (QETProject *project = project_view -> project())
connect(project, SIGNAL(readOnlyChanged(QETProject *, bool)),
this, SLOT(slot_updateActions()));
-
+
//Manage request for edit or find element and titleblock
connect (project_view, &ProjectView::findElementRequired,
this, &QETDiagramEditor::findElementInPanel);
connect (project_view, &ProjectView::editElementRequired,
this, &QETDiagramEditor::editElementInEditor);
-
+
// display error messages sent by the project view
connect(project_view, SIGNAL(errorEncountered(QString)),
this, SLOT(showError(const QString &)));
@@ -1757,7 +1769,7 @@ void QETDiagramEditor::addProjectView(ProjectView *project_view)
QMdiSubWindow *sub_window = m_workspace.addSubWindow(project_view);
sub_window -> setWindowIcon(project_view -> windowIcon());
sub_window -> systemMenu() -> clear();
-
+
//By defaut QMdiSubWindow have a QAction "close" with shortcut QKeySequence::Close
//But the QAction m_close_file of this class have the same shortcut too.
//We remove the shortcut of the QAction of QMdiSubWindow for avoid conflic
@@ -1796,7 +1808,7 @@ QList QETDiagramEditor::editedFiles() const
ProjectView *QETDiagramEditor::viewForFile(const QString &filepath) const
{
if (filepath.isEmpty()) return(nullptr);
-
+
QString searched_can_file_path = QFileInfo(filepath).canonicalFilePath();
if (searched_can_file_path.isEmpty()) {
// QFileInfo returns an empty path for non-existent files
@@ -1858,29 +1870,29 @@ void QETDiagramEditor::slot_updateWindowsMenu()
{
// nettoyage du menu
foreach(QAction *a, windows_menu -> actions()) windows_menu -> removeAction(a);
-
+
// actions de fermeture
windows_menu -> addAction(m_close_file);
//windows_menu -> addAction(closeAllAct);
-
+
// actions de reorganisation des fenetres
windows_menu -> addSeparator();
windows_menu -> addAction(m_tile_window);
windows_menu -> addAction(m_cascade_window);
-
+
// actions de deplacement entre les fenetres
windows_menu -> addSeparator();
windows_menu -> addAction(m_next_window);
windows_menu -> addAction(m_previous_window);
-
+
// liste des fenetres
QList windows = openedProjects();
-
+
m_tile_window -> setEnabled(!windows.isEmpty() && m_workspace.viewMode() == QMdiArea::SubWindowView);
m_cascade_window -> setEnabled(!windows.isEmpty() && m_workspace.viewMode() == QMdiArea::SubWindowView);
m_next_window -> setEnabled(windows.count() > 1);
m_previous_window -> setEnabled(windows.count() > 1);
-
+
if (!windows.isEmpty()) windows_menu -> addSeparator();
QActionGroup *windows_actions = new QActionGroup(this);
foreach(ProjectView *project_view, windows) {
@@ -1946,15 +1958,15 @@ void QETDiagramEditor::setTabbedMode()
void QETDiagramEditor::readSettings()
{
QSettings settings;
-
+
// dimensions et position de la fenetre
QVariant geometry = settings.value("diagrameditor/geometry");
if (geometry.isValid()) restoreGeometry(geometry.toByteArray());
-
+
// etat de la fenetre (barres d'outils, docks...)
QVariant state = settings.value("diagrameditor/state");
if (state.isValid()) restoreState(state.toByteArray());
-
+
// gestion des projets (onglets ou fenetres)
bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed";
if (tabbed) {
@@ -2018,7 +2030,7 @@ void QETDiagramEditor::activateProject(ProjectView *project_view)
void QETDiagramEditor::projectWasClosed(ProjectView *project_view)
{
QETProject *project = project_view -> project();
- if (project)
+ if (project)
{
pa -> elementsPanel().projectWasClosed(project);
m_element_collection_widget->removeProject(project);
@@ -2064,7 +2076,7 @@ void QETDiagramEditor::addDiagramToProject(QETProject *project)
if (!project) {
return;
}
-
+
if (ProjectView *project_view = findProject(project))
{
activateProject(project);
@@ -2079,15 +2091,15 @@ void QETDiagramEditor::addDiagramToProject(QETProject *project)
void QETDiagramEditor::removeDiagram(Diagram *diagram)
{
if (!diagram) return;
-
+
// recupere le projet contenant le schema
if (QETProject *diagram_project = diagram -> project()) {
// recupere la vue sur ce projet
if (ProjectView *project_view = findProject(diagram_project)) {
-
+
// affiche le schema en question
project_view -> showDiagram(diagram);
-
+
// supprime le schema
project_view -> removeDiagram(diagram);
}
@@ -2102,11 +2114,11 @@ void QETDiagramEditor::removeDiagram(Diagram *diagram)
void QETDiagramEditor::moveDiagramUp(Diagram *diagram)
{
if (!diagram) return;
-
+
// recupere le projet contenant le schema
if (QETProject *diagram_project = diagram -> project()) {
if (diagram_project -> isReadOnly()) return;
-
+
// recupere la vue sur ce projet
if (ProjectView *project_view = findProject(diagram_project)) {
project_view -> moveDiagramUp(diagram);
@@ -2122,11 +2134,11 @@ void QETDiagramEditor::moveDiagramUp(Diagram *diagram)
void QETDiagramEditor::moveDiagramDown(Diagram *diagram)
{
if (!diagram) return;
-
+
// recupere le projet contenant le schema
if (QETProject *diagram_project = diagram -> project()) {
if (diagram_project -> isReadOnly()) return;
-
+
// recupere la vue sur ce projet
if (ProjectView *project_view = findProject(diagram_project)) {
project_view -> moveDiagramDown(diagram);
@@ -2313,7 +2325,7 @@ void QETDiagramEditor::generateTerminalBlock()
{
bool success;
QProcess *process = new QProcess(qApp);
-
+
// If launched under control:
//connect(process, SIGNAL(errorOcurred(int error)), this, SLOT(slot_generateTerminalBlock_error()));
//process->start("qet_tb_generator");
@@ -2351,7 +2363,7 @@ void QETDiagramEditor::generateTerminalBlock()
else {
success = process->startDetached(QDir::homePath() + "/.qet/qet_tb_generator.app", {("")});
}
-
+
#else
if (openedProjects().count()){
success = process->startDetached("qet_tb_generator", {(QETDiagramEditor::currentProjectView()->project()->filePath())});
@@ -2365,7 +2377,7 @@ void QETDiagramEditor::generateTerminalBlock()
else {
success = process->startDetached(QDir::homePath() + "/.qet/qet_tb_generator", {("")});
}
-
+
#endif
#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
QString message=QObject::tr(
diff --git a/sources/titleblock/qettemplateeditor.cpp b/sources/titleblock/qettemplateeditor.cpp
index f6cb218cd..2a3d48146 100644
--- a/sources/titleblock/qettemplateeditor.cpp
+++ b/sources/titleblock/qettemplateeditor.cpp
@@ -1,17 +1,17 @@
/*
Copyright 2006-2020 The QElectroTech Team
This file is part of QElectroTech.
-
+
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
-
+
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see .
*/
@@ -40,7 +40,7 @@ QETTitleBlockTemplateEditor::QETTitleBlockTemplateEditor(QWidget *parent) :
{
setWindowIcon(QET::Icons::QETLogo);
setAttribute(Qt::WA_DeleteOnClose);
-
+
initWidgets();
initActions();
initMenus();
@@ -74,7 +74,7 @@ bool QETTitleBlockTemplateEditor::isEditing(const QString &filepath)
} else {
current_filepath = QETApp::realPath(location_.toString());
}
-
+
return(
QET::compareCanonicalFilePaths(
current_filepath,
@@ -166,7 +166,7 @@ void QETTitleBlockTemplateEditor::duplicateCurrentLocation()
{
// this method does not work for templates edited from the filesystem
if (opened_from_file_) return;
-
+
QString proposed_name;
if (location_.name().isEmpty()) {
proposed_name = tr("nouveau_modele",
@@ -174,7 +174,7 @@ void QETTitleBlockTemplateEditor::duplicateCurrentLocation()
} else {
proposed_name = QString("%1_copy").arg(location_.name());
}
-
+
bool accepted = false;
QString new_template_name = QInputDialog::getText(
this,
@@ -212,7 +212,7 @@ bool QETTitleBlockTemplateEditor::edit(
/// TODO The TBT does not exist, manage error
return(false);
}
-
+
opened_from_file_ = false;
location_ = location;
setReadOnly(location.isReadOnly());
@@ -231,7 +231,7 @@ bool QETTitleBlockTemplateEditor::edit(
{
// we require a project we will rattach templates to
if (!project) return(false);
-
+
// the template name may be empty to create a new one
const TitleBlockTemplate *tb_template_orig;
if (template_name.isEmpty())
@@ -244,12 +244,12 @@ bool QETTitleBlockTemplateEditor::edit(
{
tb_template_orig = project->embeddedTitleBlockTemplatesCollection()->getTemplate(template_name);
}
-
+
if (!tb_template_orig) {
/// TODO The TBT does not exist, manage error
return(false);
}
-
+
opened_from_file_ = false;
location_.setParentCollection(project -> embeddedTitleBlockTemplatesCollection());
location_.setName(template_name);
@@ -270,13 +270,13 @@ bool QETTitleBlockTemplateEditor::edit(const QString &file_path)
/// TODO the file opening failed, warn the user?
return(false);
}
-
+
bool editing = edit(tbt);
if (!editing) {
/// TODO the file editing failed, warn the user?
return(false);
}
-
+
QFileInfo file_path_info(file_path);
filepath_ = file_path;
opened_from_file_ = true;
@@ -318,20 +318,20 @@ void QETTitleBlockTemplateEditor::editLogos()
if (!logo_manager_) {
initLogoManager();
}
-
+
logo_manager_ -> layout() -> setContentsMargins(0, 0, 0, 0);
QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Close);
-
+
QVBoxLayout *vlayout0 = new QVBoxLayout();
vlayout0 -> addWidget(logo_manager_);
vlayout0 -> addWidget(buttons);
-
+
QDialog d(this);
d.setWindowTitle(logo_manager_ -> windowTitle());
d.setLayout(vlayout0);
connect(buttons, SIGNAL(rejected()), &d, SLOT(reject()));
d.exec();
-
+
// prevent the logo manager from being deleted along with the dialog
logo_manager_ -> setParent(this);
}
@@ -374,10 +374,10 @@ void QETTitleBlockTemplateEditor::initActions()
add_col_ = new QAction(QET::Icons::EditTableInsertColumnRight, tr("Ajouter une &colonne", "menu entry"), this);
merge_cells_ = new QAction(QET::Icons::EditTableCellMerge, tr("&Fusionner les cellules", "menu entry"), this);
split_cell_ = new QAction(QET::Icons::EditTableCellSplit, tr("&Séparer les cellules", "menu entry"), this);
-
+
undo_ -> setIcon(QET::Icons::EditUndo);
redo_ -> setIcon(QET::Icons::EditRedo);
-
+
new_ -> setShortcut(QKeySequence::New);
open_ -> setShortcut(QKeySequence::Open);
open_from_file_ -> setShortcut(tr("Ctrl+Shift+O", "shortcut to open a template from a file"));
@@ -397,7 +397,7 @@ void QETTitleBlockTemplateEditor::initActions()
zoom_out_ -> setShortcut(QKeySequence::ZoomOut);
zoom_fit_ -> setShortcut(QKeySequence(tr("Ctrl+9", "shortcut to enable fit zoom")));
zoom_reset_ -> setShortcut(QKeySequence(tr("Ctrl+0", "shortcut to reset zoom")));
-
+
connect(new_, SIGNAL(triggered()), this, SLOT(newTemplate()));
connect(open_, SIGNAL(triggered()), this, SLOT(open()));
connect(open_from_file_, SIGNAL(triggered()), this, SLOT(openFromFile()));
@@ -428,7 +428,7 @@ void QETTitleBlockTemplateEditor::initMenus()
file_menu_ = new QMenu(tr("&Fichier", "menu title"), this);
edit_menu_ = new QMenu(tr("&Édition", "menu title"), this);
display_menu_ = new QMenu(tr("Afficha&ge", "menu title"), this);
-
+
file_menu_ -> addAction(new_);
file_menu_ -> addAction(open_);
file_menu_ -> addAction(open_from_file_);
@@ -437,7 +437,7 @@ void QETTitleBlockTemplateEditor::initMenus()
file_menu_ -> addAction(save_as_file_);
file_menu_ -> addSeparator();
file_menu_ -> addAction(quit_);
-
+
edit_menu_ -> addAction(undo_);
edit_menu_ -> addAction(redo_);
edit_menu_ -> addSeparator();
@@ -456,7 +456,7 @@ void QETTitleBlockTemplateEditor::initMenus()
display_menu_ -> addAction(zoom_out_);
display_menu_ -> addAction(zoom_fit_);
display_menu_ -> addAction(zoom_reset_);
-
+
insertMenu(settings_menu_, file_menu_);
insertMenu(settings_menu_, edit_menu_);
insertMenu(settings_menu_, display_menu_);
@@ -474,7 +474,7 @@ void QETTitleBlockTemplateEditor::initToolbars()
main_toolbar -> addAction(save_);
main_toolbar -> addAction(save_as_);
addToolBar(Qt::TopToolBarArea, main_toolbar);
-
+
QToolBar *edit_toolbar = new QToolBar(tr("Édition", "toolbar title"), this);
edit_toolbar -> setObjectName("tbt_edit_toolbar");
edit_toolbar -> addAction(undo_);
@@ -483,7 +483,7 @@ void QETTitleBlockTemplateEditor::initToolbars()
edit_toolbar -> addAction(merge_cells_);
edit_toolbar -> addAction(split_cell_);
addToolBar(Qt::TopToolBarArea, edit_toolbar);
-
+
QToolBar *display_toolbar = new QToolBar(tr("Affichage", "toolbar title"), this);
display_toolbar -> setObjectName("tbt_display_toolbar");
display_toolbar -> addAction(zoom_in_);
@@ -499,19 +499,22 @@ void QETTitleBlockTemplateEditor::initToolbars()
void QETTitleBlockTemplateEditor::initWidgets()
{
QSettings settings;
-
+
// undo list on the right
undo_stack_ = new QUndoStack(this);
undo_view_ = new QUndoView(undo_stack_);
undo_view_ -> setEmptyLabel(tr("Aucune modification", "label displayed in the undo list when empty"));
-
+
undo_dock_widget_ = new QDockWidget(tr("Annulations", "dock title"));
undo_dock_widget_ -> setObjectName("tbt_undo_dock");
- undo_dock_widget_ -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ undo_dock_widget_ -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
undo_dock_widget_ -> setWidget(undo_view_);
undo_dock_widget_ -> setMinimumWidth(290);
addDockWidget(Qt::RightDockWidgetArea, undo_dock_widget_);
-
+
// WYSIWYG editor as central widget
template_edition_area_scene_ = new QGraphicsScene(this);
template_edition_area_view_ = new TitleBlockTemplateView(template_edition_area_scene_);
@@ -521,18 +524,21 @@ void QETTitleBlockTemplateEditor::initWidgets()
template_edition_area_view_ -> setPreviewWidth(conf_preview_width);
}
setCentralWidget(template_edition_area_view_);
-
+
// cell edition widget at the bottom
template_cell_editor_widget_ = new TitleBlockTemplateCellWidget(tb_template_);
template_cell_editor_dock_widget_ = new QDockWidget(tr("Propriétés de la cellule", "dock title"), this);
template_cell_editor_dock_widget_ -> setObjectName("tbt_celleditor_dock");
- template_cell_editor_dock_widget_ -> setFeatures(QDockWidget::AllDockWidgetFeatures);
+ template_cell_editor_dock_widget_ -> setFeatures(
+ QDockWidget::DockWidgetClosable
+ |QDockWidget::DockWidgetMovable
+ |QDockWidget::DockWidgetFloatable);
template_cell_editor_dock_widget_ -> setWidget(template_cell_editor_widget_);
template_cell_editor_dock_widget_ -> setMinimumWidth(180);
template_cell_editor_dock_widget_ -> setMinimumHeight(250);
addDockWidget(Qt::BottomDockWidgetArea, template_cell_editor_dock_widget_);
template_cell_editor_widget_ -> setVisible(false);
-
+
connect(
template_edition_area_view_,
SIGNAL(selectedCellsChanged(QList)),
@@ -592,7 +598,7 @@ QString QETTitleBlockTemplateEditor::currentlyEditedTitle() const
} else {
titleblock_title = location_.name();
}
-
+
// if a (file)name has been added, also add a "[Changed]" tag if needed
if (!titleblock_title.isEmpty()) {
QString tag;
@@ -609,7 +615,7 @@ QString QETTitleBlockTemplateEditor::currentlyEditedTitle() const
)
).arg(titleblock_title).arg(tag);
}
-
+
return(titleblock_title);
}
@@ -620,11 +626,11 @@ QString QETTitleBlockTemplateEditor::currentlyEditedTitle() const
void QETTitleBlockTemplateEditor::readSettings()
{
QSettings settings;
-
+
// window size and position
QVariant geometry = settings.value("titleblocktemplateeditor/geometry");
if (geometry.isValid()) restoreGeometry(geometry.toByteArray());
-
+
// window state (toolbars, docks...)
QVariant state = settings.value("titleblocktemplateeditor/state");
if (state.isValid()) restoreState(state.toByteArray());
@@ -698,10 +704,10 @@ void QETTitleBlockTemplateEditor::updateEditorTitle()
"titleblock template editor: base window title"
)
);
-
+
// get the currently edited template (file)name
QString titleblock_title = currentlyEditedTitle();
-
+
// generate the final window title
QString title;
if (titleblock_title.isEmpty()) {
@@ -724,7 +730,7 @@ void QETTitleBlockTemplateEditor::updateEditorTitle()
void QETTitleBlockTemplateEditor::updateActions()
{
save_ -> setEnabled(!read_only_);
-
+
bool can_merge = true;
bool can_split = true;
int count = 0;
@@ -748,15 +754,15 @@ void QETTitleBlockTemplateEditor::updateActions()
bool QETTitleBlockTemplateEditor::saveAs(const TitleBlockTemplateLocation &location) {
TitleBlockTemplatesCollection *collection = location.parentCollection();
if (!collection) return(false);
-
+
QDomDocument doc;
QDomElement elmt = doc.createElement("root");
tb_template_ -> saveToXmlElement(elmt);
elmt.setAttribute("name", location.name());
doc.appendChild(elmt);
-
+
collection -> setTemplateXmlDescription(location.name(), elmt);
-
+
opened_from_file_ = false;
location_ = location;
undo_stack_ -> setClean();
@@ -772,7 +778,7 @@ bool QETTitleBlockTemplateEditor::saveAs(const TitleBlockTemplateLocation &locat
bool QETTitleBlockTemplateEditor::saveAs(const QString &filepath) {
bool saving = tb_template_ -> saveToXmlFile(filepath);
if (!saving) return(false);
-
+
opened_from_file_ = true;
filepath_ = filepath;
undo_stack_ -> setClean();
@@ -805,7 +811,7 @@ void QETTitleBlockTemplateEditor::openFromFile()
QString initial_dir = filepath_.isEmpty()
? QETApp::customTitleBlockTemplatesDir()
: QDir(filepath_).absolutePath();
-
+
// ask the user to choose a filepath
QString user_filepath = QFileDialog::getOpenFileName(
this,
@@ -819,8 +825,8 @@ void QETTitleBlockTemplateEditor::openFromFile()
" - %1 is the .titleblock extension"
).arg(QString(TITLEBLOCKS_FILE_EXTENSION))
);
-
-
+
+
if (!user_filepath.isEmpty()) QETApp::instance() -> openTitleBlockTemplate(user_filepath);
}
@@ -871,7 +877,7 @@ bool QETTitleBlockTemplateEditor::saveAsFile()
QString initial_dir = filepath_.isEmpty()
? QETApp::customTitleBlockTemplatesDir()
: QDir(filepath_).absolutePath();
-
+
// ask the user to choose a target file
QString filepath = QFileDialog::getSaveFileName(
this,
@@ -882,16 +888,16 @@ bool QETTitleBlockTemplateEditor::saveAsFile()
"filetypes allowed when saving a title block template file - %1 is the .titleblock extension"
).arg(QString(TITLEBLOCKS_FILE_EXTENSION))
);
-
+
// if no name was entered, return false
if (filepath.isEmpty()) return(false);
-
+
// if the name does not end with ".titleblock", add it
if (!filepath.endsWith(".titleblock", Qt::CaseInsensitive)) filepath += ".titleblock";
-
+
// attempts to save the file
bool saving = saveAs(filepath);
-
+
// retourne un booleen representatif de la reussite de l'enregistrement
return(saving);
}
@@ -932,18 +938,18 @@ TitleBlockTemplateLocation QETTitleBlockTemplateEditor::getTitleBlockTemplateLoc
}
QDialogButtonBox *buttons = new QDialogButtonBox(
QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
-
+
QVBoxLayout *dialog_layout = new QVBoxLayout();
dialog_layout -> addWidget(widget);
dialog_layout -> addWidget(buttons);
-
+
QDialog dialog;
dialog.setWindowTitle(title);
dialog.setLayout(dialog_layout);
-
+
connect(buttons, SIGNAL(accepted()), &dialog, SLOT(accept()));
connect(buttons, SIGNAL(rejected()), &dialog, SLOT(reject()));
-
+
if (dialog.exec() == QDialog::Accepted) {
return(widget -> location());
}
@@ -978,7 +984,7 @@ void QETTitleBlockTemplateEditor::savePreviewWidthToApplicationSettings(
void QETTitleBlockTemplateEditor::editTemplateInformation()
{
if (!tb_template_) return;
-
+
QDialog dialog_author(this);
dialog_author.setModal(true);
#ifdef Q_OS_MACOS
@@ -987,20 +993,20 @@ void QETTitleBlockTemplateEditor::editTemplateInformation()
dialog_author.setMinimumSize(400, 260);
dialog_author.setWindowTitle(tr("Éditer les informations complémentaires", "window title"));
QVBoxLayout *dialog_layout = new QVBoxLayout(&dialog_author);
-
+
// explanation label
QLabel *information_label = new QLabel(tr("Vous pouvez utiliser ce champ libre pour mentionner les auteurs du cartouche, sa licence, ou tout autre renseignement que vous jugerez utile."));
information_label -> setAlignment(Qt::AlignJustify | Qt::AlignVCenter);
information_label -> setWordWrap(true);
dialog_layout -> addWidget(information_label);
-
+
// add a QTextEdit to the dialog
QTextEdit *text_field = new QTextEdit();
text_field -> setAcceptRichText(false);
text_field -> setPlainText(tb_template_ -> information());
text_field -> setReadOnly(read_only_);
dialog_layout -> addWidget(text_field);
-
+
// add two buttons to the dialog
QDialogButtonBox *dialog_buttons = new QDialogButtonBox(
read_only_
@@ -1012,7 +1018,7 @@ void QETTitleBlockTemplateEditor::editTemplateInformation()
&dialog_author, SLOT(accept()));
connect(dialog_buttons, SIGNAL(rejected()),
&dialog_author, SLOT(reject()));
-
+
// run the dialog
if (dialog_author.exec() == QDialog::Accepted && !read_only_) {
QString new_info = text_field -> toPlainText().remove(QChar(13)); // CR-less text