diff --git a/Code/qtiplot/qtiplot/src/ApplicationWindow.cpp b/Code/qtiplot/qtiplot/src/ApplicationWindow.cpp index 1e573e766fb97085b06c8800340291b5f8005bc6..8d19183ce1853b270fe4340472eef7085a1cef3d 100644 --- a/Code/qtiplot/qtiplot/src/ApplicationWindow.cpp +++ b/Code/qtiplot/qtiplot/src/ApplicationWindow.cpp @@ -577,6 +577,9 @@ void ApplicationWindow::initGlobalConstants() canvasFrameWidth = 0; defaultPlotMargin = 0; drawBackbones = true; + xLogNotLin = true; + yLogNotLin = true; + zLogNotLin = true; axesLineWidth = 1; autoscale2DPlots = true; autoScaleFonts = true; @@ -2614,6 +2617,7 @@ void ApplicationWindow::setPreferences(Graph* g) g->setTicksLength (minTicksLength, majTicksLength); g->setAxesLinewidth(axesLineWidth); g->drawAxesBackbones(drawBackbones); +// need to call the plot functions for log/linear, errorbars and distribution stuff } g->initFonts(plotAxesFont, plotNumbersFont); @@ -4680,6 +4684,9 @@ void ApplicationWindow::readSettings() canvasFrameWidth = settings.value("/CanvasFrameWidth", 0).toInt(); defaultPlotMargin = settings.value("/Margin", 0).toInt(); drawBackbones = settings.value("/AxesBackbones", true).toBool(); + xLogNotLin = settings.value("/AxisXLog", false).toBool(); + yLogNotLin = settings.value("/AxisYLog", false).toBool(); + zLogNotLin = settings.value("/AxisZLog", false).toBool(); axesLineWidth = settings.value("/AxesLineWidth", 1).toInt(); autoscale2DPlots = settings.value("/Autoscale", true).toBool(); autoScaleFonts = settings.value("/AutoScaleFonts", true).toBool(); @@ -4980,6 +4987,9 @@ void ApplicationWindow::saveSettings() settings.setValue("/CanvasFrameWidth", canvasFrameWidth); settings.setValue("/Margin", defaultPlotMargin); settings.setValue("/AxesBackbones", drawBackbones); + settings.setValue("/AxisXLog", xLogNotLin); + settings.setValue("/AxisYLog", yLogNotLin); + settings.setValue("/AxisZLog", zLogNotLin); settings.setValue("/AxesLineWidth", axesLineWidth); settings.setValue("/Autoscale", autoscale2DPlots); settings.setValue("/AutoScaleFonts", autoScaleFonts); @@ -9109,6 +9119,8 @@ void ApplicationWindow::showGraphContextMenu() return; } + QMenu axes(this); + QMenu colour(this); QMenu exports(this); QMenu copy(this); QMenu prints(this); @@ -9139,6 +9151,17 @@ void ApplicationWindow::showGraphContextMenu() cm.insertItem(QPixmap(paste_xpm), tr("&Paste Image"), plot, SIGNAL(pasteMarker())); } cm.insertSeparator(); + axes.insertItem(tr("Lo&g(x),Log(y)"), ag, SLOT(logLogAxes())); + axes.insertItem(tr("Log(&x),Linear(y)"), ag, SLOT(logXLinY())); + axes.insertItem(tr("Linear(x),Log(&y)"), ag, SLOT(logYlinX())); + axes.insertItem(tr("&Linear(x),Linear(y)"), ag, SLOT(linearAxes())); + cm.insertItem(tr("&Axes"), &axes); + + colour.insertItem(tr("Lo&g Scale"), ag, SLOT(logColor())); + colour.insertItem(tr("&Linear"), ag, SLOT(linColor())); + cm.insertItem(tr("&Color Bar"), &colour); + + cm.insertSeparator(); copy.insertItem(tr("&Layer"), this, SLOT(copyActiveLayer())); copy.insertItem(tr("&Window"), plot, SLOT(copyAllLayers())); cm.insertItem(QPixmap(copy_xpm), tr("&Copy"), ©); diff --git a/Code/qtiplot/qtiplot/src/ApplicationWindow.h b/Code/qtiplot/qtiplot/src/ApplicationWindow.h index 31c147f4ace6910f88887b87fc84cb01648a5ff3..7d163b9aa42897a1c1c01da09ee9285ce9c1a877 100644 --- a/Code/qtiplot/qtiplot/src/ApplicationWindow.h +++ b/Code/qtiplot/qtiplot/src/ApplicationWindow.h @@ -1165,6 +1165,7 @@ public: bool confirmCloseTable, confirmCloseMatrix, confirmClosePlot2D, confirmClosePlot3D,confirmCloseInstrWindow; bool confirmCloseFolder, confirmCloseNotes; bool titleOn, autoSave, drawBackbones, allAxesOn, autoscale2DPlots, antialiasing2DPlots; + bool xLogNotLin, yLogNotLin, zLogNotLin; int majTicksStyle, minTicksStyle, legendFrameStyle, autoSaveTime, axesLineWidth, canvasFrameWidth; QColor legendBackground, legendTextColor, defaultArrowColor; int defaultArrowHeadLength, defaultArrowHeadAngle; diff --git a/Code/qtiplot/qtiplot/src/Graph.cpp b/Code/qtiplot/qtiplot/src/Graph.cpp index 9f3379a1bfb89def2920467d29311256dc55bb3e..b35ab3388c0769c71d167bb3b7f241ce1b9ec735 100644 --- a/Code/qtiplot/qtiplot/src/Graph.cpp +++ b/Code/qtiplot/qtiplot/src/Graph.cpp @@ -1312,6 +1312,18 @@ void Graph::linearAxes() notifyChanges(); } +void Graph::logColor() +{ + setScale(QwtPlot::yRight, QwtScaleTransformation::Log10); + notifyChanges(); +} + +void Graph::linColor() +{ + setScale(QwtPlot::yRight, QwtScaleTransformation::Linear); + notifyChanges(); +} + void Graph::setAxisScale(int axis, double start, double end, int type, double step, int majorTicks, int minorTicks) { diff --git a/Code/qtiplot/qtiplot/src/Graph.h b/Code/qtiplot/qtiplot/src/Graph.h index 13d4c09e2dd0919bd9a35c9c130d2e5a5128cd90..13d2f53ba0f3f38f50bb0f5af20461b38051f776 100644 --- a/Code/qtiplot/qtiplot/src/Graph.h +++ b/Code/qtiplot/qtiplot/src/Graph.h @@ -336,7 +336,10 @@ public slots: void logYlinX(); /// set both the x and y axes to linear void linearAxes(); - + /// set a log scale for the color bar + void logColor(); + /// change the color bar to use a linear scale + void linColor(); //! \name Curves Layout //@{ CurveLayout initCurveLayout(int style, int curves = 0);