File indexing completed on 2024-12-22 04:17:28

0001 /***************************************************************************
0002  *                                                                         *
0003  *   copyright : (C) 2007 The University of Toronto                        *
0004  *                   netterfield@astro.utoronto.ca                         *
0005  *                                                                         *
0006  *   This program is free software; you can redistribute it and/or modify  *
0007  *   it under the terms of the GNU General Public License as published by  *
0008  *   the Free Software Foundation; either version 2 of the License, or     *
0009  *   (at your option) any later version.                                   *
0010  *                                                                         *
0011  ***************************************************************************/
0012 
0013 #ifndef DATAMANAGER_H
0014 #define DATAMANAGER_H
0015 
0016 #include <QDialog>
0017 #include <QShortcut>
0018 #include "object.h"
0019 
0020 #include "ui_datamanager.h"
0021 
0022 #include "kst_export.h"
0023 
0024 class QToolBar;
0025 class QSortFilterProxyModel;
0026 
0027 namespace Kst {
0028 
0029 class Document;
0030 
0031 class DataManager : public QDialog, Ui::DataManager
0032 {
0033   Q_OBJECT
0034   public:
0035     DataManager(QWidget *parent, Document *doc);
0036     virtual ~DataManager();
0037 
0038   public Q_SLOTS:
0039     void showContextMenu(const QPoint &);
0040     void showEditDialog(QModelIndex qml);
0041     void showEditDialog();
0042     void showEditDialog(int row);
0043     void deleteObject();
0044 
0045     void showVectorDialog();
0046     void showMatrixDialog();
0047     void showScalarDialog();
0048     void showStringDialog();
0049 
0050     void showCurveDialog();
0051     void showCSDDialog();
0052     void showHistogramDialog();
0053     void showPowerSpectrumDialog();
0054     void showImageDialog();
0055     void showEventMonitorDialog();
0056     void showEquationDialog();
0057     void showPluginDialog(QString &pluginName);
0058     void showFitDialog();
0059     void showFilterDialog();
0060 
0061     void addToPlot(QAction* action);
0062     void removeFromPlot(QAction* action);
0063 
0064     void setUsedFlags();
0065     void purge();
0066 
0067   private:
0068     Document *_doc;
0069 
0070     QToolBar *_primitives;
0071     QToolBar *_dataObjects;
0072     QToolBar *_plugins;
0073     QToolBar *_fits;
0074     QToolBar *_filters;
0075 
0076     ObjectPtr _currentObject;
0077     QShortcut *_deleteShortcut;
0078     QMenu *_contextMenu;
0079 
0080     QSortFilterProxyModel *_proxyModel;
0081 
0082     void showEvent(QShowEvent* event);
0083 
0084   private Q_SLOTS:
0085     void setFilterColumn(int index);
0086     void setCaseSensitivity(int state);
0087 
0088 };
0089 
0090 }
0091 
0092 #endif
0093 
0094 // vim: ts=2 sw=2 et