28 #include <qapplication.h>
33 #include <type_traits>
36 #include <yui/YSimpleEventHandler.h>
37 #include <yui/YCommandLine.h>
39 #define YQWidgetMargin 4
40 #define YQWidgetSpacing 4
41 #define YQButtonBorder 3
47 #define pclass(ptr) std::remove_reference<decltype(*ptr)>::type
73 YQUI(
bool withThreads,
bool topmostConstructor =
true );
114 virtual YApplication * createApplication();
143 {
return _eventHandler.eventPendingFor( widget ); }
309 QIcon
loadIcon(
const string & iconName )
const;
335 virtual void idleLoop(
int fd_ycp );
362 QMap<QString, int> screenShotNo;
369 bool _received_ycp_command;
372 QTimer * _busyCursorTimer;
374 YSimpleEventHandler _eventHandler;
377 bool _leftHandedMouse;
378 bool _askedForLeftHandedMouse;
383 QString _applicationTitle;
404 void slotBusyCursor();
405 void slotReceivedYCPCommand();
415 YUI * createUI(
bool withThreads );
virtual void idleLoop(int fd_ycp)
Idle around until fd_ycp is readable and handle repaints.
void probeX11Display(const YCommandLine &cmdLine)
Probe the X11 display.
virtual void deleteNotify(YWidget *widget)
Notification that a widget is being deleted.
void sendEvent(YEvent *event)
Widget event handlers (slots) call this when an event occured that should be the answer to a UserInpu...
void busyCursor()
Show mouse cursor indicating busy state.
void processCommandLineArgs(int argc, char **argv)
Handle command line args.
YQUI(bool withThreads, bool topmostConstructor=true)
Constructors.
YEvent * consumePendingEvent()
Return the pending event, if there is one, and mark it as "consumed".
virtual void uiThreadDestructor()
Destroy whatever needs to be destroyed within the UI thread.
bool fullscreen() const
Return 'true' if defaultsize windows should use the full screen.
virtual void blockEvents(bool block=true)
Block (or unblock) events.
bool close()
Application shutdown.
virtual ~YQUI()
Destructor.
void timeoutBusyCursor()
Show mouse cursor indicating busy state if the UI is unable to respond to user input for more than a ...
static void setTextdomain(const char *domain)
Initialize and set a textdomain for gettext()
void normalCursor()
Show normal mouse cursor not indicating busy status.
virtual void initUI()
Post-constructor initialization.
virtual YWidgetFactory * createWidgetFactory()
Create the widget factory that provides all the createXY() methods for standard (mandatory,...
void askPlayMacro()
Open file selection box and ask for a macro file to play (activated by Ctrl-Shift-Alt-P)
Helper class that acts as a Qt signal receiver for YQUI.
void receivedYCPCommand()
Notification that a YCP command has been received on fd_ycp to leave idleLoop()
void raiseFatalError()
Raise a fatal UI error.
static YQUI * ui()
Access the global Qt-UI.
virtual bool eventsBlocked() const
Returns 'true' if events are currently blocked.
bool fatalError() const
Returns 'true' if the UI had a fatal error that requires the application to abort.
int defaultSize(YUIDimension dim) const
Returns size for opt(defaultsize) dialogs (in one dimension).
void forceUnblockEvents()
Force unblocking all events, no matter how many times blockEvents() has This returns 0 if there is no...
bool eventPendingFor(YWidget *widget) const
Returns 'true' if there is any event pending for the specified widget.
bool noBorder() const
Return 'true' if defaultsize windows should not get window manager borders / frames.
void setApplicationTitle(const QString &title)
Sets the application name for the window title.
YEvent * pendingEvent() const
Returns the last event that isn't processed yet or 0 if there is none.
static YQApplication * yqApp()
Return the global YApplication object as YQApplication.
void askConfigureLogging()
Open dialog to configure logging.
void makeScreenShot(std::string filename)
Make a screen shot in .png format and save it to 'filename'.
void askSaveLogs()
Open file selection box and let the user save y2logs to that location.
virtual YEvent * runPkgSelection(YWidget *packageSelector)
UI-specific runPkgSeleciton method: Start the package selection.
void askSendWidgetID()
Open a pop-up dialog to ask the user for a widget ID and then send it with sendWidgetID().
QString applicationTitle()
Returns the application name for the window title (e.g.
void toggleRecordMacro()
Toggle macro recording (activated by Ctrl-Shift-Alt-M): Stop macro recording if it is in progress,...
virtual YOptionalWidgetFactory * createOptionalWidgetFactory()
Create the widget factory that provides all the createXY() methods for optional ("special") widgets a...
void calcDefaultSize()
Calculate size of opt(defaultsize) dialogs.
QIcon loadIcon(const string &iconName) const
Load an icon.