#include <QApplication>
#include <QList>
+#ifdef QPA_XCB
+#include <QAbstractNativeEventFilter>
+#endif
class QAbstractItemModel;
class QIcon;
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();
//@{
bool notify(QObject * receiver, QEvent * event);
void commitData(QSessionManager & sm);
- // FIXME QT5
#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
//@}
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);