kmjobviewer.h
00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be> 00004 * 00005 * This library 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 library 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 * Library 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; see the file COPYING.LIB. If not, write to 00016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 * Boston, MA 02110-1301, USA. 00018 **/ 00019 00020 #ifndef KMJOBVIEWER_H 00021 #define KMJOBVIEWER_H 00022 00023 #if !defined( _KDEPRINT_COMPILE ) && defined( __GNUC__ ) 00024 #warning internal header, do not use except if you are a KDEPrint developer 00025 #endif 00026 00027 #include <kmainwindow.h> 00028 #include "kmprinterpage.h" 00029 #include "kpreloadobject.h" 00030 00031 class KMJobManager; 00032 class KMJob; 00033 class KListView; 00034 class JobItem; 00035 class TQPopupMenu; 00036 class TQListViewItem; 00037 class KMPrinter; 00038 class TQTimer; 00039 class TQLineEdit; 00040 class TQCheckBox; 00041 00049 class KDEPRINT_EXPORT KMJobViewer : public KMainWindow, public KMPrinterPage, public KPReloadObject 00050 { 00051 Q_OBJECT 00052 public: 00053 KMJobViewer(TQWidget *parent = 0, const char *name = 0); 00054 ~KMJobViewer(); 00055 00056 void setPrinter(const TQString& prname); 00057 void setPrinter(KMPrinter *p); 00058 void refresh(bool reload = false); 00059 TQString printer() const; 00060 bool isSticky() const; 00061 00062 signals: 00063 void jobsShown(KMJobViewer*, bool hasJobs); 00064 void refreshClicked(); 00065 void printerChanged(KMJobViewer*, const TQString& prname); 00066 void viewerDestroyed(KMJobViewer*); 00067 00068 public slots: 00069 void pluginActionActivated(int); 00070 00071 protected slots: 00072 void slotSelectionChanged(); 00073 void slotHold(); 00074 void slotResume(); 00075 void slotRemove(); 00076 void slotRestart(); 00077 void slotRightClicked(TQListViewItem*,const TQPoint&,int); 00078 void slotMove(int prID); 00079 void slotPrinterSelected(int); 00080 void slotShowCompleted(bool); 00081 void slotRefresh(); 00082 void slotClose(); 00083 void slotShowMoveMenu(); 00084 void slotShowPrinterMenu(); 00085 void slotUserOnly(bool); 00086 void slotUserChanged(); 00087 void slotConfigure(); 00088 void slotDropped( TQDropEvent*, TQListViewItem* ); 00089 void slotKeepWindowChange(bool); 00090 void slotPrinterListUpdated(); 00091 00092 protected: 00093 void init(); 00094 void updateJobs(); 00095 void initActions(); 00096 JobItem* findItem(const TQString& uri); 00097 void jobSelection(TQPtrList<KMJob>& l); 00098 void send(int cmd, const TQString& name, const TQString& arg = TQString::null); 00099 void loadPrinters(); 00100 void loadPluginActions(); 00101 void removePluginActions(); 00102 void reload(); 00103 //void aboutToReload(); 00104 void closeEvent(TQCloseEvent*); 00105 void triggerRefresh(); 00106 void addToManager(); 00107 void removeFromManager(); 00108 void buildPrinterMenu(TQPopupMenu *menu, bool use_all = false, bool use_specials = false); 00109 void updateCaption(); 00110 void updateStatusBar(); 00111 00112 private: 00113 KListView *m_view; 00114 TQPtrList<KMJob> m_jobs; 00115 TQPtrList<JobItem> m_items; 00116 TQPopupMenu *m_pop; 00117 TQPtrList<KMPrinter> m_printers; 00118 TQString m_prname; 00119 int m_type; 00120 TQString m_username; 00121 TQLineEdit *m_userfield; 00122 TQCheckBox *m_stickybox; 00123 bool m_standalone; 00124 }; 00125 00126 inline TQString KMJobViewer::printer() const 00127 { return m_prname; } 00128 00129 #endif