X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiApplication.h;h=de6013d4c7e691fa127e128d9de5a37fcc0fbcb3;hb=1f10969bb5c5f36017bf5ba8671381b09945cf57;hp=58a46d67f8d0d5b3795e1a356496a390a70d333b;hpb=4d51ad339f952ddc51d2950440626eceb1350c8c;p=lyx.git diff --git a/src/frontends/qt4/GuiApplication.h b/src/frontends/qt4/GuiApplication.h index 58a46d67f8..de6013d4c7 100644 --- a/src/frontends/qt4/GuiApplication.h +++ b/src/frontends/qt4/GuiApplication.h @@ -18,10 +18,14 @@ #include #include +#ifdef QPA_XCB +#include +#endif class QAbstractItemModel; class QIcon; class QSessionManager; +class QFont; namespace lyx { @@ -47,6 +51,9 @@ There should be only one instance of this class. No Qt object initialisation should be done before the instantiation of this class. */ class GuiApplication : public QApplication, public Application +#ifdef QPA_XCB + , public QAbstractNativeEventFilter +#endif { Q_OBJECT @@ -56,7 +63,7 @@ public: /// \name Methods inherited from Application class //@{ - void dispatch(FuncRequest const &); + DispatchResult const & dispatch(FuncRequest const &); void dispatch(FuncRequest const &, DispatchResult & dr); FuncStatus getStatus(FuncRequest const & cmd) const; void restoreGuiSession(); @@ -101,6 +108,9 @@ public: void commitData(QSessionManager & sm); #ifdef Q_WS_X11 bool x11EventFilter(XEvent * ev); +#elif defined(QPA_XCB) + virtual bool nativeEventFilter(const QByteArray & eventType, void * message, + long * result) Q_DECL_OVERRIDE; #endif //@} @@ -136,6 +146,8 @@ public: /// return a suitable monospaced font name. QString const typewriterFontName(); + QFont const typewriterSystemFont(); + /// void unregisterView(GuiView * gv); /// @@ -147,12 +159,15 @@ public: /// How to load image files support::search_mode imageSearchMode() const { #if QT_VERSION >= 0x050000 - return support::check_hidpi; + return pixelRatio() > 1 ? support::check_hidpi : support::must_exist; #else return support::must_exist; #endif } + /// return true if the key is part of a shortcut + bool queryKeySym(KeySymbol const & key, KeyModifier state) const; + /// void processKeySym(KeySymbol const & key, KeyModifier state); /// return the status bar state string docstring viewStatusMessage(); @@ -206,6 +221,9 @@ private: void updateCurrentView(FuncRequest const & cmd, DispatchResult & dr); /// bool closeAllViews(); + /// Things that need to be done when the OSes session manager + /// requests a log out. + bool prepareAllViewsForLogout(); /// read the given ui (menu/toolbar) file bool readUIFile(QString const & name, bool include = false); /// @@ -236,7 +254,12 @@ extern GuiApplication * guiApp; QString iconName(FuncRequest const & f, bool unknown); /// \return the pixmap for the given path, name and extension. +/// in case of errors a warning is produced and an empty pixmap is returned. QPixmap getPixmap(QString const & path, QString const & name, QString const & ext); +/// Load the file at \param path and convert it to a pixmap. +/// \return true on success otherwise invalidate the pixmap and return false. +/// The caller is responsible for error reporting. +bool getPixmap(QPixmap & pixmap, QString const & path); /// \return an icon for the given action. QIcon getIcon(FuncRequest const & f, bool unknown);