mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 13:30:34 +01:00
Title block template editor: implemented copy operation.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1556 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -300,6 +300,9 @@ void QETTitleBlockTemplateEditor::initActions() {
|
|||||||
quit_ = new QAction(QET::Icons::ApplicationExit, tr("&Quitter", "menu entry"), this);
|
quit_ = new QAction(QET::Icons::ApplicationExit, tr("&Quitter", "menu entry"), this);
|
||||||
undo_ = undo_stack_ -> createUndoAction(this);
|
undo_ = undo_stack_ -> createUndoAction(this);
|
||||||
redo_ = undo_stack_ -> createRedoAction(this);
|
redo_ = undo_stack_ -> createRedoAction(this);
|
||||||
|
cut_ = new QAction(QET::Icons::EditCut, tr("Co&uper", "menu entry"), this);
|
||||||
|
copy_ = new QAction(QET::Icons::EditCopy, tr("Cop&ier", "menu entry"), this);
|
||||||
|
paste_ = new QAction(QET::Icons::EditPaste, tr("C&oller", "menu entry"), this);
|
||||||
edit_info_ = new QAction(QET::Icons::UserInformations, tr("\311diter les informations compl\351mentaires", "menu entry"), this);
|
edit_info_ = new QAction(QET::Icons::UserInformations, tr("\311diter les informations compl\351mentaires", "menu entry"), this);
|
||||||
zoom_in_ = new QAction(QET::Icons::ZoomIn, tr("Zoom avant", "menu entry"), this);
|
zoom_in_ = new QAction(QET::Icons::ZoomIn, tr("Zoom avant", "menu entry"), this);
|
||||||
zoom_out_ = new QAction(QET::Icons::ZoomOut, tr("Zoom arri\350re", "menu entry"), this);
|
zoom_out_ = new QAction(QET::Icons::ZoomOut, tr("Zoom arri\350re", "menu entry"), this);
|
||||||
@@ -319,6 +322,9 @@ void QETTitleBlockTemplateEditor::initActions() {
|
|||||||
quit_ -> setShortcut(QKeySequence(tr("Ctrl+Q", "shortcut to quit")));
|
quit_ -> setShortcut(QKeySequence(tr("Ctrl+Q", "shortcut to quit")));
|
||||||
undo_ -> setShortcut(QKeySequence::Undo);
|
undo_ -> setShortcut(QKeySequence::Undo);
|
||||||
redo_ -> setShortcut(QKeySequence::Redo);
|
redo_ -> setShortcut(QKeySequence::Redo);
|
||||||
|
cut_ -> setShortcut(QKeySequence::Cut);
|
||||||
|
copy_ -> setShortcut(QKeySequence::Copy);
|
||||||
|
paste_ -> setShortcut(QKeySequence::Paste);
|
||||||
edit_info_ -> setShortcut(QKeySequence(tr("Ctrl+Y", "shortcut to edit extra information")));
|
edit_info_ -> setShortcut(QKeySequence(tr("Ctrl+Y", "shortcut to edit extra information")));
|
||||||
merge_cells_ -> setShortcut(QKeySequence(tr("Ctrl+K", "shortcut to merge cells")));
|
merge_cells_ -> setShortcut(QKeySequence(tr("Ctrl+K", "shortcut to merge cells")));
|
||||||
split_cell_ -> setShortcut(QKeySequence(tr("Ctrl+J", "shortcut to split merged cell")));
|
split_cell_ -> setShortcut(QKeySequence(tr("Ctrl+J", "shortcut to split merged cell")));
|
||||||
@@ -334,6 +340,9 @@ void QETTitleBlockTemplateEditor::initActions() {
|
|||||||
connect(save_as_, SIGNAL(triggered()), this, SLOT(saveAs()));
|
connect(save_as_, SIGNAL(triggered()), this, SLOT(saveAs()));
|
||||||
connect(save_as_file_, SIGNAL(triggered()), this, SLOT(saveAsFile()));
|
connect(save_as_file_, SIGNAL(triggered()), this, SLOT(saveAsFile()));
|
||||||
connect(quit_, SIGNAL(triggered()), this, SLOT(quit()));
|
connect(quit_, SIGNAL(triggered()), this, SLOT(quit()));
|
||||||
|
connect(cut_, SIGNAL(triggered()), template_edition_area_view_, SLOT(cut()));
|
||||||
|
connect(copy_, SIGNAL(triggered()), template_edition_area_view_, SLOT(copy()));
|
||||||
|
connect(paste_, SIGNAL(triggered()), template_edition_area_view_, SLOT(paste()));
|
||||||
connect(zoom_in_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomIn()));
|
connect(zoom_in_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomIn()));
|
||||||
connect(zoom_out_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomOut()));
|
connect(zoom_out_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomOut()));
|
||||||
connect(zoom_fit_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomFit()));
|
connect(zoom_fit_, SIGNAL(triggered()), template_edition_area_view_, SLOT(zoomFit()));
|
||||||
@@ -363,7 +372,10 @@ void QETTitleBlockTemplateEditor::initMenus() {
|
|||||||
edit_menu_ -> addAction(undo_);
|
edit_menu_ -> addAction(undo_);
|
||||||
edit_menu_ -> addAction(redo_);
|
edit_menu_ -> addAction(redo_);
|
||||||
edit_menu_ -> addSeparator();
|
edit_menu_ -> addSeparator();
|
||||||
|
edit_menu_ -> addAction(cut_);
|
||||||
|
edit_menu_ -> addAction(copy_);
|
||||||
|
edit_menu_ -> addAction(paste_);
|
||||||
|
edit_menu_ -> addSeparator();
|
||||||
edit_menu_ -> addAction(merge_cells_);
|
edit_menu_ -> addAction(merge_cells_);
|
||||||
edit_menu_ -> addAction(split_cell_);
|
edit_menu_ -> addAction(split_cell_);
|
||||||
edit_menu_ -> addAction(edit_info_);
|
edit_menu_ -> addAction(edit_info_);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class QETTitleBlockTemplateEditor : public QETMainWindow {
|
|||||||
QMenu *file_menu_, *edit_menu_,/* *paste_from_menu_, */*display_menu_,/* *tools_menu_*/;
|
QMenu *file_menu_, *edit_menu_,/* *paste_from_menu_, */*display_menu_,/* *tools_menu_*/;
|
||||||
/// actions
|
/// actions
|
||||||
QAction *new_, *open_, *open_from_file_, *save_, *save_as_, *save_as_file_, *quit_;
|
QAction *new_, *open_, *open_from_file_, *save_, *save_as_, *save_as_file_, *quit_;
|
||||||
QAction *undo_, *redo_, *edit_info_, *merge_cells_, *split_cell_;
|
QAction *undo_, *redo_, *cut_, *copy_, *paste_, *edit_info_, *merge_cells_, *split_cell_;
|
||||||
QAction *zoom_in_, *zoom_out_, *zoom_fit_, *zoom_reset_;
|
QAction *zoom_in_, *zoom_out_, *zoom_fit_, *zoom_reset_;
|
||||||
/// Location of the currently edited template
|
/// Location of the currently edited template
|
||||||
TitleBlockTemplateLocation location_;
|
TitleBlockTemplateLocation location_;
|
||||||
|
|||||||
@@ -130,6 +130,38 @@ void TitleBlockTemplateView::zoomReset() {
|
|||||||
resetMatrix();
|
resetMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Export currently selected cells to the clipboard before setting them as
|
||||||
|
empty.
|
||||||
|
*/
|
||||||
|
void TitleBlockTemplateView::cut() {
|
||||||
|
/// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Export currently selected cells to the clipboard.
|
||||||
|
*/
|
||||||
|
void TitleBlockTemplateView::copy() {
|
||||||
|
if (!tbtemplate_) return;
|
||||||
|
|
||||||
|
QDomDocument xml_export;
|
||||||
|
QDomElement tbtpartial = xml_export.createElement("titleblocktemplate-partial");
|
||||||
|
xml_export.appendChild(tbtpartial);
|
||||||
|
foreach (TitleBlockCell *cell, selectedCells()) {
|
||||||
|
tbtemplate_ -> exportCellToXml(cell, tbtpartial);
|
||||||
|
}
|
||||||
|
|
||||||
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
|
clipboard -> setText(xml_export.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Import the cells described in the clipboard.
|
||||||
|
*/
|
||||||
|
void TitleBlockTemplateView::paste() {
|
||||||
|
/// TODO
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Add a column right before the last index selected when calling the context
|
Add a column right before the last index selected when calling the context
|
||||||
menu.
|
menu.
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ class TitleBlockTemplateView : public QGraphicsView {
|
|||||||
void zoomOut();
|
void zoomOut();
|
||||||
void zoomFit();
|
void zoomFit();
|
||||||
void zoomReset();
|
void zoomReset();
|
||||||
|
void cut();
|
||||||
|
void copy();
|
||||||
|
void paste();
|
||||||
void addColumnBefore();
|
void addColumnBefore();
|
||||||
void addRowBefore();
|
void addRowBefore();
|
||||||
void addColumnAfter();
|
void addColumnAfter();
|
||||||
|
|||||||
@@ -165,6 +165,14 @@ bool TitleBlockTemplate::saveToXmlElement(QDomElement &xml_element) const {
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param xml_element Parent XML element to be used when exporting \a cell
|
||||||
|
@param cell Cell to export
|
||||||
|
*/
|
||||||
|
void TitleBlockTemplate::exportCellToXml(TitleBlockCell *cell, QDomElement &xml_element) const {
|
||||||
|
saveCell(cell, xml_element, true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@return a deep copy of the current title block template (i.e. title block
|
@return a deep copy of the current title block template (i.e. title block
|
||||||
cells are duplicated too and associated with their parent template).
|
cells are duplicated too and associated with their parent template).
|
||||||
@@ -552,10 +560,13 @@ void TitleBlockTemplate::saveCells(QDomElement &xml_element) const {
|
|||||||
Export a specific cell as XML
|
Export a specific cell as XML
|
||||||
@param cell Cell to be exported as XML
|
@param cell Cell to be exported as XML
|
||||||
@param xml_element XML element under which the \<cell\> element will be attached
|
@param xml_element XML element under which the \<cell\> element will be attached
|
||||||
|
@param save_empty If true, the cell will be saved even if it is an empty one
|
||||||
*/
|
*/
|
||||||
void TitleBlockTemplate::saveCell(TitleBlockCell *cell, QDomElement &xml_element) const {
|
void TitleBlockTemplate::saveCell(TitleBlockCell *cell, QDomElement &xml_element, bool save_empty) const {
|
||||||
if (!cell || cell -> cell_type == TitleBlockCell::EmptyCell) return;
|
if (!cell) return;
|
||||||
if (cell -> spanner_cell) return;
|
if (cell -> spanner_cell) return;
|
||||||
|
if (!save_empty && cell -> cell_type == TitleBlockCell::EmptyCell) return;
|
||||||
|
|
||||||
|
|
||||||
QDomElement cell_elmt = xml_element.ownerDocument().createElement("cell");
|
QDomElement cell_elmt = xml_element.ownerDocument().createElement("cell");
|
||||||
cell_elmt.setAttribute("name", cell -> value_name);
|
cell_elmt.setAttribute("name", cell -> value_name);
|
||||||
@@ -564,7 +575,9 @@ void TitleBlockTemplate::saveCell(TitleBlockCell *cell, QDomElement &xml_element
|
|||||||
if (cell -> row_span) cell_elmt.setAttribute("rowspan", cell -> row_span);
|
if (cell -> row_span) cell_elmt.setAttribute("rowspan", cell -> row_span);
|
||||||
if (cell -> col_span) cell_elmt.setAttribute("colspan", cell -> col_span);
|
if (cell -> col_span) cell_elmt.setAttribute("colspan", cell -> col_span);
|
||||||
|
|
||||||
if (cell -> type() == TitleBlockCell::LogoCell) {
|
if (cell -> type() == TitleBlockCell::EmptyCell) {
|
||||||
|
cell_elmt.setTagName("empty");
|
||||||
|
} else if (cell -> type() == TitleBlockCell::LogoCell) {
|
||||||
cell_elmt.setTagName("logo");
|
cell_elmt.setTagName("logo");
|
||||||
cell_elmt.setAttribute("resource", cell -> logo_reference);
|
cell_elmt.setAttribute("resource", cell -> logo_reference);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class TitleBlockTemplate : public QObject {
|
|||||||
bool loadFromXmlElement(const QDomElement &);
|
bool loadFromXmlElement(const QDomElement &);
|
||||||
bool saveToXmlFile(const QString &);
|
bool saveToXmlFile(const QString &);
|
||||||
bool saveToXmlElement(QDomElement &) const;
|
bool saveToXmlElement(QDomElement &) const;
|
||||||
|
void exportCellToXml(TitleBlockCell *,QDomElement &) const;
|
||||||
TitleBlockTemplate *clone() const;
|
TitleBlockTemplate *clone() const;
|
||||||
QString name() const;
|
QString name() const;
|
||||||
QString information() const;
|
QString information() const;
|
||||||
@@ -108,7 +109,7 @@ class TitleBlockTemplate : public QObject {
|
|||||||
void saveLogo(const QString &, QDomElement &) const;
|
void saveLogo(const QString &, QDomElement &) const;
|
||||||
void saveGrid(QDomElement &) const;
|
void saveGrid(QDomElement &) const;
|
||||||
void saveCells(QDomElement &) const;
|
void saveCells(QDomElement &) const;
|
||||||
void saveCell(TitleBlockCell *, QDomElement &) const;
|
void saveCell(TitleBlockCell *, QDomElement &, bool = false) const;
|
||||||
QList<TitleBlockCell *> createCellsList(int);
|
QList<TitleBlockCell *> createCellsList(int);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user