mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-16 21:10:26 +00:00
c293be56bd
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.
125 lines
2.9 KiB
C++
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
|