mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
-Cette ligne, et les suivantes ci-dessous, seront ignorées-- M sources/aboutqet.cpp M sources/bordertitleblock.cpp M sources/conductorproperties.h M sources/configdialog.cpp M sources/configpages.cpp M sources/configpages.h M sources/createdxf.h M sources/diagram.cpp M sources/diagram.h M sources/diagramcommands.cpp M sources/diagramcommands.h M sources/diagramprintdialog.cpp M sources/diagramprintdialog.h M sources/diagramschooser.cpp M sources/diagramschooser.h M sources/diagramview.cpp M sources/diagramview.h M sources/dvevent/dveventaddimage.cpp M sources/dvevent/dveventaddshape.cpp M sources/editor/arceditor.cpp M sources/editor/arceditor.h M sources/editor/editorcommands.cpp M sources/editor/editorcommands.h M sources/editor/elementitemeditor.h M sources/editor/elementprimitivedecorator.cpp M sources/editor/elementscene.cpp M sources/editor/elementscene.h M sources/editor/elementview.cpp M sources/editor/ellipseeditor.cpp M sources/editor/ellipseeditor.h M sources/editor/esevent/eseventaddtext.cpp M sources/editor/esevent/eseventaddtextfield.cpp M sources/editor/esevent/eseventinterface.cpp M sources/editor/graphicspart/customelementpart.h M sources/editor/graphicspart/parttext.cpp M sources/editor/graphicspart/parttext.h M sources/editor/graphicspart/parttextfield.cpp M sources/editor/graphicspart/parttextfield.h M sources/editor/lineeditor.cpp M sources/editor/lineeditor.h M sources/editor/polygoneditor.cpp M sources/editor/qetelementeditor.cpp M sources/editor/qetelementeditor.h M sources/editor/rectangleeditor.cpp M sources/editor/rectangleeditor.h M sources/editor/styleeditor.cpp M sources/editor/styleeditor.h M sources/editor/terminaleditor.cpp M sources/editor/terminaleditor.h M sources/editor/texteditor.cpp M sources/editor/texteditor.h M sources/editor/textfieldeditor.cpp M sources/editor/textfieldeditor.h M sources/editor/ui/elementpropertieseditorwidget.cpp M sources/elementdefinition.cpp M sources/elementdeleter.cpp M sources/elementdeleter.h M sources/elementdialog.cpp M sources/elementscategorieslist.h M sources/elementscategorieswidget.cpp M sources/elementscategorieswidget.h M sources/elementscategory.cpp M sources/elementscategorydeleter.cpp M sources/elementscategorydeleter.h M sources/elementscategoryeditor.cpp M sources/elementscategoryeditor.h M sources/elementscollection.cpp M sources/elementscollectioncache.cpp M sources/elementspanel.cpp M sources/elementspanel.h M sources/elementspanelwidget.cpp M sources/elementspanelwidget.h M sources/elementtextsmover.h M sources/exportdialog.cpp M sources/exportdialog.h M sources/exportproperties.cpp M sources/exportpropertieswidget.cpp M sources/exportpropertieswidget.h M sources/genericpanel.cpp M sources/integrationmoveelementshandler.cpp M sources/integrationmoveelementshandler.h M sources/interactivemoveelementshandler.cpp M sources/nameslistwidget.cpp M sources/nameslistwidget.h M sources/newelementwizard.cpp M sources/newelementwizard.h M sources/nomenclature.cpp M sources/nomenclature.h M sources/projectconfigpages.cpp M sources/projectview.cpp M sources/projectview.h M sources/qet.cpp M sources/qetapp.cpp M sources/qetapp.h M sources/qetdiagrameditor.cpp M sources/qetdiagrameditor.h M sources/qetgraphicsitem/conductor.cpp M sources/qetgraphicsitem/conductortextitem.cpp M sources/qetgraphicsitem/customelement.cpp M sources/qetgraphicsitem/diagramimageitem.cpp M sources/qetgraphicsitem/diagramtextitem.cpp M sources/qetgraphicsitem/diagramtextitem.h M sources/qetgraphicsitem/element.cpp M sources/qetgraphicsitem/ghostelement.cpp M sources/qetgraphicsitem/qetshapeitem.cpp M sources/qetgraphicsitem/terminal.cpp M sources/qetgraphicsitem/terminal.h M sources/qeticons.cpp M sources/qeticons.h M sources/qetmainwindow.cpp M sources/qetmessagebox.cpp M sources/qetmessagebox.h M sources/qetprintpreviewdialog.cpp M sources/qetprintpreviewdialog.h M sources/qetproject.cpp M sources/qetsingleapplication.cpp M sources/qettabbar.h M sources/qfilenameedit.cpp M sources/qtextorientationspinboxwidget.cpp M sources/qtextorientationspinboxwidget.h M sources/qtextorientationwidget.cpp M sources/qtextorientationwidget.h M sources/richtext/richtexteditor.cpp M sources/richtext/richtexteditor_p.h M sources/richtext/ui_addlinkdialog.h M sources/titleblock/dimensionwidget.h M sources/titleblock/gridlayoutanimation.h M sources/titleblock/helpercell.h M sources/titleblock/integrationmovetemplateshandler.cpp M sources/titleblock/integrationmovetemplateshandler.h M sources/titleblock/qettemplateeditor.cpp M sources/titleblock/qettemplateeditor.h M sources/titleblock/templatecellsset.h M sources/titleblock/templatecellwidget.cpp M sources/titleblock/templatecellwidget.h M sources/titleblock/templatecommands.cpp M sources/titleblock/templatedeleter.cpp M sources/titleblock/templatedeleter.h M sources/titleblock/templatelocationchooser.cpp M sources/titleblock/templatelocationchooser.h M sources/titleblock/templatelocationsaver.cpp M sources/titleblock/templatelocationsaver.h M sources/titleblock/templatelogomanager.cpp M sources/titleblock/templatelogomanager.h M sources/titleblock/templateview.cpp M sources/titleblock/templatevisualcell.h M sources/titleblockcell.cpp M sources/titleblocktemplate.cpp M sources/treecoloranimation.h M sources/ui/conductorpropertieswidget.cpp M sources/ui/diagrampropertiesdialog.cpp M sources/ui/diagramselection.cpp M sources/ui/dialogautonum.cpp M sources/ui/dialogwaiting.cpp M sources/ui/elementpropertieswidget.cpp M sources/ui/elementselectorwidget.cpp M sources/ui/linksingleelementwidget.cpp M sources/ui/masterpropertieswidget.cpp M sources/ui/potentialtextsdialog.cpp M sources/ui/projectpropertiesdialog.cpp M sources/ui/selectautonumw.cpp M sources/ui/titleblockpropertieswidget.cpp M sources/ui/xrefpropertieswidget.cpp M sources/undocommand/changeelementinformationcommand.cpp git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3783 bfdf4180-ca20-0410-9c96-a3a8aa849046
195 lines
5.9 KiB
C++
195 lines
5.9 KiB
C++
/*
|
|
Copyright 2006-2015 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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#include "qetmainwindow.h"
|
|
#include "qeticons.h"
|
|
#include "qetapp.h"
|
|
|
|
/**
|
|
Constructor
|
|
*/
|
|
QETMainWindow::QETMainWindow(QWidget *widget, Qt::WindowFlags flags) :
|
|
QMainWindow(widget, flags),
|
|
display_toolbars_(0),
|
|
first_activation_(true)
|
|
{
|
|
initCommonActions();
|
|
initCommonMenus();
|
|
|
|
setAcceptDrops(true);
|
|
}
|
|
|
|
/**
|
|
Destructor
|
|
*/
|
|
QETMainWindow::~QETMainWindow() {
|
|
}
|
|
|
|
/**
|
|
Initialize common actions.
|
|
*/
|
|
void QETMainWindow::initCommonActions() {
|
|
QETApp *qet_app = QETApp::instance();
|
|
|
|
configure_action_ = new QAction(QET::Icons::Configure, tr("&Configurer QElectroTech"), this);
|
|
configure_action_ -> setStatusTip(tr("Permet de régler différents paramètres de QElectroTech", "status bar tip"));
|
|
connect(configure_action_, SIGNAL(triggered()), qet_app, SLOT(configureQET()));
|
|
|
|
fullscreen_action_ = new QAction(this);
|
|
updateFullScreenAction();
|
|
connect(fullscreen_action_, SIGNAL(triggered()), this, SLOT(toggleFullScreen()));
|
|
|
|
whatsthis_action_ = QWhatsThis::createAction(this);
|
|
|
|
about_qet_ = new QAction(QET::Icons::QETLogo, tr("À &propos de QElectroTech"), this);
|
|
about_qet_ -> setStatusTip(tr("Affiche des informations sur QElectroTech", "status bar tip"));
|
|
connect(about_qet_, SIGNAL(triggered()), qet_app, SLOT(aboutQET()));
|
|
|
|
about_qt_ = new QAction(QET::Icons::QtLogo, tr("À propos de &Qt"), this);
|
|
about_qt_ -> setStatusTip(tr("Affiche des informations sur la bibliothèque Qt", "status bar tip"));
|
|
connect(about_qt_, SIGNAL(triggered()), qet_app, SLOT(aboutQt()));
|
|
}
|
|
|
|
/**
|
|
Initialize common menus.
|
|
*/
|
|
void QETMainWindow::initCommonMenus() {
|
|
settings_menu_ = new QMenu(tr("&Configuration", "window menu"));
|
|
settings_menu_ -> addAction(fullscreen_action_);
|
|
settings_menu_ -> addAction(configure_action_);
|
|
connect(settings_menu_, SIGNAL(aboutToShow()), this, SLOT(checkToolbarsmenu()));
|
|
|
|
|
|
help_menu_ = new QMenu(tr("&Aide", "window menu"));
|
|
help_menu_ -> addAction(whatsthis_action_);
|
|
help_menu_ -> addSeparator();
|
|
help_menu_ -> addAction(about_qet_);
|
|
help_menu_ -> addAction(about_qt_);
|
|
|
|
insertMenu(0, settings_menu_);
|
|
insertMenu(0, help_menu_);
|
|
}
|
|
|
|
/**
|
|
Add \a menu before \a before. Unless \a customize is false, this method also
|
|
enables some common settings on the inserted menu.
|
|
*/
|
|
void QETMainWindow::insertMenu(QMenu *before, QMenu *menu, bool customize) {
|
|
if (!menu) return;
|
|
|
|
QAction *before_action = actionForMenu(before);
|
|
QAction *menu_action = menuBar() -> insertMenu(before_action, menu);
|
|
menu_actions_.insert(menu, menu_action);
|
|
|
|
if (customize) {
|
|
menu -> setTearOffEnabled(true);
|
|
}
|
|
}
|
|
|
|
/**
|
|
@return the action returned when inserting \a menu
|
|
*/
|
|
QAction *QETMainWindow::actionForMenu(QMenu *menu) {
|
|
return(menu_actions_.value(menu, 0));
|
|
}
|
|
|
|
/**
|
|
Toggle the window from/to full screen.
|
|
*/
|
|
void QETMainWindow::toggleFullScreen() {
|
|
setWindowState(windowState() ^ Qt::WindowFullScreen);
|
|
}
|
|
|
|
/**
|
|
Update the look of the full screen action according to the current state of
|
|
the window.
|
|
*/
|
|
void QETMainWindow::updateFullScreenAction() {
|
|
if (windowState() & Qt::WindowFullScreen) {
|
|
fullscreen_action_ -> setText(tr("Sortir du &mode plein écran"));
|
|
fullscreen_action_ -> setIcon(QET::Icons::FullScreenExit);
|
|
fullscreen_action_ -> setStatusTip(tr("Affiche QElectroTech en mode fenêtré", "status bar tip"));
|
|
} else {
|
|
fullscreen_action_ -> setText(tr("Passer en &mode plein écran"));
|
|
fullscreen_action_ -> setIcon(QET::Icons::FullScreenEnter);
|
|
fullscreen_action_ -> setStatusTip(tr("Affiche QElectroTech en mode plein écran", "status bar tip"));
|
|
}
|
|
fullscreen_action_ -> setShortcut(QKeySequence(tr("Ctrl+Shift+F")));
|
|
}
|
|
|
|
/**
|
|
Check whether a sub menu dedicated to docks and toolbars can be inserted on
|
|
top of the settings menu.
|
|
*/
|
|
void QETMainWindow::checkToolbarsmenu() {
|
|
if (display_toolbars_) return;
|
|
display_toolbars_ = createPopupMenu();
|
|
if (display_toolbars_) {
|
|
display_toolbars_ -> setTearOffEnabled(true);
|
|
display_toolbars_ -> setTitle(tr("Afficher", "menu entry"));
|
|
display_toolbars_ -> setIcon(QET::Icons::ConfigureToolbars);
|
|
settings_menu_ -> insertMenu(fullscreen_action_, display_toolbars_);
|
|
}
|
|
}
|
|
|
|
/**
|
|
Handle the \a e event.
|
|
*/
|
|
bool QETMainWindow::event(QEvent *e) {
|
|
if (e -> type() == QEvent::WindowStateChange) {
|
|
updateFullScreenAction();
|
|
} else if (first_activation_ && e -> type() == QEvent::WindowActivate) {
|
|
firstActivation(e);
|
|
first_activation_ = false;
|
|
}
|
|
return(QMainWindow::event(e));
|
|
}
|
|
|
|
/**
|
|
Base implementation of firstActivation (does nothing).
|
|
*/
|
|
void QETMainWindow::firstActivation(QEvent *) {
|
|
}
|
|
|
|
|
|
/**
|
|
Accept or refuse drag'n drop events depending on the dropped mime type;
|
|
especially, accepts only URLs to local files that we could open.
|
|
@param e le QDragEnterEvent correspondant au drag'n drop tente
|
|
*/
|
|
void QETMainWindow::dragEnterEvent(QDragEnterEvent *e) {
|
|
if (e -> mimeData() -> hasUrls()) {
|
|
if (QETApp::handledFiles(e -> mimeData() -> urls()).count()) {
|
|
e -> acceptProposedAction();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
Handle drops accepted on main windows; more specifically, open dropped files
|
|
as long as they are handled by QElectrotech.
|
|
@param e the QDropEvent describing the current drag'n drop
|
|
*/
|
|
void QETMainWindow::dropEvent(QDropEvent *e) {
|
|
if (e -> mimeData() -> hasUrls()) {
|
|
QStringList filepaths = QETApp::handledFiles(e -> mimeData() -> urls());
|
|
if (filepaths.count()) {
|
|
QETApp::instance() -> openFiles(QETArguments(filepaths));
|
|
}
|
|
}
|
|
}
|