lyx_mirror/src/frontends/qt/GuiDialog.h
Jean-Marc Lasgouttes c293be56bd Rename frontend qt4 to qt
In particular, the directory frontends/qt4 is renamed to frontends/qt.

Many configurations file have to be updated. All mentions of qt4 in
the source have been audited, and changed to qt if necessary.

The only part that has not been updated is the CMake build system.
2019-07-20 23:39:40 +02:00

125 lines
2.9 KiB
C++

// -*- C++ -*-
/**
* \file GuiDialog.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
*/
#ifndef GUIDIALOG_H
#define GUIDIALOG_H
#include "Dialog.h"
#include "ButtonController.h"
#include <QAbstractButton>
#include <QDialog>
namespace lyx {
namespace frontend {
/// Base class for historical LyX dialogs.
/**
* \warning New dialogs should use the leaner classes \c DialogView or
* \c DockView depending on the intent. Eventually, old dialogs should be
* converted to \c DialogView too.
*/
class GuiDialog : public QDialog, public Dialog
{
Q_OBJECT
public:
/// \param lv is the access point for the dialog to the LyX kernel.
/// \param name is the identifier given to the dialog by its parent
/// container.
/// \param title is the window title used for decoration.
GuiDialog(GuiView & lv, QString const & name, QString const & title);
virtual QWidget * asQWidget() { return this; }
virtual QWidget const * asQWidget() const { return this; }
public Q_SLOTS:
/** \name Buttons
* These methods are publicly accessible because they are invoked
* by the View when the user presses... guess what ;-)
*/
// Restore button clicked
void slotRestore();
// Restore Defaults button clicked
virtual void slotRestoreDefaults() {}
// OK button clicked
void slotOK();
// Apply button clicked
void slotApply();
// AutoApply checkbox clicked
void slotAutoApply();
// Close button clicked or closed from WindowManager
void slotClose();
// A collectiong slot for QDialogButtonBox
void slotButtonBox(QAbstractButton *);
///
void closeEvent(QCloseEvent * e);
protected Q_SLOTS:
void onBufferViewChanged() {};//override
public:
/** Check whether we may apply our data.
*
* The buttons are disabled if not and (re-)enabled if yes.
*/
void setButtonsValid(bool valid);
/** \name Dialog Components
* Methods to access the various components making up a dialog.
*/
//@{
ButtonController const & bc() const { return bc_; }
ButtonController & bc() { return bc_; }
//@}
/// the dialog has changed contents
virtual void changed();
virtual void enableView(bool enable);
/// default: do nothing
virtual void applyView() {}
/// default: do nothing
virtual void updateContents() {}
public:
/// is the dialog currently valid ?
virtual bool isValid() { return true; }
public:
/** When applying, it's useful to know whether the dialog is about
* to close or not (no point refreshing the display for example).
*/
bool isClosing() const { return is_closing_; }
///
bool needBufferOpen() const { return isBufferDependent(); }
/// Update the display of the dialog whilst it is still visible.
virtual void updateView();
private:
ButtonController bc_;
/// are we updating ?
bool updating_;
bool is_closing_;
};
} // namespace frontend
} // namespace lyx
#endif // GUIDIALOG_H