/** \mainpage Polkit-tqt - TQt wrapper around polkit-1 \section polkit-tqt_overview Overview polkit-tqt aims to make it easy for TQt developers to take advantage of polkit API. It is a convenience wrapper around TQAction and TQButton that lets you integrate those two components easily with polkit. polkit-tqt is split in three libraries: polkit-tqt-core, polkit-tqt-gui and polkit-tqt-agent \b polkit-tqt-core lets you control actions and authentication without a GUI, with some very simple functions. It also lets you retrieve and control useful informations on the polkit authority. You will be mostly interested in the \c Authority class. \b polkit-tqt-gui lets you easily associate GUI items with polkit actions. Through some simple wrapper classes you are able to associate TQAction and TQButton to a polkit action, and get their properties changed accordingly to polkit's result. It includes the classes Action, ActionButton and ActionButtons \b polkit-tqt-agent lets you write your own polkit authentication agents in a very simple way. \b A sample usage of polkit-tqt can be found in \ref polkit-tqt_example \page polkit-tqt-example Polkit-tqt usage example You can find an example usage of Polkit-tqt in the examples/ dir. You can build it by passing \c -DBUILD_EXAMPLES=TRUE to your cmake line. It demonstrates how easy it is to integrate polkit support in an existing application. Let's see some details about it: \code // Previously defined TQPushButton kickPB = new TQPushButton(privateLayoutWidget, "kickPB"); ... // Setup polkit tqt action ActionButton *bt; bt = new ActionButton(kickPB, "org.tqt.policykit.examples.kick", this); bt->setText("Kick!"); // here we set the behavior of PolKitResult = No bt->setText("Can't kick", Action::No); bt->setVisible(true, Action::No); bt->setEnabled(true, Action::No); bt->setIconSet(TQPixmap("./icons/custom-no.png"), Action::No); bt->setToolTip("If your admin wasn't annoying, you could do this", Action::No); // here we set the behavior of PolKitResult = Auth bt->setVisible(true, Action::Auth); bt->setEnabled(true, Action::Auth); bt->setText("Kick?", Action::Auth); bt->setIcon(TQPixmap("./icons/action-locked-default.png"), Action::Auth); bt->setToolTip("Only card carrying tweakers can do this!", Action::Auth); // here we set the behavior of PolKitResult = Yes bt->setVisible(true, Action::Yes); bt->setEnabled(true, Action::Yes); bt->setText("Kick!", Action::Yes); bt->setIcon(TQPixmap("./icons/custom-yes.png"), Action::Yes); bt->setToolTip("Go ahead, kick kick kick!", Action::Yes); \endcode This small paragraph sets up an action button using an existing button already defined, \c kickPB. As you can see, you can set custom properties on your button depending on the action status/result. The code is mostly self-explainatory. \code bt = new ActionButtons(TQValueList() << listenPB << listenCB, "org.tqt.policykit.examples.listen", this); bt->setIcon(TQPixmap("./icons/action-locked.png")); bt->setIcon(TQPixmap("./icons/action-unlocked.png"), Action::Yes); bt->setText("Click to make changes..."); \endcode This demonstrates the use of ActionButtons, that lets you associate multiple buttons with a single action with extreme ease. \c listenPB and \c listenCB are kept in sync with the action. \code connect(bt, SIGNAL(activated()), this, SLOT(activateAction())); connect(bt, SIGNAL(clicked(TQButton*, bool)), bt, SLOT(activate())); connect(bt, SIGNAL(authorized()), this, SLOT(actionActivated())); \endcode Those three signals are all you need to control the action and the activation. Action::activated() lets you start the activation/revoke when needed, ActionButton::clicked() lets you do the same thing with even more ease, just by manually connecting the signal to ActionButton::activate(), and Action::authorized() signal notifies you when polkit has authorized you to perform the action. As you can see, usage of polkit-tqt is extremely simple. Have a look at the complete example and to the API Docs for more details. */ // DOXYGEN_PROJECTVERSION=0.96.1 // DOXYGEN_PROJECTNAME=polkittqt // DOXYGEN_ENABLE=YES