Newer
Older
Steve Williams
committed
#ifndef MANTIDQTMANTIDWIDGETS_SAVEWORKSPACES_H_
#define MANTIDQTMANTIDWIDGETS_SAVEWORKSPACES_H_
Steve Williams
committed
#include "MantidQtAPI/MantidDialog.h"
Steve Williams
committed
#include "WidgetDllOption.h"
#include <QHash>
#include <QSignalMapper>
#include <QGridLayout>
#include <QListWidget>
#include <QLineEdit>
#include <QCheckBox>
#include <QString>
#include "MantidAPI/FrameworkManager.h"
namespace MantidQt
{
namespace MantidWidgets
{
/**
Implements a dialog box that allows users to save multiple Mantid workspaces
@author Steve Williams
Copyright © 2010 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge National Laboratory & European Spallation Source
Steve Williams
committed
This file is part of Mantid.
Mantid is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
Mantid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
File change history is stored at: <https://github.com/mantidproject/mantid>
Steve Williams
committed
Code Documentation is available at: <http://doxygen.mantidproject.org>
*/
Steve Williams
committed
class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS SaveWorkspaces : public API::MantidDialog
Steve Williams
committed
{
Q_OBJECT
public:
Steve Williams
committed
SaveWorkspaces(QWidget *parent, const QString & suggFname,
QHash<const QCheckBox * const, QString> & defSavs, bool saveAsZeroErrorFree);
Steve Williams
committed
void initLayout();
///Returns the save extension expected the name algorithm
static QString getSaveAlgExt(const QString & algName);
public slots:
void onSaveAsZeroErrorFreeChanged(int state);
Steve Williams
committed
signals:
void closing();
void createZeroErrorFreeWorkspace(QString& originalWorkspace, QString& zeroFreeWorkspace);
void deleteZeroErrorFreeWorkspace(QString& zeroFreeWorkspace);
Steve Williams
committed
private:
QLineEdit *m_fNameEdit;
QListWidget *m_workspaces;
QCheckBox *m_append;
Steve Williams
committed
QString m_lastName;
bool m_saveAsZeroErrorFree;
Steve Williams
committed
QHash<QCheckBox * const, QString> m_savFormats;
typedef QHash<QCheckBox * const, QString>::const_iterator SavFormatsConstIt;
Steve Williams
committed
void setupLine1(QHBoxLayout * const lineOne);
Steve Williams
committed
void setupLine2(QHBoxLayout * const lineTwo, const QHash<const QCheckBox * const, QString> & defSavs);
Steve Williams
committed
void readSettings();
void setFileName(const QString & newName);
Steve Williams
committed
void setupFormatTicks(const QHash<const QCheckBox * const, QString> & defSavs);
Steve Williams
committed
void saveSettings() const;
Steve Williams
committed
void addButtonsDisab(int row);
void closeEvent(QCloseEvent *event) override;
QString saveList(const QList<QListWidgetItem*> & list, const QString & algorithm, QString fileBase, bool toAppend, QHash<QString, QString> workspaceMap);
QHash<QString, QString> provideZeroFreeWorkspaces(const QListWidget * workspaces);
void removeZeroFreeWorkspaces(QHash<QString, QString> workspaces);
Steve Williams
committed
private slots:
void saveSel();
Steve Williams
committed
void setFileName(int row);
Steve Williams
committed
void saveFileBrowse();
};
}
}
#endif //MANTIDQTMANTIDWIDGETS_SAVEWORKSPACES_H_