X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiView.h;h=e4ab76331dc48fa160cc14215487bf905bafc56e;hb=8381d36098fb9244c15dba6b93cf509996c9c02e;hp=509807d2c8f6fe832a513656f298899e2dd2dcc2;hpb=3a1f656e4e60091daaf5cad91c970ade945ef63d;p=lyx.git diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index 509807d2c8..e4ab76331d 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -7,6 +7,7 @@ * \author Lars Gullik Bjornes * \author John Levon * \author Abdelrazak Younes + * \author Peter Kümmel * * Full author contact details are available in file CREDITS. */ @@ -14,22 +15,19 @@ #ifndef GUI_VIEW_H #define GUI_VIEW_H -// Must be here because of moc. -#include - #include "frontends/LyXView.h" -#include "funcrequest.h" +#include "FuncRequest.h" -#include -#include #include #include +#include +#include +class QDragEnterEvent; +class QDropEvent; +class QMenu; class QToolBar; -//class FuncRequest; - -//class string; namespace lyx { namespace frontend { @@ -42,57 +40,65 @@ QWidget* mainWindow(); * GuiView - Qt4 implementation of LyXView * * qt4-private implementation of the main LyX window. + * + * Note: any QObject emits a destroyed(QObject *) Qt signal when it + * is deleted.This might be useful for closing other dialogs + * depending on a given GuiView. */ class GuiView : public QMainWindow, public LyXView { Q_OBJECT public: /// create a main window of the given dimensions - GuiView(); + GuiView(int id); ~GuiView(); - /// initialize the object virtual void init(); - - /// + virtual void close(); + virtual void setFocus(); virtual void setGeometry( unsigned int width, unsigned int height, int posx, int posy, - bool maximize); + int maximized, + unsigned int iconSizeXY, + const std::string & geometryArg); + virtual void saveGeometry(); + virtual void busy(bool); + /// add toolbar, if newline==true, add a toolbar break before the toolbar + Toolbars::ToolbarPtr makeToolbar(ToolbarInfo const & tbinfo, bool newline); + virtual void updateStatusBar(); + virtual void message(docstring const & str); + virtual void clearMessage(); + virtual bool hasFocus() const; + void showMiniBuffer(bool); + void openMenu(docstring const &); /// show - display the top-level window void show(); - /// show busy cursor - virtual void busy(bool) const; - - Toolbars::ToolbarPtr makeToolbar(ToolbarBackend::Toolbar const & tbb); - - /// display a status message - virtual void message(lyx::docstring const & str); - - /// clear status message - virtual void clearMessage(); - - /// update the status bar - virtual void updateStatusBar(); - /// add the command buffer void addCommandBuffer(QToolBar * toolbar); /// menu item has been selected void activated(FuncRequest const &); - /// returns true if this view has the focus. - virtual bool hasFocus() const; + QMenu* createPopupMenu(); + +Q_SIGNALS: + void closing(int); public Q_SLOTS: /// idle timeout void update_view_state_qt(); - /// populate a toplevel menu and all its children on demand - void updateMenu(QAction *); + void currentTabChanged(int index); + void closeCurrentTab(); + + /// slots to change the icon size + void smallSizedIcons(); + void normalSizedIcons(); + void bigSizedIcons(); protected: /// make sure we quit cleanly @@ -104,26 +110,62 @@ protected: /// virtual void moveEvent(QMoveEvent * e); + /// \return the \c Workarea associated to \p Buffer + /// \retval 0 if no \c WorkArea is found. + WorkArea * workArea(Buffer & buffer); + + /// Add a \c WorkArea + /// \return the \c Workarea associated to \p Buffer + /// \retval 0 if no \c WorkArea is found. + WorkArea * addWorkArea(Buffer & buffer); + void setCurrentWorkArea(WorkArea * work_area); + void removeWorkArea(WorkArea * work_area); + WorkArea const * currentWorkArea() const; + WorkArea * currentWorkArea(); + private: - /// focus the command buffer widget - void focus_command_widget(); + /// + void dragEnterEvent(QDragEnterEvent * ev); + /// + void dropEvent(QDropEvent * ev); /** * setWindowTitle - set title of window * @param t main window title * @param it iconified (short) title */ - virtual void setWindowTitle(lyx::docstring const & t, lyx::docstring const & it); + virtual void setWindowTitle(docstring const & t, docstring const & it); + + /// in order to catch Tab key press. + bool event(QEvent * e); + bool focusNextPrevChild(bool); QTimer statusbar_timer_; /// command buffer QCommandBuffer * commandbuffer_; + /// are we quitting by the menu? + bool quitting_by_menu_; + /// - void updateFloatingGeometry(); + QRect updateFloatingGeometry(); /// QRect floatingGeometry_; + + void setIconSize(unsigned int size); + + struct ToolbarSize { + int top_width; + int bottom_width; + int left_height; + int right_height; + }; + + ToolbarSize toolbarSize_; + + struct GuiViewPrivate; + GuiViewPrivate& d; }; } // namespace frontend