kio Library API Documentation

knotifydialog.h

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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00019 #ifndef KNOTIFYDIALOG_H 00020 #define KNOTIFYDIALOG_H 00021 00022 #include <klistview.h> 00023 00024 #include <kdialogbase.h> 00025 #include <kinstance.h> 00026 #include <kglobal.h> 00027 00028 #include "knotifywidgetbase.h" 00029 00030 class QShowEvent; 00031 00032 namespace KNotify 00033 { 00034 class KNotifyWidget; 00035 } 00036 00053 class KNotifyDialog : public KDialogBase 00054 { 00055 Q_OBJECT 00056 00057 public: 00072 KNotifyDialog( QWidget *parent = 0, const char *name = 0, 00073 bool modal = true, 00074 const KAboutData *aboutData = 00075 KGlobal::instance()->aboutData() ); 00079 virtual ~KNotifyDialog(); 00080 00091 static int configure( QWidget *parent = 0, const char *name = 0, 00092 const KAboutData *aboutData = KGlobal::instance()->aboutData() ); 00093 00103 virtual void addApplicationEvents( const char *appName ); 00104 00114 virtual void addApplicationEvents( const QString& path ); 00115 00120 virtual void clearApplicationEvents(); 00121 00122 private slots: 00123 void slotDefault(); 00124 00125 private: 00126 enum 00127 { 00128 COL_FILENAME = 1 00129 }; 00130 00131 void updateView(); 00132 00133 KNotify::KNotifyWidget * m_notifyWidget; 00134 00135 class Private; 00136 Private *d; 00137 }; 00138 00139 00140 namespace KNotify 00141 { 00142 class Application; 00143 class Event; 00144 class ListViewItem; 00145 typedef QPtrList<Event> EventList; 00146 typedef QPtrListIterator<Application> ApplicationListIterator; 00147 typedef QPtrListIterator<Event> EventListIterator; 00148 00152 class Application 00153 { 00154 public: 00155 Application( const QString &path ); 00156 ~Application(); 00157 00158 QString text() const { return m_description; } 00159 QString icon() const { return m_icon; } 00160 const EventList& eventList(); 00161 void reloadEvents( bool revertToDefaults = false ); 00162 void save(); 00163 00164 QString appName() const { return m_appname; } 00165 00166 private: 00167 QString m_icon; 00168 QString m_description; 00169 QString m_appname; 00170 EventList *m_events; 00171 00172 KConfig *kc; // The file that defines the events. 00173 KConfig *config; // The file that contains the settings for the events 00174 }; 00175 00176 00177 class ApplicationList : public QPtrList<Application> 00178 { 00179 virtual int compareItems ( QPtrCollection::Item item1, 00180 QPtrCollection::Item item2 ) 00181 { 00182 return (static_cast<Application*>( item1 )->text() >= 00183 static_cast<Application*>( item2 )->text()) ? 1 : -1; 00184 } 00185 }; 00186 00190 class KNotifyWidget : public KNotifyWidgetBase 00191 { 00192 Q_OBJECT 00193 00194 public: 00195 KNotifyWidget( QWidget* parent = 0, const char* name = 0, 00196 bool handleAllApps = false ); 00197 ~KNotifyWidget(); 00198 00199 KListView * eventsView() { 00200 return m_listview; 00201 } 00202 00203 void addVisibleApp( Application *app ); 00204 ApplicationList& visibleApps() { return m_visibleApps; } 00205 ApplicationList& allApps() { return m_allApps; } 00206 00212 Application * addApplicationEvents( const QString& path ); 00213 00214 void resetDefaults( bool ask ); 00215 void sort( bool ascending = true ); 00216 00217 public slots: 00221 virtual void clear(); 00227 virtual void clearVisible(); 00228 virtual void save(); 00229 virtual void showAdvanced( bool show ); 00230 void toggleAdvanced(); 00231 00232 00233 signals: 00234 void changed( bool hasChanges ); 00235 00236 protected: 00240 Event * currentEvent(); 00241 virtual void showEvent( QShowEvent * ); 00242 virtual void enableAll( int what, bool enable ); 00243 00244 void reload( bool revertToDefaults = false ); 00245 00246 protected slots: 00247 void playSound(); 00248 00249 private slots: 00250 void slotItemClicked( QListViewItem *item, const QPoint& point, 00251 int col ); 00252 void slotEventChanged( QListViewItem * ); 00253 void soundToggled( bool on ); 00254 void loggingToggled( bool on ); 00255 void executeToggled( bool on ); 00256 void messageBoxChanged(); 00257 void stderrToggled( bool on ); 00258 void taskbarToggled( bool on ); 00259 00260 void soundFileChanged( const QString& text ); 00261 void logfileChanged( const QString& text ); 00262 void commandlineChanged( const QString& text ); 00263 00264 void openSoundDialog( KURLRequester * ); 00265 void openLogDialog( KURLRequester * ); 00266 void openExecDialog( KURLRequester * ); 00267 00268 void enableAll(); 00269 00270 private: 00271 void updateWidgets( ListViewItem *item ); 00272 void updatePixmaps( ListViewItem *item ); 00273 00274 static QString makeRelative( const QString& ); 00275 void addToView( const EventList& events ); 00276 void widgetChanged( QListViewItem *item, 00277 int what, bool on, QWidget *buddy = 0L ); 00278 void selectItem( QListViewItem *item ); 00279 00280 ApplicationList m_visibleApps; 00281 ApplicationList m_allApps; 00282 00283 class Private; 00284 Private *d; 00285 00286 }; 00287 00288 00291 00292 00296 class Event 00297 { 00298 friend class Application; 00299 00300 public: 00301 QString text() const { return description; } 00302 00303 int presentation; 00304 int dontShow; 00305 QString logfile; 00306 QString soundfile; 00307 QString commandline; 00308 00309 const Application *application() const { return m_app; } 00310 00311 private: 00312 Event( const Application *app ) { 00313 presentation = 0; 00314 dontShow = 0; 00315 m_app = app; 00316 } 00317 QString name; 00318 QString description; 00319 QString configGroup; 00320 00321 const Application *m_app; 00322 }; 00323 00327 class ListViewItem : public QListViewItem 00328 { 00329 public: 00330 ListViewItem( QListView *view, Event *event ); 00331 00332 Event& event() { return *m_event; } 00333 virtual int compare (QListViewItem * i, int col, bool ascending) const; 00334 00335 private: 00336 Event * m_event; 00337 }; 00338 00339 } 00340 00341 00342 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:43:53 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003