diff --git a/src/libkstapp/mainwindow.cpp b/src/libkstapp/mainwindow.cpp index 26f4d43b7..45ca2434d 100644 --- a/src/libkstapp/mainwindow.cpp +++ b/src/libkstapp/mainwindow.cpp @@ -1112,7 +1112,6 @@ void MainWindow::createActions() { _newTabAct = new QAction(tr("&New Tab"), this); _newTabAct->setStatusTip(tr("Create a new tab")); _newTabAct->setIcon(KstGetIcon("tab-new")); - _newTabAct->setShortcuts(QKeySequence::AddTab); connect(_newTabAct, SIGNAL(triggered()), tabWidget(), SLOT(createView())); @@ -1309,7 +1308,6 @@ void MainWindow::createActions() { _tiedZoomAct = new QAction(tr("&Toggle Tied Zoom"), this); _tiedZoomAct->setIcon(KstGetIcon("tied-zoom")); _tiedZoomAct->setCheckable(false); - _tiedZoomAct->setShortcut(QString("t")); _tiedZoomAct->setStatusTip(tr("Toggle the current view's tied zoom (%1)").arg(_tiedZoomAct->shortcut().toString())); connect(_tiedZoomAct, SIGNAL(triggered()), this, SLOT(toggleTiedZoom())); diff --git a/src/libkstapp/plotitem.cpp b/src/libkstapp/plotitem.cpp index 8f6c2b6c8..63f1f7dca 100644 --- a/src/libkstapp/plotitem.cpp +++ b/src/libkstapp/plotitem.cpp @@ -91,6 +91,7 @@ PlotItem::PlotItem(View *parent) _zoomMenu(0), _filterMenu(0), _fitMenu(0), + _psdMenu(0), _editMenu(0), _sharedAxisBoxMenu(0), _copyMenu(0), @@ -615,39 +616,41 @@ void PlotItem::createZoomMenu() { _zoomMenu = new QMenu; _zoomMenu->setTitle(tr("Zoom")); - _zoomMenu->addAction(_zoomMaximum); - _zoomMenu->addAction(_zoomMaxSpikeInsensitive); + QMenu *xyZoomMenu = _zoomMenu->addMenu(tr("XY Zoom", "menu title: zoom in both axis of a plot")); + QMenu *yZoomMenu = _zoomMenu->addMenu(tr("Y Zoom", "menu title: zoom in the horizontal axis of a plot")); + QMenu *xZoomMenu = _zoomMenu->addMenu(tr("X Zoom", "menu title: zoom in the vertical axis of a plot")); + _zoomMenu->addAction(_zoomPrevious); - _zoomMenu->addAction(_zoomMeanCentered); - _zoomMenu->addAction(_zoomTied); _zoomMenu->addAction(_adjustImageColorscale); - _zoomMenu->addSeparator(); - - _zoomMenu->addAction(_zoomXTied); - _zoomMenu->addAction(_zoomXMaximum); - _zoomMenu->addAction(_zoomXAutoBorder); - _zoomMenu->addAction(_zoomXNoSpike); - _zoomMenu->addAction(_zoomXRight); - _zoomMenu->addAction(_zoomXLeft); - _zoomMenu->addAction(_zoomXOut); - _zoomMenu->addAction(_zoomXIn); - _zoomMenu->addAction(_zoomNormalizeXtoY); - _zoomMenu->addAction(_zoomLogX); - - _zoomMenu->addSeparator(); - - _zoomMenu->addAction(_zoomYTied); - _zoomMenu->addAction(_zoomYLocalMaximum); - _zoomMenu->addAction(_zoomYMaximum); - _zoomMenu->addAction(_zoomYAutoBorder); - _zoomMenu->addAction(_zoomYNoSpike); - _zoomMenu->addAction(_zoomYUp); - _zoomMenu->addAction(_zoomYDown); - _zoomMenu->addAction(_zoomYOut); - _zoomMenu->addAction(_zoomYIn); - _zoomMenu->addAction(_zoomNormalizeYtoX); - _zoomMenu->addAction(_zoomLogY); + xyZoomMenu->addAction(_zoomMaximum); + xyZoomMenu->addAction(_zoomMaxSpikeInsensitive); + xyZoomMenu->addAction(_zoomMeanCentered); + xyZoomMenu->addAction(_zoomTied); + + xZoomMenu->addAction(_zoomXTied); + xZoomMenu->addAction(_zoomXMaximum); + xZoomMenu->addAction(_zoomXAutoBorder); + xZoomMenu->addAction(_zoomXNoSpike); + xZoomMenu->addAction(_zoomXRight); + xZoomMenu->addAction(_zoomXLeft); + xZoomMenu->addAction(_zoomXOut); + xZoomMenu->addAction(_zoomXIn); + xZoomMenu->addAction(_zoomNormalizeXtoY); + xZoomMenu->addAction(_zoomLogX); + + + yZoomMenu->addAction(_zoomYTied); + yZoomMenu->addAction(_zoomYLocalMaximum); + yZoomMenu->addAction(_zoomYMaximum); + yZoomMenu->addAction(_zoomYAutoBorder); + yZoomMenu->addAction(_zoomYNoSpike); + yZoomMenu->addAction(_zoomYUp); + yZoomMenu->addAction(_zoomYDown); + yZoomMenu->addAction(_zoomYOut); + yZoomMenu->addAction(_zoomYIn); + yZoomMenu->addAction(_zoomNormalizeYtoX); + yZoomMenu->addAction(_zoomLogY); } @@ -682,7 +685,7 @@ void PlotItem::createFilterMenu() { } _filterMenu = new QMenu; - _filterMenu->setTitle(tr("Filter")); + _filterMenu->setTitle(tr("Create Filter")); CurveList curves = curveList(); foreach (const CurvePtr& curve, curves) { @@ -714,7 +717,7 @@ void PlotItem::createFitMenu() { } _fitMenu = new QMenu; - _fitMenu->setTitle(tr("Fit")); + _fitMenu->setTitle(tr("Create Fit")); CurveList curves = curveList(); foreach (const CurvePtr& curve, curves) { @@ -724,6 +727,23 @@ void PlotItem::createFitMenu() { connect(_fitMenu, SIGNAL(triggered(QAction*)), this, SLOT(showFitDialog(QAction*))); } +void PlotItem::createPSDMenu() { + if (_psdMenu) { + delete _psdMenu; + } + + _psdMenu = new QMenu; + _psdMenu->setTitle(tr("Create Spectrum")); + + CurveList curves = curveList(); + foreach (const CurvePtr& curve, curves) { + _psdMenu->addAction(new QAction(curve->Name(), this)); + } + + connect(_psdMenu, SIGNAL(triggered(QAction*)), this, SLOT(showPSDDialog(QAction*))); +} + + void PlotItem::createSharedAxisBoxMenu() { if (_sharedAxisBoxMenu) { @@ -740,6 +760,25 @@ void PlotItem::createSharedAxisBoxMenu() { void PlotItem::addToMenuForContextEvent(QMenu &menu) { + if (curveList().size()>0) { + menu.addSeparator(); + if (!DataObject::filterPluginList().empty()) { + createFilterMenu(); + menu.addMenu(_filterMenu); + } + + if (!DataObject::fitsPluginList().empty()) { + createFitMenu(); + menu.addMenu(_fitMenu); + } + createPSDMenu(); + menu.addMenu(_psdMenu); + + createEditMenu(); + menu.addMenu(_editMenu); + + } + if (parentItem() && isInSharedAxisBox() && _sharedBox) { if (view()->viewMode() == View::Data) { @@ -770,19 +809,7 @@ void PlotItem::addToMenuForContextEvent(QMenu &menu) { _zoomPrevious->setVisible(!isInSharedAxisBox()); menu.addMenu(_zoomMenu); - if (!DataObject::filterPluginList().empty()) { - createFilterMenu(); - menu.addMenu(_filterMenu); - } - if (!DataObject::fitsPluginList().empty()) { - createFitMenu(); - menu.addMenu(_fitMenu); - } - if (curveList().size()>0) { - createEditMenu(); - menu.addMenu(_editMenu); - } menu.addMenu(_copyMenu); } @@ -810,6 +837,16 @@ void PlotItem::showFitFilterDialog(QAction* action, const QString& plugin) { } +void PlotItem::showPSDDialog(QAction* action) { + CurveList curves = curveList(); + foreach (const CurvePtr& curve, curves) { + if (curve->Name() == action->text()) { + DialogLauncher::self()->showPowerSpectrumDialog(0, curve->yVector()); + } + } +} + + void PlotItem::showFilterDialog(QAction* action) { showFitFilterDialog(action, DataObject::filterPluginList().first()); } @@ -818,7 +855,6 @@ void PlotItem::showFitDialog(QAction* action) { showFitFilterDialog(action, DataObject::fitsPluginList().first()); } - void PlotItem::redrawPlot() { update(); } diff --git a/src/libkstapp/plotitem.h b/src/libkstapp/plotitem.h index cd8ca959a..b51a7ca93 100644 --- a/src/libkstapp/plotitem.h +++ b/src/libkstapp/plotitem.h @@ -358,6 +358,7 @@ class PlotItem : public ViewItem, public PlotItemInterface void showFilterDialog(QAction*); void showFitDialog(QAction*); + void showPSDDialog(QAction*); void showEditDialog(QAction *action); void setLeftLabelDirty() { _leftLabel.dirty = true; setPlotPixmapDirty(); } @@ -373,6 +374,7 @@ class PlotItem : public ViewItem, public PlotItemInterface void createActions(); void createZoomMenu(); void createCopyMenu(); + void createPSDMenu(); void createFilterMenu(); void createFitMenu(); void createEditMenu(); @@ -520,6 +522,9 @@ class PlotItem : public ViewItem, public PlotItemInterface LegendItem* _legend; QMenu *_zoomMenu; + //QMenu *_xZoomMenu; + //QMenu *_yZoomMenu; + //QMenu *_xyZoomMenu; QAction *_zoomMaximum; QAction *_zoomMaxSpikeInsensitive; QAction *_zoomPrevious; @@ -555,6 +560,7 @@ class PlotItem : public ViewItem, public PlotItemInterface QMenu *_filterMenu; QMenu *_fitMenu; + QMenu *_psdMenu; QMenu *_editMenu; QMenu *_sharedAxisBoxMenu; QAction *_shareBoxShareX; diff --git a/src/libkstapp/powerspectrumdialog.cpp b/src/libkstapp/powerspectrumdialog.cpp index 14b1816d9..fa4b087ca 100644 --- a/src/libkstapp/powerspectrumdialog.cpp +++ b/src/libkstapp/powerspectrumdialog.cpp @@ -153,6 +153,7 @@ void PowerSpectrumDialog::editSingleMode() { void PowerSpectrumDialog::setVector(VectorPtr vector) { _powerSpectrumTab->setVector(vector); + _powerSpectrumTab->selectionChanged(); } diff --git a/src/libkstapp/powerspectrumdialog.h b/src/libkstapp/powerspectrumdialog.h index 53ee35054..1eb7424b5 100644 --- a/src/libkstapp/powerspectrumdialog.h +++ b/src/libkstapp/powerspectrumdialog.h @@ -46,7 +46,7 @@ class PowerSpectrumTab : public DataTab, Ui::PowerSpectrumTab { void hideCurveOptions(); void clearTabValues(); - private Q_SLOTS: + public Q_SLOTS: void selectionChanged(); Q_SIGNALS: diff --git a/src/libkstapp/viewitem.cpp b/src/libkstapp/viewitem.cpp index 6c28e4896..4c437b185 100644 --- a/src/libkstapp/viewitem.cpp +++ b/src/libkstapp/viewitem.cpp @@ -1225,28 +1225,32 @@ void ViewItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { addTitle(&menu); + + if (!(lockParent() || (parentViewItem() && parentViewItem()->lockParent()))) { + QMenu *layoutMenu = menu.addMenu(tr("Cleanup Layout")); + layoutMenu->setTitle(tr("Cleanup Layout")); + layoutMenu->addAction(_autoLayoutAction); + layoutMenu->addAction(_protectedLayoutAction); + layoutMenu->addAction(_customLayoutAction); + } + menu.addAction(_editAction); - QMenu layoutMenu; + addToMenuForContextEvent(menu); + + menu.addSeparator(); + if (!(lockParent() || (parentViewItem() && parentViewItem()->lockParent()))) { menu.addAction(_raiseAction); menu.addAction(_lowerAction); - - layoutMenu.setTitle(tr("Cleanup Layout")); - layoutMenu.addAction(_autoLayoutAction); - layoutMenu.addAction(_protectedLayoutAction); - layoutMenu.addAction(_customLayoutAction); - menu.addMenu(&layoutMenu); - - menu.addSeparator(); menu.addAction(_deleteAction); } + if (dataPosLockable()) { menu.addSeparator(); menu.addAction(_lockPosToDataAction); } - addToMenuForContextEvent(menu); menu.exec(event->screenPos()); }