*
* \author Edwin Leuven
* \author John Levon
+ * \author Abdelrazak Younes
*
* Full author contact details are available in file CREDITS.
*/
#ifndef GUIPARAGRAPH_H
#define GUIPARAGRAPH_H
-#include "ControlParagraph.h"
-#include "Layout.h"
+#include "DialogView.h"
+#include "GuiView.h"
+#include "qt_helpers.h"
#include "ui_ParagraphUi.h"
-#include <QWidget>
+#include "Layout.h"
+#include "ParagraphParameters.h"
+
+#include <QDialog>
+#include <QShowEvent>
+#include <QGridLayout>
#include <map>
namespace lyx {
namespace frontend {
-class GuiParagraph : public QWidget, public Ui::ParagraphUi
+class GuiParagraph
+ : public DialogView, public Ui::ParagraphUi
{
Q_OBJECT
public:
- GuiParagraph(ControlParagraph & controller);
+ GuiParagraph(GuiView & lv);
- /// update
+ /// Dialog inherited methods
+ //@{
+ void applyView();
void updateView();
+ void dispatchParams();
+ void enableView(bool enable);
+ bool isBufferDependent() const { return true; }
+ virtual FuncCode getLfun() const { return LFUN_PARAGRAPH_PARAMS_APPLY; }
+ void saveSession() const;
+ void restoreSession();
+ //@}
private:
///
///
void alignmentToRadioButtons(LyXAlignment align = LYX_ALIGN_LAYOUT);
///
- LyXAlignment getAlignmentFromDialog();
+ LyXAlignment getAlignmentFromDialog() const;
///
- typedef std::map<LyXAlignment, QRadioButton *> RadioMap;
- RadioMap radioMap;
-
- ControlParagraph & controller_;
+ ParagraphParameters const & params() const;
+ ///
+ bool haveMultiParSelection() const;
+ ///
+ bool canIndent() const;
+ ///
+ bool hasLabelwidth() const;
+ ///
+ LyXAlignment alignPossible() const;
+ ///
+ LyXAlignment alignDefault() const;
- QString const alignDefaultLabel;
private Q_SLOTS:
///
void changed();
void on_linespacing_activated(int);
/// Apply changes
void on_applyPB_clicked();
+ /// Apply changes and close
+ void on_okPB_clicked();
+ /// Close/Cancel dialog
+ void on_closePB_clicked();
+
+private:
+ ///
+ typedef std::map<LyXAlignment, QRadioButton *> RadioMap;
+ ///
+ RadioMap radioMap_;
+
+ ///
+ QString alignDefaultLabel_;
+ ///
+ ParagraphParameters params_;
};
} // namespace frontend