Skip to content

Commit

Permalink
Rework plot context menu.
Browse files Browse the repository at this point in the history
  • Loading branch information
netterfield committed May 8, 2017
1 parent 44dccea commit fcbf719
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 58 deletions.
2 changes: 0 additions & 2 deletions src/libkstapp/mainwindow.cpp
Expand Up @@ -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()));

Expand Down Expand Up @@ -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()));

Expand Down
126 changes: 81 additions & 45 deletions src/libkstapp/plotitem.cpp
Expand Up @@ -91,6 +91,7 @@ PlotItem::PlotItem(View *parent)
_zoomMenu(0),
_filterMenu(0),
_fitMenu(0),
_psdMenu(0),
_editMenu(0),
_sharedAxisBoxMenu(0),
_copyMenu(0),
Expand Down Expand Up @@ -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);
}


Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand All @@ -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) {
Expand All @@ -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) {

Expand Down Expand Up @@ -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);

}
Expand Down Expand Up @@ -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());
}
Expand All @@ -818,7 +855,6 @@ void PlotItem::showFitDialog(QAction* action) {
showFitFilterDialog(action, DataObject::fitsPluginList().first());
}


void PlotItem::redrawPlot() {
update();
}
Expand Down
6 changes: 6 additions & 0 deletions src/libkstapp/plotitem.h
Expand Up @@ -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(); }
Expand All @@ -373,6 +374,7 @@ class PlotItem : public ViewItem, public PlotItemInterface
void createActions();
void createZoomMenu();
void createCopyMenu();
void createPSDMenu();
void createFilterMenu();
void createFitMenu();
void createEditMenu();
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -555,6 +560,7 @@ class PlotItem : public ViewItem, public PlotItemInterface

QMenu *_filterMenu;
QMenu *_fitMenu;
QMenu *_psdMenu;
QMenu *_editMenu;
QMenu *_sharedAxisBoxMenu;
QAction *_shareBoxShareX;
Expand Down
1 change: 1 addition & 0 deletions src/libkstapp/powerspectrumdialog.cpp
Expand Up @@ -153,6 +153,7 @@ void PowerSpectrumDialog::editSingleMode() {

void PowerSpectrumDialog::setVector(VectorPtr vector) {
_powerSpectrumTab->setVector(vector);
_powerSpectrumTab->selectionChanged();
}


Expand Down
2 changes: 1 addition & 1 deletion src/libkstapp/powerspectrumdialog.h
Expand Up @@ -46,7 +46,7 @@ class PowerSpectrumTab : public DataTab, Ui::PowerSpectrumTab {
void hideCurveOptions();
void clearTabValues();

private Q_SLOTS:
public Q_SLOTS:
void selectionChanged();

Q_SIGNALS:
Expand Down
24 changes: 14 additions & 10 deletions src/libkstapp/viewitem.cpp
Expand Up @@ -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());
}
Expand Down

0 comments on commit fcbf719

Please sign in to comment.