#define GUIAPPLICATION_H
#include "frontends/Application.h"
+#include "support/filetools.h"
#include <QApplication>
#include <QList>
+#ifdef QPA_XCB
+#include <QAbstractNativeEventFilter>
+#endif
class QAbstractItemModel;
class QIcon;
class QSessionManager;
+class QFont;
namespace lyx {
initialisation should be done before the instantiation of this class.
*/
class GuiApplication : public QApplication, public Application
+#ifdef QPA_XCB
+ , public QAbstractNativeEventFilter
+#endif
{
Q_OBJECT
/// \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();
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
//@}
/// return a suitable monospaced font name.
QString const typewriterFontName();
+ QFont const typewriterSystemFont();
+
///
void unregisterView(GuiView * gv);
///
/// Current ratio between physical pixels and device-independent pixels
double pixelRatio() const;
-
+
+ /// How to load image files
+ support::search_mode imageSearchMode() const {
+#if QT_VERSION >= 0x050000
+ 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();
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);
///
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);