diff --git a/lsim.kdevelop b/lsim.kdevelop index c8982a4..ee263e1 100644 --- a/lsim.kdevelop +++ b/lsim.kdevelop @@ -161,7 +161,7 @@ /mnt/sdb1/c++/lsim - + diff --git a/lsim.kdevelop.pcs b/lsim.kdevelop.pcs index b46d0d2..322f3a9 100644 Binary files a/lsim.kdevelop.pcs and b/lsim.kdevelop.pcs differ diff --git a/lsim.kdevses b/lsim.kdevses index df05c45..6156c28 100644 --- a/lsim.kdevses +++ b/lsim.kdevses @@ -1,12 +1,12 @@ - + - + - + @@ -15,10 +15,10 @@ - + - + @@ -33,20 +33,29 @@ - + - + - + - + + + + + + + + + + diff --git a/src/application.qrc b/src/application.qrc index 597bbb6..2800a4f 100644 --- a/src/application.qrc +++ b/src/application.qrc @@ -16,6 +16,9 @@ icons/window-simulmode.svg icons/application-exit.svg icons/lsim.svg + icons/view-fullscreen.svg + icons/view-restore.svg + diff --git a/src/graphicsview.cpp b/src/graphicsview.cpp index 6d1a0d0..e73e8f5 100644 --- a/src/graphicsview.cpp +++ b/src/graphicsview.cpp @@ -20,12 +20,21 @@ #include "graphicsview.h" //#include #include +#include +#include +#include +#include +#include "simulscene.h" +#include -GraphicsView::GraphicsView(): QGraphicsView() { +GraphicsView::GraphicsView(QWidget * parent, QStatusBar* statusbar): QGraphicsView(parent) { + mainWindowStatusBar = statusbar; //setMinimumSize(900,700); //setDragMode(QGraphicsView::ScrollHandDrag); //setRenderHint (QPainter::QPainter::Antialiasing,true); + //setCacheMode(QGraphicsView::CacheBackground); + //setTransformationAnchor (QGraphicsView::AnchorUnderMouse); //scale(2,2); @@ -34,6 +43,56 @@ GraphicsView::GraphicsView(): QGraphicsView() { } +void GraphicsView::drawBackground ( QPainter * painter, const QRectF & rect ) { + int lineDistance = 20; + + double startX = rect.x(); + double startY = rect.y(); + double endX = rect.x() + rect.width(); + double endY = rect.y() + rect.height(); + + QPainterPath currPath; + int startPaintX = floor(startX/(double)lineDistance)*lineDistance; + int endPaintX = ceil(endX/(double)lineDistance)*lineDistance; + for (double i = startPaintX; isetPen(QPen(Qt::lightGray, 1, Qt::SolidLine)); + painter->drawPath(currPath); + + painter->setPen(QPen(Qt::green, 1, Qt::SolidLine)); + painter->drawLine(startX,0,endX,0); + painter->drawLine(0,startY,0,endY); + +} + +void GraphicsView::mouseMoveEvent ( QMouseEvent * e ) { + QGraphicsView::mouseMoveEvent(e); + SimulScene* simulScene = dynamic_cast (scene()); + if (simulScene != 0 && mainWindowStatusBar !=0) { + QPointF scenePos = mapToScene(e->pos()); + QString posString; + posString += "Mausposition: "; + posString += "x: " + QLocale().toString(scenePos.x(),'g') + " px"+QChar(8793); + posString += QLocale().toString(scenePos.x()*simulScene->getMeterPerPx(),'g') + " m"; + posString += " y: " + QLocale().toString(scenePos.y(),'g') + " px"+QChar(8793); + posString += QLocale().toString(scenePos.y()*simulScene->getMeterPerPx(),'g') + " m"; + mainWindowStatusBar->showMessage(posString); + } +} + + void GraphicsView::enableOGLViewport() { //setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers))); } diff --git a/src/graphicsview.h b/src/graphicsview.h index 405ecc9..7714679 100644 --- a/src/graphicsview.h +++ b/src/graphicsview.h @@ -24,13 +24,14 @@ class HomoEFieldItem; class QTimeLine; +class QStatusBar; /** @author Peter Dahlberg */ class GraphicsView : public QGraphicsView { Q_OBJECT public: - GraphicsView(); + GraphicsView(QWidget * parent = 0, QStatusBar* statusbar = 0); ~GraphicsView(); @@ -38,6 +39,11 @@ class GraphicsView : public QGraphicsView { void enableOGLViewport(); void disableOGLViewport(); private: + QStatusBar * mainWindowStatusBar; + + protected: + void drawBackground ( QPainter * painter, const QRectF & rect ); + void mouseMoveEvent ( QMouseEvent * e ); }; diff --git a/src/homoefielditem.cpp b/src/homoefielditem.cpp index e0e51ff..9b5aed6 100644 --- a/src/homoefielditem.cpp +++ b/src/homoefielditem.cpp @@ -29,7 +29,7 @@ HomoEFieldItem::HomoEFieldItem(QRectF sizeRect) setRectF(sizeRect); dockWidget = new HomoEFieldWidget(0,0,this); setFieldPower(10); - setFieldLineDistance(10); + setFieldLineDistance(12); setFlag(ItemIsMovable); setFlag(ItemIsSelectable); setFlag(ItemIsFocusable); @@ -38,6 +38,7 @@ HomoEFieldItem::HomoEFieldItem(QRectF sizeRect) //QGraphicsRectItem * testItem = new QGraphicsRectItem(QRectF(-10,-10,6,6), this); //testItem->setBrush(Qt::SolidPattern); + connect(this, SIGNAL(heightChanged(double)), this, SLOT(handleVoltageChange())); @@ -124,6 +125,16 @@ void HomoEFieldItem::setFieldPower (double fieldPower ) { //if (this->fieldPower == fieldPower) return; this->fieldPower = fieldPower; emit fieldPowerChanged(fieldPower); + handleVoltageChange (); +} + +void HomoEFieldItem::setVoltage (double voltage ) { + setFieldPower( voltage/getRectF().height()); + +} + +void HomoEFieldItem::handleVoltageChange () { + emit voltageChanged(getFieldPower()*getRectF().height()); } diff --git a/src/homoefielditem.h b/src/homoefielditem.h index 8c0efa6..3c1d6b9 100644 --- a/src/homoefielditem.h +++ b/src/homoefielditem.h @@ -58,12 +58,15 @@ class HomoEFieldItem : public FieldItem { public slots: void setFieldPower (double fieldPower ); - + void setVoltage (double voltage ); void setOuterPenWidth ( double theValue ); - + + private slots: + void handleVoltageChange(); signals: void fieldPowerChanged(double fieldPower); + void voltageChanged(double voltage); private: //! Abstand der Feldlinien in der Zeichnung diff --git a/src/homoefieldwidget.cpp b/src/homoefieldwidget.cpp index f07b82b..efd7942 100644 --- a/src/homoefieldwidget.cpp +++ b/src/homoefieldwidget.cpp @@ -117,11 +117,13 @@ void HomoEFieldWidget::createWidget() connect(fieldPowerBox, SIGNAL(valueChanged(double)),homoEField ,SLOT(setFieldPower(double)) ); ExpDoubleSpinBox* voltageBox = new ExpDoubleSpinBox; - voltageBox->setRange(-1e+200,1e+200); + voltageBox->setRange(0,1e+200); voltageBox->setDecimals(35); voltageBox->setDisplayDecimals(3); voltageBox->setKeyboardTracking(false); voltageBox->setSuffix(" V"); + connect(homoEField ,SIGNAL(voltageChanged(double)),voltageBox, SLOT(setValue(double)) ); + connect(voltageBox, SIGNAL(valueChanged(double)),homoEField ,SLOT(setVoltage(double)) ); QGridLayout* constGridLayout = new QGridLayout; //constGridLayout->setSizeConstraint(QLayout::SetFixedSize); diff --git a/src/icons/view-fullscreen.svg b/src/icons/view-fullscreen.svg new file mode 100644 index 0000000..06f8404 --- /dev/null +++ b/src/icons/view-fullscreen.svg @@ -0,0 +1,7402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/view-restore.svg b/src/icons/view-restore.svg new file mode 100644 index 0000000..b7f6d3b --- /dev/null +++ b/src/icons/view-restore.svg @@ -0,0 +1,7402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lsim.cpp b/src/lsim.cpp index 829b099..92d00e6 100644 --- a/src/lsim.cpp +++ b/src/lsim.cpp @@ -39,7 +39,7 @@ lsim::lsim() { - gview = new GraphicsView(); + gview = new GraphicsView(this,statusBar()); setCentralWidget (gview); createScene(); createActions(); @@ -66,6 +66,19 @@ void lsim::about() { void lsim::createActions() { + QIcon fullScreenIcon = QIcon(":icons/view-fullscreen.svg"); + fullScreenIcon.addFile(":icons/view-restore.svg", QSize(),QIcon::Normal,QIcon::On); + fullScreenIcon.addFile(":icons/view-restore.svg", QSize(),QIcon::Disabled,QIcon::On); + fullScreenIcon.addFile(":icons/view-restore.svg", QSize(),QIcon::Active,QIcon::On); + fullScreenIcon.addFile(":icons/view-restore.svg", QSize(),QIcon::Selected,QIcon::On); + acts.fullScreenAct = new QAction (tr ("&Vollbild"), this); + acts.fullScreenAct->setStatusTip (tr ("In den Vollbildmodus Wechseln")); + acts.fullScreenAct->setIcon(fullScreenIcon); + acts.fullScreenAct->setCheckable(true); + acts.fullScreenAct->setShortcut(QKeySequence(Qt::Key_F11)); + connect (acts.fullScreenAct, SIGNAL (toggled(bool)), this, SLOT (goToFullscreen(bool))); + connect (this, SIGNAL (fullScreenModeChanged(bool)), acts.fullScreenAct, SLOT (setChecked(bool))); + acts.aboutAct = new QAction (tr ("&About"), this); acts.aboutAct->setStatusTip (tr ("Show the application's About box")); connect (acts.aboutAct, SIGNAL (triggered()), this, SLOT (about())); @@ -115,6 +128,7 @@ void lsim::createActions() { acts.exitAct = new QAction (tr ("Beenden"), this); acts.exitAct->setStatusTip (tr ("lsim beenden")); + acts.exitAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); acts.exitAct->setIcon(QIcon(":icons/application-exit.svg")); connect (acts.exitAct, SIGNAL (triggered()), qApp, SLOT (quit())); @@ -152,13 +166,13 @@ void lsim::createActions() { //Edit, insert, Modechange - acts.itemEditModeAct = new QAction (tr ("Bearbeiten"), this); + acts.itemEditModeAct = new QAction (tr ("Felder Bearbeiten"), this); acts.itemEditModeAct->setStatusTip (tr ("Die Anordnung ver\344ndern")); acts.itemEditModeAct->setIcon(QIcon(":icons/edit-scene.svg")); acts.itemEditModeAct->setCheckable(true); acts.itemEditModeAct->setData(QVariant(SimulScene::FieldItemEdit)); - acts.insertEFieldItemAct = new QAction (tr ("elektrisches Feld hizuf\374gen"), this); + acts.insertEFieldItemAct = new QAction (tr ("Elektrisches Feld hizuf\374gen"), this); acts.insertEFieldItemAct->setStatusTip (tr ("Ein elekrisches Feld hizuf\374gen")); acts.insertEFieldItemAct->setIcon(QIcon(":icons/insert-efield.svg")); acts.insertEFieldItemAct->setCheckable(true); @@ -194,16 +208,18 @@ void lsim::createActions() { //Window Mode - acts.editModeAct = new QAction (tr ("in den Bearbeitungsmodus wechseln"), this); + acts.editModeAct = new QAction (tr ("&Bearbeitungsmodus"), this); acts.editModeAct->setStatusTip (tr ("erm\366glicht das Bearbeiten der Anordnung")); acts.editModeAct->setIcon(QIcon(":icons/window-editmode.svg")); acts.editModeAct->setCheckable(true); + acts.editModeAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E)); acts.editModeAct->setData(QVariant(lsim::EditMode)); - acts.simulationModeAct = new QAction (tr ("in den Simulation wechseln"), this); + acts.simulationModeAct = new QAction (tr ("&Simulationsmodus"), this); acts.simulationModeAct->setStatusTip (tr ("Berechnet die Flugbahn und wechselt in den Simulationsmodus")); acts.simulationModeAct->setIcon(QIcon(":icons/window-simulmode.svg")); acts.simulationModeAct->setCheckable(true); + acts.simulationModeAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R)); acts.simulationModeAct->setData(QVariant(lsim::SimulationMode)); windowModeActGroup = new QActionGroup(this); @@ -215,15 +231,21 @@ void lsim::createActions() { } void lsim::createMenus() { - fileMenu = menuBar()->addMenu(tr("Datei")); + fileMenu = menuBar()->addMenu(tr("&Datei")); + fileMenu->addAction(acts.resetAct); fileMenu->addAction(acts.exitAct); - menuBar()->addMenu(tr("Bearbeiten")); - viewMenu = menuBar()->addMenu(tr("Ansicht")); - viewMenu->addAction(acts.resetAct); + editMenu = menuBar()->addMenu(tr("&Bearbeiten")); - menuBar()->addMenu(tr("Einstellungen")); + + viewMenu = menuBar()->addMenu(tr("&Ansicht")); + viewMenu->addAction(acts.editModeAct); + viewMenu->addAction(acts.simulationModeAct); + viewMenu->addSeparator(); + viewMenu->addAction(acts.fullScreenAct); + + menuBar()->addMenu(tr("&Einstellungen")); helpMenu = menuBar()->addMenu (tr ("&Help")); @@ -271,6 +293,7 @@ void lsim::initWindowMode(WindowMode newMode) { removeDockWidget(simulOptDock); gview->setDragMode(QGraphicsView::NoDrag); gview->setInteractive(true); + if (newMode == lsim::EditMode) { simulscene->clearFlightPath(); acts.timerStop->trigger(); @@ -280,8 +303,9 @@ void lsim::initWindowMode(WindowMode newMode) { addDockWidget(Qt::LeftDockWidgetArea,fieldItemEditDock); addDockWidget(Qt::LeftDockWidgetArea,probeItemDock); addDockWidget(Qt::LeftDockWidgetArea,sceneDock); - tabifyDockWidget(probeItemDock,fieldItemEditDock); - tabifyDockWidget(fieldItemEditDock, sceneDock); + tabifyDockWidget(probeItemDock,sceneDock); + tabifyDockWidget(sceneDock,fieldItemEditDock); + sceneDock->show(); sceneModeBar->setVisible(true); upDownBar->setVisible(true); fieldItemEditDock->setVisible(true); @@ -303,11 +327,11 @@ void lsim::initWindowMode(WindowMode newMode) { acts.itemEditModeAct->trigger(); simulscene->clearSelection(); acts.calculate->trigger(); - //gview->setScene(simulscene); //ueberfluessige scrollbars entfernen gview->centerOn(simulscene->getProbeChargeItem()); } + } @@ -318,6 +342,7 @@ void lsim::createStatusBar() { void lsim::createScene() { simulscene = new SimulScene(); gview->setScene(simulscene); + simulscene->addRect(-qApp->desktop()->screenGeometry().width(),-qApp->desktop()->screenGeometry().height(), qApp->desktop()->screenGeometry().width()*2, qApp->desktop()->screenGeometry().height()*2)->setVisible(false); } void lsim::createDocks() { @@ -614,4 +639,13 @@ void lsim::resetAll() { simulscene->resetScene(); gview->centerOn(0,0); +} + +void lsim::goToFullscreen(bool yesno) { + if (yesno && windowState() == Qt::WindowFullScreen) return; + if (!yesno && windowState() != Qt::WindowFullScreen) return; + + setWindowState(windowState() ^ Qt::WindowFullScreen); + //qDebug()<< (windowState() == Qt::WindowFullScreen); + emit fullScreenModeChanged(windowState() == Qt::WindowFullScreen); } \ No newline at end of file diff --git a/src/lsim.h b/src/lsim.h index 1df402f..18958f2 100644 --- a/src/lsim.h +++ b/src/lsim.h @@ -55,6 +55,8 @@ class lsim: public QMainWindow { protected: void closeEvent (QCloseEvent *event); + public slots: + void goToFullscreen(bool yesno); private slots: void about(); @@ -119,6 +121,7 @@ class lsim: public QMainWindow { QAction *probeChargeItemPlaceAct; QAction *resetAct; + QAction *fullScreenAct; }; Actions acts; @@ -138,6 +141,7 @@ class lsim: public QMainWindow { signals: void windowModeChanged(WindowMode mode); void timeLineDurationChangedSec(double duration); + void fullScreenModeChanged(bool mode); }; #endif diff --git a/src/main.cpp b/src/main.cpp index b22b556..21fd332 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,14 +22,30 @@ #include #include #include "lsim.h" +#include +#include int main(int argc, char *argv[]) { Q_INIT_RESOURCE(application); QApplication app(argc, argv); app.setWindowIcon(QIcon(":icons/lsim.svg")); + lsim * mw = new lsim(); - mw->show(); + int dWidth = app.desktop()->availableGeometry(mw).width(); + int dHeight = app.desktop()->availableGeometry(mw).height(); + int frWidth = mw->frameGeometry().width() - mw->geometry().width(); + int frHeight = mw->frameGeometry().height() - mw->geometry().height(); + mw->resize(0.9*dWidth-frWidth, 0.9 *dHeight-frHeight); + int midX = (dWidth - mw->frameGeometry().width()) / 2.0; + int midY = (dHeight - mw->frameGeometry().height()) / 2.0; + mw->move(midX,midY); + if (dWidth <= 1024) { + mw->showMaximized(); + } + else { + mw->show(); + } return app.exec(); } diff --git a/src/simulscene.cpp b/src/simulscene.cpp index 84fe65e..f7766f8 100644 --- a/src/simulscene.cpp +++ b/src/simulscene.cpp @@ -37,6 +37,7 @@ #include #include #include +#include SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { @@ -60,7 +61,7 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { setFlightPathVisible(); - addLine(0,-298,0,298,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); + /*addLine(0,-298,0,298,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); addLine(-398,0,398,0,QPen(Qt::green, 1, Qt::SolidLine) )->setCacheMode(QGraphicsItem::DeviceCoordinateCache); for (int i = -39; i< 39; ++i) { @@ -76,7 +77,7 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { line ->setCacheMode(QGraphicsItem::DeviceCoordinateCache); line->setZValue(-1); } - } + }*/ ellipse1 = new GraphicsEllipseItem(); ellipse1->setRect(-2,-2,5,5); @@ -102,6 +103,11 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { } +void SimulScene::drawBackground ( QPainter * painter, const QRectF & rect ) { + QGraphicsScene::drawBackground(painter,rect); +} + + void SimulScene::setupVars() { //variablen initialisieren setTimePerStep(1e-10); @@ -111,7 +117,7 @@ void SimulScene::setupVars() { setPxPerSec(90.0); timer->setFrameRange(0,100); - timer->setUpdateInterval(30); + //timer->setUpdateInterval(30); timer->setCurveShape(QTimeLine::LinearCurve); setTimeLineDuration(30000); @@ -457,7 +463,7 @@ void SimulScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) { } void SimulScene::keyPressEvent (QKeyEvent *keyevent) { - if(keyevent->key() == Qt::Key_Delete) { + if(keyevent->matches(QKeySequence::Delete)) { deleteSelectedFieldItems(); } } diff --git a/src/simulscene.h b/src/simulscene.h index bf94972..6050988 100644 --- a/src/simulscene.h +++ b/src/simulscene.h @@ -199,6 +199,7 @@ class SimulScene : public QGraphicsScene { void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent); void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent); void keyPressEvent ( QKeyEvent * keyEvent ); + void drawBackground ( QPainter * painter, const QRectF & rect ); }; #endif