Amelioration du rendu des symboles sur les conducteurs unifilaires.

Amelioration mineure du rendu de l'effet hover sur les bornes.
Ctrl + Rollette permet desormais de zoomer / dezoomer sur le schema.
Correction d'un bug dans l'editeur de proprietes des conducteurs.


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@156 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-10-04 14:30:52 +00:00
parent 8138b5b86c
commit 6fe35cfde8
5 changed files with 28 additions and 4 deletions

View File

@@ -417,11 +417,13 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem */*qsogi*/, Q
// dessin du conducteur
qp -> drawPath(path());
if (isSingleLine()) {
if (isSelected()) qp -> setBrush(Qt::red);
singleLineProperties.draw(
qp,
middleSegment() -> isHorizontal() ? QET::Horizontal : QET::Vertical,
QRectF(middleSegment() -> middle() - QPointF(7.5, 7.5), QSizeF(15.0, 15.0))
QRectF(middleSegment() -> middle() - QPointF(10.0, 7.5), QSizeF(20.0, 15.0))
);
if (isSelected()) qp -> setBrush(Qt::NoBrush);
}
// dessin des points d'accroche du conducteur si celui-ci est selectionne
@@ -1089,7 +1091,7 @@ void SingleLineProperties::draw(QPainter *painter, QET::ConductorSegmentType dir
if (hasGround && i == 1) {
drawGround(painter, direction, symbol_p2, symbol_width * 2.0);
} else if (hasNeutral && ((i == 1 && !hasGround) || (i == 2 && hasGround))) {
drawNeutral(painter, direction, symbol_p2, symbol_width * 1.5);
drawNeutral(painter, direction, symbol_p2, symbol_width * 1.35);
}
}
} else {
@@ -1155,7 +1157,8 @@ void SingleLineProperties::drawNeutral(QPainter *painter, QET::ConductorSegmentT
painter -> save();
// prepare le QPainter
painter -> setBrush(Qt::black);
if (painter -> brush() == Qt::NoBrush) painter -> setBrush(Qt::black);
painter -> setPen(Qt::NoPen);
// desine le cercle representant le neutre
painter -> drawEllipse(

View File

@@ -101,6 +101,7 @@ void ConductorPropertiesWidget::updateSingleLineDisplay() {
ground_checkbox -> setChecked(slp.hasGround);
neutral_checkbox -> setChecked(slp.hasNeutral);
phase_spinbox -> setValue(slp.phasesCount());
phase_slider -> setValue(slp.phasesCount());
phase_checkbox -> setChecked(slp.phasesCount());
buildConnections();
updatePreview();

View File

@@ -407,6 +407,23 @@ bool DiagramView::saveAs() {
return(resultat_enregistrement);
}
/**
Gere les actions liees a la rollette de la souris
@param e QWheelEvent decrivant l'evenement rollette
*/
void DiagramView::wheelEvent(QWheelEvent *e) {
// si la touche Ctrl est enfoncee, on zoome / dezoome
if (e -> modifiers() & Qt::ControlModifier) {
if (e -> delta() > 0) {
zoomIn();
} else {
zoomOut();
}
} else {
QAbstractScrollArea::wheelEvent(e);
}
}
/**
Methode privee gerant l'enregistrement du fichier XML. S'il n'est pas possible
d'ecrire dans le fichier, cette fonction affiche un message d'erreur et renvoie false.

View File

@@ -39,6 +39,9 @@ class DiagramView : public QGraphicsView {
Diagram *diagram() { return(scene); }
bool hasSelectedItems();
protected:
virtual void wheelEvent(QWheelEvent *);
private:
bool saveDiagramToFile(QString &);
void mousePressEvent(QMouseEvent *);

View File

@@ -188,7 +188,7 @@ void Terminal::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) {
p -> setBrush(couleur_hovered);
if (hovered) {
p -> setRenderHint(QPainter::Antialiasing, true);
p -> drawEllipse(((int)f.x())-2, ((int)f.y())-2, 5, 5);
p -> drawEllipse(QRectF(f.x() - 2.5, f.y() - 2.5, 5.0, 5.0));
} else p -> drawPoint(f);
p -> restore();