z-index verschiebung der Felder verbessert
git-svn-id: http://svn.lsim.tuxzone.org/trunk@19 4bec179b-ab65-46ed-a5f8-55b8b5c735d0
This commit is contained in:
@@ -24,11 +24,11 @@
|
||||
|
||||
GraphicsView::GraphicsView(): QGraphicsView() {
|
||||
//setMinimumSize(900,700);
|
||||
//setDragMode(QGraphicsView::RubberBandDrag);
|
||||
//setDragMode(QGraphicsView::ScrollHandDrag);
|
||||
|
||||
|
||||
|
||||
//scale(2.5,2.5);
|
||||
//scale(2,2);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@ HomoBFieldItem::HomoBFieldItem(QRectF sizeRect): FieldItem() {
|
||||
setFlag(ItemIsSelectable);
|
||||
setFlag(ItemIsFocusable);
|
||||
setOuterPenWidth (2);
|
||||
dockWidget = new HomoBFieldWidget(0,0,this);
|
||||
setIsDirectionIntoPlane(true);
|
||||
dockWidget = new HomoBFieldWidget(0,0,this);
|
||||
setFluxDensity(2e-5);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ QRectF HomoBFieldItem::getRectF() const
|
||||
|
||||
void HomoBFieldItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) {
|
||||
//Qt::GlobalColor linecolor = Qt::red;
|
||||
QColor linecolor(92,105,118);
|
||||
QColor linecolor(0,86,30);
|
||||
painter->setPen(linecolor);
|
||||
if (isSelected()) painter->setBrush(Qt::Dense6Pattern); //selection deutlich machen
|
||||
painter->drawRect(sizeRect);
|
||||
|
||||
@@ -110,6 +110,8 @@ void HomoBFieldWidget::createWidget() {
|
||||
|
||||
QRadioButton* intoPlaneButton = new QRadioButton(tr("in die Ebene hinein"));
|
||||
QRadioButton* outOfPlaneButton = new QRadioButton(tr("aus der Ebene heraus"));
|
||||
intoPlaneButton->setChecked(homoBField->getIsDirectionIntoPlane());
|
||||
outOfPlaneButton->setChecked(!homoBField->getIsDirectionIntoPlane());
|
||||
connect(homoBField ,SIGNAL(directionChanged(bool)),intoPlaneButton, SLOT(setChecked(bool)) );
|
||||
connect(intoPlaneButton, SIGNAL(toggled(bool)),homoBField ,SLOT(setIsDirectionIntoPlane(bool)) );
|
||||
|
||||
|
||||
39
src/lsim.cpp
39
src/lsim.cpp
@@ -96,22 +96,33 @@ void lsim::createActions() {
|
||||
acts.exitAct->setStatusTip (tr ("Die Anwendung beenden"));
|
||||
connect (acts.exitAct, SIGNAL (triggered()), qApp, SLOT (quit()));
|
||||
|
||||
acts.moveItemDown = new QAction (tr ("runter"), this);
|
||||
//up down actions
|
||||
acts.moveItemDown = new QAction (QChar(0x2193), this);
|
||||
acts.moveItemDown->setStatusTip (tr ("runter"));
|
||||
acts.moveItemDown->setEnabled(false);
|
||||
connect (acts.moveItemDown, SIGNAL (triggered()), simulscene, SLOT (moveSelectedFieldItemDown()));
|
||||
connect (acts.moveItemDown, SIGNAL (triggered()), this, SLOT (handleUpDownActionChanges()) );
|
||||
|
||||
acts.moveItemUp = new QAction (tr ("rauf"), this);
|
||||
acts.moveItemUp = new QAction (QChar(0x2191), this);
|
||||
acts.moveItemUp->setStatusTip (tr ("rauf"));
|
||||
acts.moveItemUp->setEnabled(false);
|
||||
connect (acts.moveItemUp, SIGNAL (triggered()), simulscene, SLOT (moveSelectedFieldItemUp()));
|
||||
connect (acts.moveItemUp, SIGNAL (triggered()), this, SLOT (handleUpDownActionChanges()) );
|
||||
|
||||
acts.moveItemOnTop = new QAction (tr ("ganz rauf"), this);
|
||||
acts.moveItemOnTop = new QAction (QChar(0x21C8), this);
|
||||
acts.moveItemOnTop->setStatusTip (tr ("ganz rauf"));
|
||||
acts.moveItemOnTop->setEnabled(false);
|
||||
connect (acts.moveItemOnTop, SIGNAL (triggered()), simulscene, SLOT (moveSelectedFieldItemOnTop()));
|
||||
connect (acts.moveItemOnTop, SIGNAL (triggered()), this, SLOT (handleUpDownActionChanges()) );
|
||||
|
||||
acts.moveItemOnBottom = new QAction (tr ("ganz runter"), this);
|
||||
acts.moveItemOnBottom = new QAction (QChar(0x21CA), this);
|
||||
acts.moveItemOnBottom->setStatusTip (tr ("ganz runter"));
|
||||
acts.moveItemOnBottom->setEnabled(false);
|
||||
//acts.moveItemOnBottom->setToolTip( tr ("Nach ganz unten absinken lassen"));
|
||||
connect (acts.moveItemOnBottom, SIGNAL (triggered()), simulscene, SLOT (moveSelectedFieldItemOnBottom()));
|
||||
connect (acts.moveItemOnBottom, SIGNAL (triggered()), this, SLOT (handleUpDownActionChanges()) );
|
||||
|
||||
connect (simulscene, SIGNAL (selectionChanged ()), this, SLOT (handleUpDownActionChanges()) );
|
||||
|
||||
//Edit, insert, Modechange
|
||||
|
||||
@@ -370,3 +381,23 @@ void lsim::startTimer() {
|
||||
void lsim::handleDockLocationChange() {
|
||||
|
||||
}
|
||||
|
||||
void lsim::handleUpDownActionChanges() {
|
||||
if (simulscene->selectedItems().isEmpty() ||
|
||||
simulscene->selectedItems().first()->zValue() == simulscene->getHighestZIndexFieldItems() ) {
|
||||
acts.moveItemUp->setEnabled(false);
|
||||
acts.moveItemOnTop->setEnabled(false);
|
||||
} else {
|
||||
acts.moveItemUp->setEnabled(true);
|
||||
acts.moveItemOnTop->setEnabled(true);
|
||||
}
|
||||
|
||||
if (simulscene->selectedItems().isEmpty() ||
|
||||
simulscene->selectedItems().first()->zValue() == simulscene->getLowestZIndexFieldItems() ) {
|
||||
acts.moveItemDown->setEnabled(false);
|
||||
acts.moveItemOnBottom->setEnabled(false);
|
||||
} else {
|
||||
acts.moveItemDown->setEnabled(true);
|
||||
acts.moveItemOnBottom->setEnabled(true);
|
||||
}
|
||||
}
|
||||
@@ -57,6 +57,7 @@ class lsim: public QMainWindow {
|
||||
void startCalculation();
|
||||
void startTimer();
|
||||
void handleDockLocationChange();
|
||||
void handleUpDownActionChanges();
|
||||
|
||||
private:
|
||||
void createActions();
|
||||
|
||||
@@ -520,6 +520,23 @@ qreal SimulScene::getHighestZIndexFieldItems() {
|
||||
return highestZValue;
|
||||
}
|
||||
|
||||
qreal SimulScene::getLowestZIndexFieldItems() {
|
||||
bool lowestZValueSet = false;
|
||||
qreal lowestZValue = FieldDefaultZValue; //default value
|
||||
for (int i = 0; i < items().count() ; ++i ) {
|
||||
if (FieldItem::isFieldItem(items().at(i))) {
|
||||
if (!lowestZValueSet) {
|
||||
lowestZValue = items().at(i)->zValue();
|
||||
lowestZValueSet = true;
|
||||
}
|
||||
else if (lowestZValue > items().at(i)->zValue()) {
|
||||
lowestZValue = items().at(i)->zValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
return lowestZValue;
|
||||
}
|
||||
|
||||
void SimulScene::deleteSelectedFieldItems() {
|
||||
QList<QGraphicsItem *> currSelectedItems = selectedItems();
|
||||
for (int i = 0; i < currSelectedItems.count() ; ++i ) {
|
||||
|
||||
@@ -50,6 +50,7 @@ class SimulScene : public QGraphicsScene {
|
||||
SimulScene ( QObject* parent = 0);
|
||||
qreal getHighestZIndexVisible(); //hoechsten z-index der sichtbaren items
|
||||
qreal getHighestZIndexFieldItems(); //hoechsten z-index der Felder ausgeben
|
||||
qreal getLowestZIndexFieldItems();
|
||||
|
||||
~SimulScene();
|
||||
double getTimePerStep();
|
||||
|
||||
Reference in New Issue
Block a user