* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
+ * \author Asger Alstrup
* \author John Levon
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
*/
#ifndef GUIEXTERNAL_H
#define GUIEXTERNAL_H
-#include "GuiDialogView.h"
-#include "ControlExternal.h"
+#include "GuiDialog.h"
#include "ui_ExternalUi.h"
-#include <QCloseEvent>
-#include <QDialog>
+#include "support/types.h"
+#include "insets/InsetExternal.h"
+
+#include <string>
+#include <vector>
#include <map>
namespace lyx {
-namespace frontend {
-class GuiExternal;
+namespace external {
+
+class Template;
+class RotationDataType;
+
+} // namespace external
-class GuiExternalDialog : public QDialog, public Ui::ExternalUi
+namespace frontend {
+
+class GuiExternal : public GuiDialog, public Ui::ExternalUi
{
Q_OBJECT
-public:
- GuiExternalDialog(GuiExternal * form);
-
- virtual void show();
-protected Q_SLOTS:
- virtual void bbChanged();
- virtual void browseClicked();
- virtual void change_adaptor();
- virtual void editClicked();
- virtual void extraChanged(const QString&);
- virtual void formatChanged(const QString&);
- virtual void getbbClicked();
- virtual void sizeChanged();
- virtual void templateChanged();
- virtual void widthUnitChanged();
-
-protected:
- virtual void closeEvent(QCloseEvent * e);
-private:
- bool activateAspectratio() const;
- GuiExternal * form_;
-};
+public:
+ GuiExternal(GuiView & lv);
+
+private Q_SLOTS:
+ void bbChanged();
+ void browseClicked();
+ void change_adaptor();
+ void editClicked();
+ void extraChanged(const QString&);
+ void formatChanged(const QString&);
+ void getbbClicked();
+ void sizeChanged();
+ void templateChanged();
+ void widthUnitChanged();
-class GuiExternal : public GuiView<GuiExternalDialog>
-{
public:
- friend class GuiExternalDialog;
-
- GuiExternal(Dialog &);
- /// parent controller
- ControlExternal & controller()
- { return static_cast<ControlExternal &>(this->getController()); }
- /// parent controller
- ControlExternal const & controller() const
- { return static_cast<ControlExternal const &>(this->getController()); }
///
typedef std::map<std::string, QString> MapType;
+
private:
+ ///
+ bool activateAspectratio() const;
/// Apply changes
- virtual void apply();
+ void applyView();
/// update
- virtual void update_contents();
- /// build the dialog
- virtual void build_dialog();
-
+ void updateContents();
/// Helper function called when the template is changed.
void updateTemplate();
/// get bounding box from file
void getBB();
+ ///
MapType extra_;
+ ///
+ bool initialiseParams(std::string const & data);
+ /// clean-up on hide.
+ void clearParams();
+ /// clean-up on hide.
+ void dispatchParams();
+ ///
+ bool isBufferDependent() const { return true; }
+
+ ///
+ void editExternal();
+ ///
+ std::vector<std::string> const getTemplates() const;
+ ///
+ int getTemplateNumber(std::string const &) const;
+ ///
+ external::Template getTemplate(int) const;
+ ///
+ std::string const
+ getTemplateFilters(std::string const & template_name) const;
+ ///
+ docstring const browse(docstring const & input_file,
+ docstring const & template_name) const;
+
+ /// Read the Bounding Box from a eps or ps-file
+ std::string const readBB(std::string const & file);
+ ///
+private:
+ ///
+ InsetExternalParams params_;
+ bool bbChanged_;
};
} // namespace frontend