mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 22:00:35 +01:00
Title block template editor: implemented cut operation.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1561 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -849,6 +849,59 @@ void ChangeTemplateInformationsCommand::redo() {
|
|||||||
tbtemplate_ -> setInformation(new_information_);
|
tbtemplate_ -> setInformation(new_information_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructor
|
||||||
|
*/
|
||||||
|
CutTemplateCellsCommand::CutTemplateCellsCommand(TitleBlockTemplate *tb_template, QUndoCommand *parent) :
|
||||||
|
TitleBlockTemplateCommand(tb_template, parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Destructor
|
||||||
|
*/
|
||||||
|
CutTemplateCellsCommand::~CutTemplateCellsCommand() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Undo a cut operation
|
||||||
|
*/
|
||||||
|
void CutTemplateCellsCommand::undo() {
|
||||||
|
foreach (TitleBlockCell *cell, cut_cells_.keys()) {
|
||||||
|
cell -> cell_type = cut_cells_.value(cell);
|
||||||
|
}
|
||||||
|
if (view_) {
|
||||||
|
view_ -> refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Redo a cut operation
|
||||||
|
*/
|
||||||
|
void CutTemplateCellsCommand::redo() {
|
||||||
|
foreach (TitleBlockCell *cell, cut_cells_.keys()) {
|
||||||
|
cell -> cell_type = TitleBlockCell::EmptyCell;
|
||||||
|
}
|
||||||
|
if (view_) {
|
||||||
|
view_ -> refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CutTemplateCellsCommand::setCutCells(const QList<TitleBlockCell *> &cells) {
|
||||||
|
foreach (TitleBlockCell *cell, cells) {
|
||||||
|
cut_cells_.insert(cell, cell -> cell_type);
|
||||||
|
}
|
||||||
|
updateText();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Update the label describing this command
|
||||||
|
*/
|
||||||
|
void CutTemplateCellsCommand::updateText() {
|
||||||
|
setText(QObject::tr("Couper %n cellule(s)", "undo caption", cut_cells_.count()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructor
|
Constructor
|
||||||
@param tb_template Changed title block template
|
@param tb_template Changed title block template
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
#include <QUndoCommand>
|
#include <QUndoCommand>
|
||||||
#include "dimension.h"
|
#include "dimension.h"
|
||||||
#include "templatecellsset.h"
|
#include "templatecellsset.h"
|
||||||
|
#include "titleblockcell.h"
|
||||||
class TitleBlockTemplateView;
|
class TitleBlockTemplateView;
|
||||||
class TitleBlockCell;
|
|
||||||
class TitleBlockTemplate;
|
class TitleBlockTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -251,6 +251,30 @@ class ChangeTemplateInformationsCommand : public QUndoCommand {
|
|||||||
QString new_information_;
|
QString new_information_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
This class represents the action of cutting a cells set.
|
||||||
|
*/
|
||||||
|
class CutTemplateCellsCommand : public TitleBlockTemplateCommand {
|
||||||
|
// constructors, destructor
|
||||||
|
public:
|
||||||
|
CutTemplateCellsCommand(TitleBlockTemplate *, QUndoCommand * = 0);
|
||||||
|
virtual ~CutTemplateCellsCommand();
|
||||||
|
private:
|
||||||
|
CutTemplateCellsCommand(const CutTemplateCellsCommand &);
|
||||||
|
|
||||||
|
// methods
|
||||||
|
public:
|
||||||
|
virtual void undo();
|
||||||
|
virtual void redo();
|
||||||
|
virtual void setCutCells(const QList<TitleBlockCell *> &);
|
||||||
|
protected:
|
||||||
|
virtual void updateText();
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
public:
|
||||||
|
/// Cut cells
|
||||||
|
QHash<TitleBlockCell *, TitleBlockCell::TemplateCellType> cut_cells_;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This class represents the action of pasting a cells set.
|
This class represents the action of pasting a cells set.
|
||||||
|
|||||||
@@ -133,26 +133,39 @@ void TitleBlockTemplateView::zoomReset() {
|
|||||||
/**
|
/**
|
||||||
Export currently selected cells to the clipboard before setting them as
|
Export currently selected cells to the clipboard before setting them as
|
||||||
empty.
|
empty.
|
||||||
|
@return the list of cells copied to the clipboard
|
||||||
*/
|
*/
|
||||||
void TitleBlockTemplateView::cut() {
|
QList<TitleBlockCell *> TitleBlockTemplateView::cut() {
|
||||||
/// TODO
|
if (!tbtemplate_) return(QList<TitleBlockCell *>());
|
||||||
|
QList<TitleBlockCell *> copied_cells = copy();
|
||||||
|
|
||||||
|
if (!copied_cells.isEmpty()) {
|
||||||
|
CutTemplateCellsCommand *cut_command = new CutTemplateCellsCommand(tbtemplate_);
|
||||||
|
cut_command -> setCutCells(copied_cells);
|
||||||
|
requestGridModification(cut_command);
|
||||||
|
}
|
||||||
|
return(copied_cells);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Export currently selected cells to the clipboard.
|
Export currently selected cells to the clipboard.
|
||||||
|
@return the list of cells copied to the clipboard
|
||||||
*/
|
*/
|
||||||
void TitleBlockTemplateView::copy() {
|
QList<TitleBlockCell *> TitleBlockTemplateView::copy() {
|
||||||
if (!tbtemplate_) return;
|
if (!tbtemplate_) return(QList<TitleBlockCell *>());
|
||||||
|
QList<TitleBlockCell *> copied_cells = selectedCells();
|
||||||
|
|
||||||
QDomDocument xml_export;
|
QDomDocument xml_export;
|
||||||
QDomElement tbtpartial = xml_export.createElement("titleblocktemplate-partial");
|
QDomElement tbtpartial = xml_export.createElement("titleblocktemplate-partial");
|
||||||
xml_export.appendChild(tbtpartial);
|
xml_export.appendChild(tbtpartial);
|
||||||
foreach (TitleBlockCell *cell, selectedCells()) {
|
foreach (TitleBlockCell *cell, copied_cells) {
|
||||||
tbtemplate_ -> exportCellToXml(cell, tbtpartial);
|
tbtemplate_ -> exportCellToXml(cell, tbtpartial);
|
||||||
}
|
}
|
||||||
|
|
||||||
QClipboard *clipboard = QApplication::clipboard();
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
clipboard -> setText(xml_export.toString());
|
clipboard -> setText(xml_export.toString());
|
||||||
|
|
||||||
|
return(copied_cells);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ class TitleBlockTemplateView : public QGraphicsView {
|
|||||||
void zoomOut();
|
void zoomOut();
|
||||||
void zoomFit();
|
void zoomFit();
|
||||||
void zoomReset();
|
void zoomReset();
|
||||||
void cut();
|
QList<TitleBlockCell *> cut();
|
||||||
void copy();
|
QList<TitleBlockCell *> copy();
|
||||||
void paste();
|
void paste();
|
||||||
void addColumnBefore();
|
void addColumnBefore();
|
||||||
void addRowBefore();
|
void addRowBefore();
|
||||||
|
|||||||
Reference in New Issue
Block a user