mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 23:20:52 +01:00
Panel d'elements : ajout d'actions dans le menu contextuel pour changer l'ordre des schemas.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@864 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
BIN
ico/16x16/go-down.png
Normal file
BIN
ico/16x16/go-down.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 623 B |
BIN
ico/16x16/go-up.png
Normal file
BIN
ico/16x16/go-up.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 672 B |
BIN
ico/22x22/go-down.png
Normal file
BIN
ico/22x22/go-down.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 892 B |
BIN
ico/22x22/go-up.png
Normal file
BIN
ico/22x22/go-up.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 929 B |
@@ -44,7 +44,9 @@
|
||||
<file>ico/16x16/endline-triangle.png</file>
|
||||
<file>ico/16x16/folder-new.png</file>
|
||||
<file>ico/16x16/folder.png</file>
|
||||
<file>ico/16x16/go-down.png</file>
|
||||
<file>ico/16x16/go-home.png</file>
|
||||
<file>ico/16x16/go-up.png</file>
|
||||
<file>ico/16x16/ground.png</file>
|
||||
<file>ico/16x16/item_cancel.png</file>
|
||||
<file>ico/16x16/item_copy.png</file>
|
||||
@@ -118,7 +120,9 @@
|
||||
<file>ico/22x22/folder-delete.png</file>
|
||||
<file>ico/22x22/folder-edit.png</file>
|
||||
<file>ico/22x22/folder-new.png</file>
|
||||
<file>ico/22x22/go-down.png</file>
|
||||
<file>ico/22x22/go-home.png</file>
|
||||
<file>ico/22x22/go-up.png</file>
|
||||
<file>ico/22x22/hotspot.png</file>
|
||||
<file>ico/22x22/landscape.png</file>
|
||||
<file>ico/22x22/line.png</file>
|
||||
|
||||
@@ -913,8 +913,12 @@ void ElementsPanel::diagramOrderChanged(QETProject *project, int from, int to) {
|
||||
if (!moved_qtwi_diagram) return;
|
||||
|
||||
// enleve le QTWI et le reinsere au bon endroit
|
||||
bool was_selected = moved_qtwi_diagram -> isSelected();
|
||||
qtwi_project -> removeChild(moved_qtwi_diagram);
|
||||
qtwi_project -> insertChild(to, moved_qtwi_diagram);
|
||||
if (was_selected) {
|
||||
setCurrentItem(moved_qtwi_diagram);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -62,6 +62,8 @@ ElementsPanelWidget::ElementsPanelWidget(QWidget *parent) : QWidget(parent) {
|
||||
prj_prop_diagram = new QAction(QET::Icons::DialogInformation, tr("Propri\351t\351s du sch\351ma"), this);
|
||||
prj_add_diagram = new QAction(QET::Icons::DiagramAdd, tr("Ajouter un sch\351ma"), this);
|
||||
prj_del_diagram = new QAction(QET::Icons::DiagramDelete, tr("Supprimer ce sch\351ma"), this);
|
||||
prj_move_diagram_up = new QAction(QET::Icons::GoUp, tr("Remonter ce sch\351ma"), this);
|
||||
prj_move_diagram_down = new QAction(QET::Icons::GoDown, tr("Abaisser ce sch\351ma"), this);
|
||||
move_elements_ = new QAction(QET::Icons::MoveFile, tr("D\351placer dans cette cat\351gorie"), this);
|
||||
copy_elements_ = new QAction(QET::Icons::CopyFile, tr("Copier dans cette cat\351gorie"), this);
|
||||
cancel_elements_ = new QAction(QET::Icons::Cancel, tr("Annuler"), this);
|
||||
@@ -98,6 +100,8 @@ ElementsPanelWidget::ElementsPanelWidget(QWidget *parent) : QWidget(parent) {
|
||||
connect(prj_prop_diagram, SIGNAL(triggered()), this, SLOT(editDiagramProperties()));
|
||||
connect(prj_add_diagram, SIGNAL(triggered()), this, SLOT(newDiagram()));
|
||||
connect(prj_del_diagram, SIGNAL(triggered()), this, SLOT(deleteDiagram()));
|
||||
connect(prj_move_diagram_up, SIGNAL(triggered()), this, SLOT(moveDiagramUp()));
|
||||
connect(prj_move_diagram_down, SIGNAL(triggered()), this, SLOT(moveDiagramDown()));
|
||||
connect(move_elements_, SIGNAL(triggered()), this, SLOT(moveElements()));
|
||||
connect(copy_elements_, SIGNAL(triggered()), this, SLOT(copyElements()));
|
||||
|
||||
@@ -212,6 +216,24 @@ void ElementsPanelWidget::deleteDiagram() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Emet le signal requestForDiagramMoveUp avec le schema selectionne
|
||||
*/
|
||||
void ElementsPanelWidget::moveDiagramUp() {
|
||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||
emit(requestForDiagramMoveUp(selected_diagram));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Emet le signal requestForDiagramMoveDown avec le schema selectionne
|
||||
*/
|
||||
void ElementsPanelWidget::moveDiagramDown() {
|
||||
if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
|
||||
emit(requestForDiagramMoveDown(selected_diagram));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Appelle l'assistant de creation de nouvel element
|
||||
*/
|
||||
@@ -281,10 +303,17 @@ void ElementsPanelWidget::updateButtons() {
|
||||
bool is_writable = !(elements_panel -> selectedProject() -> isReadOnly());
|
||||
prj_add_diagram -> setEnabled(is_writable);
|
||||
} else if (elements_panel -> selectedItemIsADiagram()) {
|
||||
bool is_writable = !(elements_panel -> selectedDiagram() -> project() -> isReadOnly());
|
||||
prj_del_diagram -> setEnabled(is_writable);
|
||||
}
|
||||
Diagram *selected_diagram = elements_panel -> selectedDiagram();
|
||||
QETProject *selected_diagram_project = selected_diagram -> project();
|
||||
|
||||
bool is_writable = !(selected_diagram_project -> isReadOnly());
|
||||
int project_diagrams_count = selected_diagram_project -> diagrams().count();
|
||||
int diagram_position = selected_diagram_project -> diagrams().indexOf(selected_diagram);
|
||||
|
||||
prj_del_diagram -> setEnabled(is_writable);
|
||||
prj_move_diagram_up -> setEnabled(is_writable && diagram_position > 0);
|
||||
prj_move_diagram_down -> setEnabled(is_writable && diagram_position < project_diagrams_count - 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -321,6 +350,7 @@ void ElementsPanelWidget::handleContextMenu(const QPoint &pos) {
|
||||
QTreeWidgetItem *item = elements_panel -> itemAt(pos);
|
||||
if (!item) return;
|
||||
|
||||
updateButtons();
|
||||
context_menu -> clear();
|
||||
|
||||
if (elements_panel -> itemHasLocation(item)) {
|
||||
@@ -351,6 +381,8 @@ void ElementsPanelWidget::handleContextMenu(const QPoint &pos) {
|
||||
} else if (elements_panel -> itemIsADiagram(item)) {
|
||||
context_menu -> addAction(prj_prop_diagram);
|
||||
context_menu -> addAction(prj_del_diagram);
|
||||
context_menu -> addAction(prj_move_diagram_up);
|
||||
context_menu -> addAction(prj_move_diagram_down);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class ElementsPanelWidget : public QWidget {
|
||||
QAction *new_category, *edit_category, *delete_category;
|
||||
QAction *delete_collection;
|
||||
QAction *new_element, *import_element, *edit_element, *delete_element;
|
||||
QAction *prj_close, *prj_edit_prop, *prj_prop_diagram, *prj_add_diagram, *prj_del_diagram;
|
||||
QAction *prj_close, *prj_edit_prop, *prj_prop_diagram, *prj_add_diagram, *prj_del_diagram, *prj_move_diagram_up, *prj_move_diagram_down;
|
||||
QAction *copy_elements_, *move_elements_, *cancel_elements_;
|
||||
QMenu *context_menu;
|
||||
QAction *erase_textfield;
|
||||
@@ -59,6 +59,8 @@ class ElementsPanelWidget : public QWidget {
|
||||
void requestForProjectPropertiesEdition(QETProject *);
|
||||
void requestForDiagramPropertiesEdition(Diagram *);
|
||||
void requestForDiagramDeletion(Diagram *);
|
||||
void requestForDiagramMoveUp(Diagram *);
|
||||
void requestForDiagramMoveDown(Diagram *);
|
||||
|
||||
public slots:
|
||||
void clearFilterTextField();
|
||||
@@ -68,6 +70,8 @@ class ElementsPanelWidget : public QWidget {
|
||||
void editDiagramProperties();
|
||||
void newDiagram();
|
||||
void deleteDiagram();
|
||||
void moveDiagramUp();
|
||||
void moveDiagramDown();
|
||||
void newCategory();
|
||||
void newElement();
|
||||
void importElement();
|
||||
|
||||
@@ -490,6 +490,48 @@ void ProjectView::editDiagramProperties(Diagram *diagram) {
|
||||
editDiagramProperties(findDiagram(diagram));
|
||||
}
|
||||
|
||||
/**
|
||||
Deplace le schema diagram_view vers le haut / la gauche
|
||||
*/
|
||||
void ProjectView::moveDiagramUp(DiagramView *diagram_view) {
|
||||
if (!diagram_view) return;
|
||||
|
||||
int diagram_view_position = diagram_ids_.key(diagram_view);
|
||||
if (!diagram_view_position) {
|
||||
// le schema est le premier du projet
|
||||
return;
|
||||
}
|
||||
tabs_ -> tabBar() -> moveTab(diagram_view_position, diagram_view_position - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
Deplace le schema diagram vers le haut / la gauche
|
||||
*/
|
||||
void ProjectView::moveDiagramUp(Diagram *diagram) {
|
||||
moveDiagramUp(findDiagram(diagram));
|
||||
}
|
||||
|
||||
/**
|
||||
Deplace le schema diagram_view vers le bas / la droite
|
||||
*/
|
||||
void ProjectView::moveDiagramDown(DiagramView *diagram_view) {
|
||||
if (!diagram_view) return;
|
||||
|
||||
int diagram_view_position = diagram_ids_.key(diagram_view);
|
||||
if (diagram_view_position + 1 == diagram_ids_.count()) {
|
||||
// le schema est le dernier du projet
|
||||
return;
|
||||
}
|
||||
tabs_ -> tabBar() -> moveTab(diagram_view_position, diagram_view_position + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
Deplace le schema diagram vers le bas / la droite
|
||||
*/
|
||||
void ProjectView::moveDiagramDown(Diagram *diagram) {
|
||||
moveDiagramDown(findDiagram(diagram));
|
||||
}
|
||||
|
||||
/**
|
||||
Ce slot demarre un dialogue permettant a l'utilisateur de parametrer et de
|
||||
lancer l'impression de toute ou partie du projet.
|
||||
|
||||
@@ -54,6 +54,10 @@ class ProjectView : public QWidget {
|
||||
void editCurrentDiagramProperties();
|
||||
void editDiagramProperties(DiagramView *);
|
||||
void editDiagramProperties(Diagram *);
|
||||
void moveDiagramUp(DiagramView *);
|
||||
void moveDiagramUp(Diagram *);
|
||||
void moveDiagramDown(DiagramView *);
|
||||
void moveDiagramDown(Diagram *);
|
||||
void printProject();
|
||||
void exportProject();
|
||||
bool save();
|
||||
|
||||
@@ -72,6 +72,8 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) :
|
||||
connect(pa, SIGNAL(requestForDiagramPropertiesEdition(Diagram *)), this, SLOT(editDiagramProperties(Diagram *)));
|
||||
connect(pa, SIGNAL(requestForNewDiagram(QETProject *)), this, SLOT(addDiagramToProject(QETProject *)));
|
||||
connect(pa, SIGNAL(requestForDiagramDeletion(Diagram *)), this, SLOT(removeDiagram(Diagram *)));
|
||||
connect(pa, SIGNAL(requestForDiagramMoveUp(Diagram *)), this, SLOT(moveDiagramUp(Diagram *)));
|
||||
connect(pa, SIGNAL(requestForDiagramMoveDown(Diagram *)), this, SLOT(moveDiagramDown(Diagram *)));
|
||||
|
||||
qdw_undo = new QDockWidget(tr("Annulations", "dock title"));
|
||||
qdw_undo -> setObjectName("diagram_undo");
|
||||
@@ -1606,6 +1608,44 @@ void QETDiagramEditor::removeDiagram(Diagram *diagram) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Change l'ordre des schemas d'un projet, en decalant le schema vers le haut /
|
||||
la gauche
|
||||
@param diagram Schema a decaler vers le haut / la gauche
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Change l'ordre des schemas d'un projet, en decalant le schema vers le bas /
|
||||
la droite
|
||||
@param diagram Schema a decaler vers le bas / la droite
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Nettoie le projet courant
|
||||
*/
|
||||
|
||||
@@ -141,6 +141,8 @@ class QETDiagramEditor : public QMainWindow {
|
||||
void addDiagramToProject(QETProject *);
|
||||
void removeDiagram(Diagram *);
|
||||
void removeDiagramFromProject();
|
||||
void moveDiagramUp(Diagram *);
|
||||
void moveDiagramDown(Diagram *);
|
||||
void cleanCurrentProject();
|
||||
void diagramWasAdded(DiagramView *);
|
||||
void diagramIsAboutToBeRemoved(DiagramView *);
|
||||
|
||||
@@ -80,6 +80,8 @@ namespace QET {
|
||||
QIcon Forbidden;
|
||||
QIcon FullScreenEnter;
|
||||
QIcon FullScreenExit;
|
||||
QIcon GoDown;
|
||||
QIcon GoUp;
|
||||
QIcon Ground;
|
||||
QIcon Hide;
|
||||
QIcon Home;
|
||||
@@ -240,6 +242,10 @@ void QET::Icons::initIcons() {
|
||||
FullScreenEnter .addFile(":/ico/22x22/view-fullscreen.png");
|
||||
FullScreenExit .addFile(":/ico/16x16/view-restore.png");
|
||||
FullScreenExit .addFile(":/ico/22x22/view-restore.png");
|
||||
GoDown .addFile(":/ico/16x16/go-down.png");
|
||||
GoDown .addFile(":/ico/22x22/go-down.png");
|
||||
GoUp .addFile(":/ico/16x16/go-up.png");
|
||||
GoUp .addFile(":/ico/22x22/go-up.png");
|
||||
Ground .addFile(":/ico/16x16/ground.png");
|
||||
Hide .addFile(":/ico/16x16/masquer.png");
|
||||
Home .addFile(":/ico/16x16/go-home.png");
|
||||
|
||||
@@ -88,6 +88,8 @@ namespace QET {
|
||||
extern QIcon Forbidden;
|
||||
extern QIcon FullScreenEnter;
|
||||
extern QIcon FullScreenExit;
|
||||
extern QIcon GoDown;
|
||||
extern QIcon GoUp;
|
||||
extern QIcon Ground;
|
||||
extern QIcon Hide;
|
||||
extern QIcon Home;
|
||||
|
||||
@@ -45,6 +45,7 @@ class QETTabBar : public QTabBar {
|
||||
bool isMovable() const;
|
||||
bool isVertical() const;
|
||||
bool isHorizontal() const;
|
||||
void moveTab(int, int);
|
||||
|
||||
protected:
|
||||
virtual void tabInserted(int);
|
||||
@@ -65,7 +66,6 @@ class QETTabBar : public QTabBar {
|
||||
|
||||
private:
|
||||
bool mustMoveTab(int, int, const QPoint &) const;
|
||||
void moveTab(int, int);
|
||||
int tabForPressedPosition(const QPoint &);
|
||||
int tabForMovedPosition(const QPoint &);
|
||||
bool posMatchesTabRect(const QRect &, const QPoint &) const;
|
||||
|
||||
@@ -66,6 +66,10 @@ bool QETTabWidget::isMovable() const {
|
||||
#endif
|
||||
}
|
||||
|
||||
QTabBar *QETTabWidget::tabBar() const {
|
||||
return(QTabWidget::tabBar());
|
||||
}
|
||||
|
||||
/**
|
||||
Gere les evenements rollette sur cette barre d'onglets
|
||||
@param event Evenement rollette
|
||||
|
||||
@@ -40,6 +40,7 @@ class QETTabWidget : public QTabWidget {
|
||||
public:
|
||||
void setMovable(bool);
|
||||
bool isMovable() const;
|
||||
QTabBar *tabBar() const;
|
||||
|
||||
protected:
|
||||
void wheelEvent(QWheelEvent *);
|
||||
|
||||
Reference in New Issue
Block a user