From 84318eb6ae9d64ed6e5d48ef5f585665c814a90b Mon Sep 17 00:00:00 2001 From: xavier Date: Sun, 3 Jan 2010 19:51:02 +0000 Subject: [PATCH] Rapatriement dans la branche 0.3 des revisions 815 a 833. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@834 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- man/files/es/man1/qelectrotech.1 | 59 +++++++++++++++++++++++++ sources/conductor.h | 2 +- sources/diagramprintdialog.cpp | 16 ++++--- sources/editor/qetelementeditor.cpp | 67 ++++++++++++++++------------- sources/projectview.cpp | 2 +- 5 files changed, 110 insertions(+), 36 deletions(-) create mode 100644 man/files/es/man1/qelectrotech.1 diff --git a/man/files/es/man1/qelectrotech.1 b/man/files/es/man1/qelectrotech.1 new file mode 100644 index 000000000..68795db64 --- /dev/null +++ b/man/files/es/man1/qelectrotech.1 @@ -0,0 +1,59 @@ +.TH QELECTROTECH 1 "Agosto de 2008" QElectroTech "Manual del usuario" +.SH NOMBRE +qelectrotech \- Editor de esquemas eléctricos +.SH SYNOPSIS +.B qelectrotech +.B [\-\-common\-elements\-dir\fR=\fIREP\fB] +.B [\-\-config\-dir\-elements\-dir\fR=\fIREP\fB] +.B [\-\-lang\-dir\fR=\fIREP\fB] +.B [\-\-help] +.B [\-v\fR|\fB\-\-version] +.B [\-\-license] +.B [\fIFICHERO\fB]... + +. SH DESCRIPCIÓN +QElectroTech es un editor de esquemas eléctricos. Los esquemas (*.qet) y los elementos eléctricos (*.elmt) se registran al formato XML. +Los elementos disponibles sobre el esquema pueden proceder de la colección común o la colección usuario. +Típicamente, la colección común es accesible a todos los usuarios pero ella no es éditable por ellos. +La colección usuario es consustancial a cada usuario y puede modificarse como le parezca. +.SH OPCIONES +.TP +\fB\-\-common\-elements\-dir\fR=\fIREP\fR +Utiliza el expediente REP como raíz de la colección de elementos común. Nota: esta opción no se activa si la directiva QET_ALLOW_OVERRIDE_CED_OPTION se ha especificado durante la compilación. +.TP +\fB\-\-config\-dir\fR=\fIREP\fR +Utiliza el expediente REP como expediente de configuración del usuario corriente. Este expediente acoge un fichero qelectrotech.conf que contiene la configuración de la aplicación y un bajoexpediente que contiene la colección de elementos del usuario. Nota : esta opción no se activa si la directiva QET_ALLOW_OVERRIDE_CD_OPTION se ha especificado durante la compilación. +.TP +\fB\-\-lang\-dir\fR=\fIREP\fR +Busca los ficheros de traducción de la aplicación en el expediente REP. +.TP +\fB\-\-help\fR +Exhibe una breve descripción de las opciones disponibles. +.TP +\fB\-v\fR, \fB\-\-version\fR +Exhibe la versión de la aplicación (ejemple: 0.1) +.TP +\fB\-\-license\fR +Exhibe la licencia de la aplicación (GNU/GPL) +A tener en cuenta que si una de las tres últimas opciones especificarse en la línea de comando, el programa se detenga después de exhibir la información correspondiente. +Si una instancia de la aplicación ya fue lanzada por el usuario, sera la que tendrá en cuenta la línea de comando, y, en particular, los ficheros que deben abrirse. +Las opciones que redefinirán los expedientes (colección común, directorio de configuración y ficheros de lengua) no obstante no se tendrán en cuenta. +Si el nombre de un fichero que debe abrirse termina en .elmt, QElectroTech intentará abrirse en un editor de elemento. +De no ser así, los considerará como esquemas. +.SH AUTORES +Benoit Ansieau +.br +Xavier Guerrin + + +. SH INDICAR BUGS +Si encuentra un comportamiento que le parece anormal en la aplicación, consulte nuestro FAQ y nuestro BugTracker para ver si el problema ya se conoce. En caso negativo, presentar un informe de bug mediante el BugTracker. +.SH COPYRIGHT +Copyright © Los desarrolladores de QElectroTech +.br +Licencia: GNU/GPL v2+: +.br +Este programa es un programa informático libre. Puede modificarlo y redistribuirlo. Se proporciona tal cual y SIN NINGUNA GARANTÍA. + +. SH VER TAMBIÉN +Sitio oficial : diff --git a/sources/conductor.h b/sources/conductor.h index 46a292a6f..d404b0bb2 100644 --- a/sources/conductor.h +++ b/sources/conductor.h @@ -123,7 +123,7 @@ class Conductor : public QObject, public QGraphicsPathItem { static QBrush square_brush; static bool pen_and_brush_initialized; /// facteur de taille du carre de saisie du segment - int segments_squares_scale_; + qreal segments_squares_scale_; private: void segmentsToPath(); diff --git a/sources/diagramprintdialog.cpp b/sources/diagramprintdialog.cpp index 59e876051..189e1051b 100644 --- a/sources/diagramprintdialog.cpp +++ b/sources/diagramprintdialog.cpp @@ -320,6 +320,7 @@ void DiagramPrintDialog::browseFilePrintTypeDialog() { if (!filepath.isEmpty()) { if (!filepath.endsWith(extension)) filepath += extension; + filepath = QDir::toNativeSeparators(QDir::cleanPath(filepath)); filepath_field_ -> setText(filepath); } } @@ -355,7 +356,7 @@ void DiagramPrintDialog::print(const QList &diagrams, bool fit_page, /** Imprime un schema @param diagram Schema a imprimer - @param fit_page True pour adapter les schemas aux pages, false sinon + @param fit_page True pour adapter les schemas aux pages, false sinon @param options Options de rendu a appliquer pour l'impression @param qp QPainter a utiliser (deja initialise sur printer) @param printer Imprimante a utiliser @@ -372,6 +373,10 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, const Exp saveReloadDiagramParameters(diagram, options, true); + // deselectionne tous les elements + QList selected_elmts = diagram -> selectedItems(); + foreach (QGraphicsItem *qgi, selected_elmts) qgi -> setSelected(false); + if (fit_page) { // impression adaptee sur une seule page diagram -> render(qp, QRectF(), diagramRect(diagram), Qt::KeepAspectRatio); @@ -415,10 +420,7 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, const Exp QVector pages_to_print; for (int i = 0 ; i < v_pages_count ; ++ i) { for (int j = 0 ; j < h_pages_count ; ++ j) { - //int page_number = (i * h_pages_count) + j + 1; - //if (page_number >= first_page && page_number <= last_page) { - pages_to_print << pages_grid.at(i).at(j); - //} + pages_to_print << pages_grid.at(i).at(j); } } //qDebug() << " " << pages_to_print.count() << " pages a imprimer :"; @@ -438,6 +440,10 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, const Exp } } } + + // restaure les elements selectionnes + foreach (QGraphicsItem *qgi, selected_elmts) qgi -> setSelected(true); + saveReloadDiagramParameters(diagram, options, false); } diff --git a/sources/editor/qetelementeditor.cpp b/sources/editor/qetelementeditor.cpp index d7904db9c..b57f0d7d6 100644 --- a/sources/editor/qetelementeditor.cpp +++ b/sources/editor/qetelementeditor.cpp @@ -403,20 +403,40 @@ void QETElementEditor::setupMenus() { Met a jour les menus */ void QETElementEditor::slot_updateMenus() { - bool selected_items = !ce_scene -> selectedItems().isEmpty(); - bool clipboard_elmt = ElementScene::clipboardMayContainElement(); + bool selected_items = !read_only && !ce_scene -> selectedItems().isEmpty(); + bool clipboard_elmt = !read_only && ElementScene::clipboardMayContainElement(); - deselectall -> setEnabled(selected_items); - cut -> setEnabled(selected_items); - copy -> setEnabled(selected_items); - paste -> setEnabled(clipboard_elmt); - paste_in_area -> setEnabled(clipboard_elmt); - edit_delete -> setEnabled(selected_items); - edit_forward -> setEnabled(selected_items); - edit_raise -> setEnabled(selected_items); - edit_lower -> setEnabled(selected_items); - edit_backward -> setEnabled(selected_items); - save -> setEnabled(!ce_scene -> undoStack().isClean()); + // actions dependant seulement de l'etat "lecture seule" de l'editeur + foreach (QAction *action, parts -> actions()) { + action -> setEnabled(!read_only); + } + selectall -> setEnabled(!read_only); + inv_select -> setEnabled(!read_only); + paste_from_file -> setEnabled(!read_only); + paste_from_elmt -> setEnabled(!read_only); + edit_size_hs -> setEnabled(!read_only); + edit_names -> setEnabled(!read_only); + edit_ori -> setEnabled(!read_only); + parts_list -> setEnabled(!read_only); + + // actions dependant de la presence de parties selectionnees + deselectall -> setEnabled(selected_items); + cut -> setEnabled(selected_items); + copy -> setEnabled(selected_items); + edit_delete -> setEnabled(selected_items); + edit_forward -> setEnabled(selected_items); + edit_raise -> setEnabled(selected_items); + edit_lower -> setEnabled(selected_items); + edit_backward -> setEnabled(selected_items); + + // 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 && !ce_scene -> undoStack().isClean()); + undo -> setEnabled(!read_only && ce_scene -> undoStack().canUndo()); + redo -> setEnabled(!read_only && ce_scene -> undoStack().canRedo()); slot_updateFullScreenAction(); } @@ -704,6 +724,8 @@ void QETElementEditor::fromFile(const QString &filepath) { tr("Vous n'avez pas les privil\350ges n\351cessaires pour modifier cet \351lement. Il sera donc ouvert en lecture seule.", "message box content") ); setReadOnly(true); + } else { + setReadOnly(false); } // memorise le fichier @@ -775,26 +797,11 @@ bool QETElementEditor::toLocation(const ElementsLocation &location) { */ void QETElementEditor::setReadOnly(bool ro) { read_only = ro; - // active / desactive les actions - foreach (QAction *action, parts -> actions()) action -> setEnabled(!ro); // active / desactive les interactions avec la scene ce_view -> setInteractive(!ro); - // active / desactive l'edition de la taille, du hotspot, des noms et des orientations - cut -> setEnabled(!ro); - copy -> setEnabled(!ro); - paste -> setEnabled(!ro); - selectall -> setEnabled(!ro); - deselectall -> setEnabled(!ro); - inv_select -> setEnabled(!ro); - undo -> setEnabled(!ro); - redo -> setEnabled(!ro); - edit_delete -> setEnabled(!ro); - edit_size_hs -> setEnabled(!ro); - edit_names -> setEnabled(!ro); - edit_ori -> setEnabled(!ro); - parts_list -> setEnabled(!ro); + slot_updateMenus(); } /** @@ -1236,6 +1243,8 @@ void QETElementEditor::fromLocation(const ElementsLocation &location) { tr("Vous n'avez pas les privil\350ges n\351cessaires pour modifier cet \351lement. Il sera donc ouvert en lecture seule.", "message box content") ); setReadOnly(true); + } else { + setReadOnly(false); } // memorise le fichier diff --git a/sources/projectview.cpp b/sources/projectview.cpp index 0dfbaac87..259599e08 100644 --- a/sources/projectview.cpp +++ b/sources/projectview.cpp @@ -513,7 +513,7 @@ void ProjectView::printProject() { QString dir_path = project_ -> currentDir(); // determine un chemin pour le pdf / ps - QString file_name = QDir::toNativeSeparators(dir_path + "/" + doc_name); + QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path + "/" + doc_name)); DiagramPrintDialog print_dialog(project_, this); print_dialog.setDocName(doc_name);