diff --git a/elementspanelwidget.cpp b/elementspanelwidget.cpp index deeb592e2..f6e31332c 100644 --- a/elementspanelwidget.cpp +++ b/elementspanelwidget.cpp @@ -119,6 +119,7 @@ void ElementsPanelWidget::handleContextMenu(const QPoint &pos) { if (item_file.isNull() || !item_file_infos.exists()) return; // remplit le menu differemment selon qu'il s'agit d'un element ou d'une categorie + context_menu -> clear(); if (item_file_infos.isDir()) { context_menu -> addAction(new_category); context_menu -> addAction(edit_category); diff --git a/qetapp.cpp b/qetapp.cpp index 6e178af70..6dd87c830 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -88,6 +88,11 @@ QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) { connect(this, SIGNAL(lastWindowClosed()), this, SLOT(checkRemainingWindows())); } + // Lorsque le style Plastique est active, on le remplace par une version amelioree + if (qobject_cast(style())) { + setStyle(new QETStyle()); + } + // Creation et affichage d'un editeur de schema QStringList files; foreach(QString argument, arguments()) { @@ -504,7 +509,7 @@ bool QETApp::event(QEvent *e) { foreach(QETDiagramEditor *de, diagrams_editors) { if (de -> isVisible()) visible_diagrams_editors << de; } - // ob choisit soit le premier visible soit le premier tout court + // on choisit soit le premier visible soit le premier tout court QETDiagramEditor *de_open; if (visible_diagrams_editors.count()) { de_open = visible_diagrams_editors.first(); @@ -543,3 +548,48 @@ void QETApp::printVersion() { void QETApp::printLicense() { std::cout << qPrintable(QET::license()) << std::endl; } + +/// Constructeur +QETStyle::QETStyle() : QPlastiqueStyle() { +} + +/// Destructeur +QETStyle::~QETStyle() { +} + +/// Gere les parametres de style +int QETStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returndata) const { + if (hint == QStyle::SH_DialogButtonBox_ButtonsHaveIcons) { + return(int(true)); + } else { + return(QPlastiqueStyle::styleHint(hint, option, widget, returndata)); + } +} + +/// Gere les icones standard +QIcon QETStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget* widget) const { + switch(standardIcon) { + case QStyle::SP_DialogSaveButton: + return(QIcon(":/ico/save.png")); + case QStyle::SP_DialogOpenButton: + return(QIcon(":/ico/open.png")); + case QStyle::SP_DialogCancelButton: + return(QIcon(":/ico/button_cancel.png")); + case QStyle::SP_DialogOkButton: + case QStyle::SP_DialogApplyButton: + return(QIcon(":/ico/button_ok.png")); + case QStyle::SP_DialogCloseButton: + return(QIcon(":/ico/fileclose.png")); + case QStyle::SP_DialogYesButton: + return(QIcon(":/ico/allowed.png")); + case QStyle::SP_DialogNoButton: + return(QIcon(":/ico/forbidden.png")); + case QStyle::SP_DialogResetButton: + return(QIcon(":/ico/undo.png")); + case QStyle::SP_DialogHelpButton: + case QStyle::SP_DialogDiscardButton: + return(QIcon()); + default: + return(QPlastiqueStyle::standardIconImplementation(standardIcon, option, widget)); + } +} diff --git a/qetapp.h b/qetapp.h index af0541cc5..aea599ba0 100644 --- a/qetapp.h +++ b/qetapp.h @@ -91,4 +91,19 @@ class QETApp : public QApplication { void buildSystemTrayMenu(); void fetchWindowStats(const QList &diagrams, const QList &elements); }; + +/** + Cette classe represente le style de QElectroTech + Il s'agit de modifications simples appliquees aux styles communs de Qt +*/ +class QETStyle : public QPlastiqueStyle { + Q_OBJECT + public: + QETStyle(); + virtual ~QETStyle(); + virtual int styleHint(StyleHint hint, const QStyleOption * = 0, const QWidget * = 0, QStyleHintReturn * = 0) const; + + protected slots: + virtual QIcon standardIconImplementation(StandardPixmap, const QStyleOption * = 0, const QWidget * = 0) const; +}; #endif