From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdeui/kauthicon.h | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 kdeui/kauthicon.h (limited to 'kdeui/kauthicon.h') diff --git a/kdeui/kauthicon.h b/kdeui/kauthicon.h new file mode 100644 index 000000000..ddbbfe9d5 --- /dev/null +++ b/kdeui/kauthicon.h @@ -0,0 +1,173 @@ +/* This file is part of the KDE libraries + Copyright (c) 1999 Preston Brown + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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 _KAUTHICON_H +#define _KAUTHICON_H "$Id$" + +#include +#include +#include +#include + +#include + +class QHBoxLayout; +class QLabel; +class KAuthIconPrivate; + +/** + * @short A base class for authorization icon widgets + * + * This is the base class from which different authorization icon widget + * which actually do something should be derived. You can use these + * widgets to show that the user has (or doesn't have) the ability to do + * something, and why that is. + * + * One of the most useful things you can do with this is connect + * authChanged(bool) to setEnabled(bool) for a widget to turn it on and + * off depending on the status of whatever it is you are monitoring. + * + * @see KRootPermsIcon, KWritePermsIcon + * @author Preston Brown + */ +class KDEUI_EXPORT KAuthIcon : public QWidget +{ + Q_OBJECT + +public: + /** + * Constructor. + */ + KAuthIcon(QWidget *parent = 0, const char *name = 0); + ~KAuthIcon(); + + virtual QSize sizeHint() const; + /** + * return the status of whatever is being monitored. + */ + virtual bool status() const = 0; + +public slots: + /** + * Re-implement this method if you want the icon to update itself + * when something external has changed (i.e. a file on disk, uid/gid). + */ + virtual void updateStatus() = 0; + +signals: + /** + * this signal is emitted when authorization has changed from + * its previous state. + * @param authorized will be true if the type of authorization + * described by the icon is true, otherwise it will be false. + */ + void authChanged(bool authorized); + +protected: + QHBoxLayout *layout; + + QLabel *lockBox; + QLabel *lockLabel; + QPixmap lockPM; + QPixmap openLockPM; + QString lockText; + QString openLockText; + +protected: + virtual void virtual_hook( int id, void* data ); +private: + KAuthIconPrivate *d; +}; + +class KRootPermsIconPrivate; +/** + * Icon to show whether or not a user has root permissions. + * + * @see KAuthIcon + * @author Preston Brown + */ +class KDEUI_EXPORT KRootPermsIcon : public KAuthIcon +{ + Q_OBJECT + +public: + KRootPermsIcon(QWidget *parent = 0, const char *name = 0); + ~KRootPermsIcon(); + + /** + * return whether or not the current user has root permissions. + */ + bool status() const { return root; } + +public slots: + void updateStatus(); + +protected: + bool root; + +protected: + virtual void virtual_hook( int id, void* data ); +private: + KRootPermsIconPrivate *d; +}; + +class KWritePermsIconPrivate; +/** + * Auth icon for write permission display. + * + * @see KAuthIcon + * @author Preston Brown + */ +class KDEUI_EXPORT KWritePermsIcon : public KAuthIcon +{ + Q_OBJECT + Q_PROPERTY( QString fileName READ fileName WRITE setFileName ) + +public: + KWritePermsIcon(const QString & fileName, QWidget *parent = 0, const char *name = 0); + ~KWritePermsIcon(); + /** + * @return whether or not the monitored file is writable. + */ + bool status() const { return writable; } + + /** + * make the icon watch a new filename. + * @param fileName the new file to monitor / display status for. + */ + void setFileName(const QString & fileName) { fi.setFile(fileName); updateStatus(); } + + /** + * return the filename of the currently watched file. + * @since 3.4 + */ + QString fileName() const { return fi.fileName(); } + +public slots: + void updateStatus(); + +protected: + bool writable; + QFileInfo fi; + +protected: + virtual void virtual_hook( int id, void* data ); +private: + KWritePermsIconPrivate *d; +}; + +#endif -- cgit v1.2.1