X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiView.h;h=428f9325f11b8173408ba2e90104973bb2560a7e;hb=50de85396c785a454fe07b77d815c57f3e462282;hp=e72ad8bde7f87cdeba5c70436e2e8b1a723255ea;hpb=c9c47c646451917b6a3e3dc77792dd02f0bf4082;p=lyx.git diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index e72ad8bde7..428f9325f1 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,109 +15,147 @@ #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 { -class QCommandBuffer; - -QWidget* mainWindow(); +QWidget * mainWindow(); /** * GuiView - Qt4 implementation of LyXView * * qt4-private implementation of the main LyX window. + * + * Note: a 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 { +class GuiViewBase : public QMainWindow, public LyXView +{ Q_OBJECT public: /// create a main window of the given dimensions - GuiView(Gui & owner); + GuiViewBase(int id); - ~GuiView(); + ~GuiViewBase(); - /// initialize the object virtual void init(); - - /// 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(std::string const & str); - - /// clear status message - virtual void clearMessage(); - - /// update the status bar + virtual void close(); + virtual void setFocus(); + virtual void setGeometry( + unsigned int width, + unsigned int height, + int posx, int posy, + 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 &); - /// add the command buffer - void addCommandBuffer(QToolBar * toolbar); + /// show - display the top-level window + void showView(); /// 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 virtual void closeEvent(QCloseEvent * e); - /// virtual void resizeEvent(QResizeEvent * e); - /// 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(std::string const & t, std::string 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