You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
308 lines
9.1 KiB
308 lines
9.1 KiB
/*
|
|
* This file is part of the Polkit-tqt project
|
|
* Copyright (C) 2009 Daniel Nicoletti <dantti85-pk@yahoo.com.br>
|
|
* Copyright (C) 2009 Dario Freddi <drf@kde.org>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef POLKIT_TQT_GUI_ACTION_H
|
|
#define POLKIT_TQT_GUI_ACTION_H
|
|
|
|
#include "polkit-tqt-export.h"
|
|
|
|
#include <tqaction.h>
|
|
|
|
|
|
namespace PolkitTQt
|
|
{
|
|
|
|
namespace Gui
|
|
{
|
|
|
|
/**
|
|
* \class Action polkit-tqt-gui-action.h Action
|
|
* \author Daniel Nicoletti <dantti85-pk@yahoo.com.br>
|
|
* \author Dario Freddi <drf@kde.org>
|
|
*
|
|
* \brief Class used to manage actions
|
|
*
|
|
* This class is an interface around PolicyKit Actions.
|
|
* By using this class, you are able to track the result of a
|
|
* given action.
|
|
*
|
|
* Most of the times, you would want to use this class combined
|
|
* with a TQButton. In this case, you can use the more
|
|
* comfortable ActionButton class that manages button's properties
|
|
* update for you.
|
|
*
|
|
* \see ActionButton
|
|
*/
|
|
class POLKIT_TQT_EXPORT Action : public TQAction
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum States
|
|
{
|
|
None = 0,
|
|
SelfBlocked = 1,
|
|
Yes = 2,
|
|
No = 4,
|
|
Auth = 8,
|
|
// Future usage = 16,
|
|
// Future usage = 32,
|
|
// Future usage = 64,
|
|
// Future usage = 128,
|
|
// Future usage = 256,
|
|
All = 512
|
|
};
|
|
|
|
/**
|
|
* Constructs a new Action item
|
|
*
|
|
* \param actionId the PolicyKit action Id (e.g.: org.freedesktop.policykit.read)
|
|
* \param parent the object parent
|
|
*/
|
|
explicit Action(const TQString& actionId = TQString::null, TQObject *parent = 0);
|
|
|
|
~Action();
|
|
|
|
signals:
|
|
/**
|
|
* Emitted when the PolicyKit result (PolKitResult)
|
|
* for the given action or the internal data changes
|
|
* (i.e. the user called one of the set methods).
|
|
* You should connect to this signal if you want
|
|
* to track these changes.
|
|
*/
|
|
void dataChanged();
|
|
|
|
/**
|
|
* Emitted when using this class as a proxy for a given
|
|
* action, It's only emitted if the activate() slot is
|
|
* called and the auth permits the action
|
|
*
|
|
* \see activate()
|
|
*/
|
|
void authorized();
|
|
|
|
public slots:
|
|
/**
|
|
* Use this slot if you want to activate the action.
|
|
* authorized() will be emitted if the action gets authorized.
|
|
*
|
|
* \return \c true if the caller can do the action
|
|
*
|
|
* \see authorized()
|
|
*/
|
|
bool activate();
|
|
|
|
/**
|
|
* Defines the checked state. The opposite state will
|
|
* trigger authentication for this actions. For example, if
|
|
* you set this to \c true, when the action's checked state
|
|
* will become \c false, the authentication will be triggered.
|
|
*
|
|
* \param checked the new checked state
|
|
*/
|
|
void setChecked(bool checked);
|
|
|
|
/**
|
|
* This method can be used to revoke the authorization
|
|
* obtained for this action.
|
|
*/
|
|
void revoke();
|
|
|
|
public:
|
|
/**
|
|
* Changes the action being tracked
|
|
*
|
|
* \param actionId The new action ID
|
|
*/
|
|
void setPolkitAction(const TQString &actionId);
|
|
|
|
/**
|
|
* Returns the current action ID.
|
|
*
|
|
* \return The action ID
|
|
*
|
|
*/
|
|
TQString actionId() const;
|
|
|
|
/**
|
|
* Sets the text for the current action. This will
|
|
* be shown only in the states specified in the \c states parameter.
|
|
* \param text the new text for the action
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setText(const TQString &text, States states = All);
|
|
|
|
/**
|
|
* Sets the tooltip for the current action. This will
|
|
* be shown only in the states specified in the \c states parameter.
|
|
* \param toolTip the new tooltip for the action
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setToolTip(const TQString &toolTip, States states = All);
|
|
|
|
/**
|
|
* Sets the whatsthis for the current action. This will
|
|
* be shown only in the states specified in the \c states parameter.
|
|
* \param whatsThis the new whatsthis for the action
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setWhatsThis(const TQString &whatsThis, States states = All);
|
|
|
|
/**
|
|
* Sets the iconset for the current action. This will
|
|
* be shown only in the states specified in the \c states parameter.
|
|
* \note You need to pass a TQIconSet here. You can easily
|
|
* create one from a Pixmap
|
|
* \param iconset the new icon for the action
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setIconSet(const TQIconSet &iconset, States states = All);
|
|
|
|
/**
|
|
* Sets whether the current action is visible or not. This will
|
|
* be applied only in the states specified in the \c states parameter.
|
|
* \param visible visibility of the action
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setVisible(bool visible, States states = All);
|
|
|
|
/**
|
|
* Sets whether the current action is enabled or not. This will
|
|
* be shown only in the states specified in the \c states parameter.
|
|
* \param enabled whether the Action will be enabled or not
|
|
* \param states the states of the Polkit action on which the setting
|
|
* will be applied
|
|
*/
|
|
void setEnabled(bool enabled, States states = All);
|
|
|
|
/**
|
|
* This function sets the process id of the target that
|
|
* should receive the authorization. Set this to 0 to set
|
|
* the current process as the target.
|
|
*
|
|
* \param pid The target process id; 0 if it is the current process
|
|
*/
|
|
void setTargetPID(TQ_LONG pid);
|
|
|
|
/**
|
|
* Gets the text of the action when it is in the specified state
|
|
*
|
|
* \note Passing None will return the current value
|
|
* \param state The state to be checked
|
|
* \returns The text shown when the action is in the specified state
|
|
*/
|
|
TQString text(States state = None) const;
|
|
|
|
/**
|
|
* Gets the tooltip of the action when it is in the specified state
|
|
*
|
|
* \note Passing None will return the current value
|
|
* \param state The state to be checked
|
|
* \returns The tooltip shown when the action is in the specified state
|
|
*/
|
|
TQString toolTip(States state = None) const;
|
|
|
|
/**
|
|
* Gets the whatsThis of the action when it is in the specified state
|
|
*
|
|
* \param state The state to be checked
|
|
* \returns The whatsThis shown when the action is in the specified state
|
|
*/
|
|
TQString whatsThis(States state = None) const;
|
|
|
|
/**
|
|
* Gets the iconset of the action when it is in the specified state
|
|
*
|
|
* \note Passing None will return the current value
|
|
* \param state The state to be checked
|
|
* \returns The iconset shown when the action is in the specified state
|
|
*/
|
|
TQIconSet iconSet(States state = None) const;
|
|
|
|
/**
|
|
* Gets whether the action is visible or not when it is in the specified state
|
|
*
|
|
* \note Passing None will return the current value
|
|
* \param state The state to be checked
|
|
* \returns Whether the action is visible or not in the specified state
|
|
*/
|
|
bool isVisible(States state = None) const;
|
|
|
|
/**
|
|
* Gets whether the action is enabled or not when it is in the specified state
|
|
*
|
|
* \note Passing None will return the current value
|
|
* \param state The state to be checked
|
|
* \returns Whether the action is enabled or not in the specified state
|
|
*/
|
|
bool isEnabled(States state = None) const;
|
|
|
|
/**
|
|
* \see setTargetPID
|
|
*/
|
|
TQ_LONG targetPID() const;
|
|
|
|
/**
|
|
* This method can be used to check the if the current action
|
|
* can be performed (i.e. PolKitResult is YES).
|
|
* \note This method does not call the authentication dialog, use
|
|
* activate() instead
|
|
* \return \c true if the action can be performed
|
|
*/
|
|
bool isAllowed() const;
|
|
|
|
/**
|
|
* This method compares a PolicyKit action Id with the
|
|
* current one of the object.
|
|
*
|
|
* \see actionId()
|
|
*
|
|
* \param actionId the action Id to compare
|
|
*
|
|
* \return \c true if the actionId is the same as this object's one
|
|
*/
|
|
bool is(const TQString &actionId) const;
|
|
|
|
private:
|
|
// Disable copy
|
|
Action(const Action&);
|
|
Action& operator=(const Action&);
|
|
|
|
class Private;
|
|
Private *const d;
|
|
|
|
private slots:
|
|
void slotConfigChanged();
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|