• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kio

knotifydialog.h

Go to the documentation of this file.
00001 /*
00002   Copyright (C) 2000,2002 Carsten Pfeiffer <pfeiffer@kde.org>
00003   Copyright (C) 2002 Neil Stevens <neil@qualityassistant.com>
00004 
00005   This program is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Library General Public
00007   License version 2 as published by the Free Software Foundation;
00008 
00009   This program is distributed in the hope that it will be useful,
00010   but WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012   General Public License for more details.
00013 
00014   You should have received a copy of the GNU Library General Public License
00015   along with this library,  If not, write to the Free Software Foundation,
00016   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00017 */
00018 
00019 #ifndef KNOTIFYDIALOG_H
00020 #define KNOTIFYDIALOG_H
00021 
00022 #include <klistview.h>
00023 #include <kdialogbase.h>
00024 #include <kinstance.h>
00025 #include <kglobal.h>
00026 
00027 #include "knotifywidgetbase.h"
00028 
00029 class QShowEvent;
00030 
00031 namespace KNotify
00032 {
00033     class KNotifyWidget;
00034 }
00035 
00052 class KIO_EXPORT KNotifyDialog : public KDialogBase
00053 {
00054     Q_OBJECT
00055 
00056 public:
00071     KNotifyDialog( QWidget *parent = 0, const char *name = 0,
00072                    bool modal = true,
00073                    const KAboutData *aboutData =
00074                    KGlobal::instance()->aboutData() );
00078     virtual ~KNotifyDialog();
00079 
00090     static int configure( QWidget *parent = 0, const char *name = 0,
00091                           const KAboutData *aboutData = KGlobal::instance()->aboutData() );
00092 
00102     virtual void addApplicationEvents( const char *appName );
00103 
00113     virtual void addApplicationEvents( const QString& path );
00114 
00119     virtual void clearApplicationEvents();
00120 
00121 private slots:
00122     void slotDefault();
00123 
00124 private:
00125     enum
00126     {
00127         COL_FILENAME = 1
00128     };
00129 
00130     void updateView();
00131 
00132     KNotify::KNotifyWidget * m_notifyWidget;
00133 
00134     class Private;
00135     Private *d;
00136 };
00137 
00138 
00139 namespace KNotify
00140 {
00141     class Application;
00142     class Event;
00143     class ListViewItem;
00144     typedef QPtrList<Event> EventList;
00145     typedef QPtrListIterator<Application> ApplicationListIterator;
00146     typedef QPtrListIterator<Event> EventListIterator;
00147 
00151     class KIO_EXPORT Application
00152     {
00153     public:
00154         Application( const QString &path );
00155         ~Application();
00156 
00157         QString text() const { return m_description; }
00158         QString icon() const { return m_icon; }
00159         const EventList& eventList();
00160         void reloadEvents( bool revertToDefaults = false );
00161         void save();
00162 
00163         QString appName() const { return m_appname; }
00164 
00165     private:
00166         QString m_icon;
00167         QString m_description;
00168         QString m_appname;
00169         EventList *m_events;
00170 
00171         KConfig *kc; // The file that defines the events.
00172         KConfig *config; // The file that contains the settings for the events
00173     };
00174 
00175 
00176     class KIO_EXPORT ApplicationList : public QPtrList<Application>
00177     {
00178         virtual int compareItems ( QPtrCollection::Item item1,
00179                                    QPtrCollection::Item item2 )
00180         {
00181             return (static_cast<Application*>( item1 )->text() >=
00182                 static_cast<Application*>( item2 )->text()) ? 1 : -1;
00183         }
00184     };
00185 
00189     class KIO_EXPORT KNotifyWidget : public KNotifyWidgetBase
00190     {
00191         Q_OBJECT
00192 
00193     public:
00194         KNotifyWidget( QWidget* parent = 0, const char* name = 0,
00195                        bool handleAllApps = false );
00196         ~KNotifyWidget();
00197 
00198         KListView * eventsView() {
00199             return m_listview;
00200         }
00201 
00202         void addVisibleApp( Application *app );
00203         ApplicationList& visibleApps() { return m_visibleApps; }
00204         ApplicationList& allApps() { return m_allApps; }
00205 
00211         Application * addApplicationEvents( const QString& path );
00212 
00213         void resetDefaults( bool ask );
00214         void sort( bool ascending = true );
00215 
00216     public slots:
00220         virtual void clear();
00226         virtual void clearVisible();
00227         virtual void save();
00228         virtual void showAdvanced( bool show );
00229         void toggleAdvanced();
00230 
00231 
00232     signals:
00233         void changed( bool hasChanges );
00234 
00235     protected:
00239         Event * currentEvent();
00240         virtual void showEvent( QShowEvent * );
00241         virtual void enableAll( int what, bool enable );
00242 
00243         void reload( bool revertToDefaults = false );
00244 
00245     protected slots:
00246         void playSound();
00247 
00248     private slots:
00249         void slotItemClicked( QListViewItem *item, const QPoint& point, 
00250                               int col );
00251         void slotEventChanged( QListViewItem * );
00252         void soundToggled( bool on );
00253         void loggingToggled( bool on );
00254         void executeToggled( bool on );
00255         void messageBoxChanged();
00256         void stderrToggled( bool on );
00257         void taskbarToggled( bool on );
00258 
00259         void soundFileChanged( const QString& text );
00260         void logfileChanged( const QString& text );
00261         void commandlineChanged( const QString& text );
00262 
00263         void openSoundDialog( KURLRequester * );
00264         void openLogDialog( KURLRequester * );
00265         void openExecDialog( KURLRequester * );
00266 
00267         void enableAll();
00268 
00269     private:
00270         void updateWidgets( ListViewItem *item );
00271         void updatePixmaps( ListViewItem *item );
00272 
00273         static QString makeRelative( const QString& );
00274         void addToView( const EventList& events );
00275         void widgetChanged( QListViewItem *item,
00276                             int what, bool on, QWidget *buddy = 0L );
00277         void selectItem( QListViewItem *item );
00278 
00279         ApplicationList m_visibleApps;
00280         ApplicationList m_allApps;
00281 
00282         class Private;
00283         Private *d;
00284 
00285     };
00286 
00287 
00290 
00291 
00295     class Event
00296     {
00297         friend class Application;
00298 
00299     public:
00300         QString text() const { return description; }
00301 
00302         int presentation;
00303         int dontShow;
00304         QString logfile;
00305         QString soundfile;
00306         QString commandline;
00307 
00308         const Application *application() const { return m_app; }
00309 
00310     private:
00311         Event( const Application *app ) {
00312             presentation = 0;
00313             dontShow = 0;
00314             m_app = app;
00315         }
00316         QString name;
00317         QString description;
00318         QString configGroup;
00319 
00320         const Application *m_app;
00321     };
00322 
00326     class ListViewItem : public QListViewItem
00327     {
00328     public:
00329         ListViewItem( QListView *view, Event *event );
00330 
00331         Event& event() { return *m_event; }
00332         virtual int compare (QListViewItem * i, int col, bool ascending) const;
00333 
00334     private:
00335         Event * m_event;
00336     };
00337 
00338 }
00339 
00340 
00341 #endif

kio

Skip menu "kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal