cutter/src/dialogs/EditMethodDialog.h

73 lines
2.0 KiB
C
Raw Normal View History

#ifndef EDITMETHODDIALOG_H
#define EDITMETHODDIALOG_H
#include <QDialog>
#include <memory>
#include "core/Cutter.h"
namespace Ui {
class EditMethodDialog;
}
class QComboBox;
class EditMethodDialog : public QDialog
{
Q_OBJECT
public:
2019-03-06 20:30:39 +00:00
/**
* @param classFixed whether the user should be able to change the class. If false, a QComboBox will be shown, otherwise a plain QLabel.
2019-02-02 13:14:39 +00:00
*/
2019-02-02 10:59:58 +00:00
explicit EditMethodDialog(bool classFixed, QWidget *parent = nullptr);
~EditMethodDialog();
void setClass(const QString &className);
void setMethod(const AnalMethodDescription &desc);
QString getClass() const;
AnalMethodDescription getMethod() const;
2019-03-06 20:30:39 +00:00
/**
* @brief Helper function to display the dialog
2019-02-02 13:14:39 +00:00
*
2019-03-06 20:30:39 +00:00
* @param title title of the dialog
* @param classFixed whether the user should be able to change the class
* @param className initial class name, will be overwritten if the user changed the class
* @param desc initial data for the method information
* @return whether the dialog was accepted by the user
2019-02-02 13:14:39 +00:00
*/
static bool showDialog(const QString &title, bool classFixed, QString *className, AnalMethodDescription *desc, QWidget *parent = nullptr);
2019-03-06 20:30:39 +00:00
/**
* @brief Show the dialog to add a new method a given class
2019-02-02 13:14:39 +00:00
*/
static void newMethod(QString className = nullptr, const QString &meth = QString(), QWidget *parent = nullptr);
2019-02-02 13:14:39 +00:00
2019-03-06 20:30:39 +00:00
/**
* @brief Show the dialog to edit a given method of a given class
2019-02-02 13:14:39 +00:00
*/
static void editMethod(const QString &className, const QString &meth, QWidget *parent = nullptr);
private slots:
void on_buttonBox_accepted();
void on_buttonBox_rejected();
void updateVirtualUI();
void validateInput();
private:
std::unique_ptr<Ui::EditMethodDialog> ui;
2019-02-02 10:59:58 +00:00
QComboBox *classComboBox = nullptr;
QLabel *classLabel = nullptr;
2019-03-06 20:30:39 +00:00
/**
2019-02-02 13:14:39 +00:00
* This will only be used when the dialog was created with classFixed = true in order to remember the class name.
*/
2019-02-02 10:59:58 +00:00
QString fixedClass;
bool inputValid();
};
#endif // EDITMETHODDIALOG_H