/* * actionprogressdialog.h * * Copyright (c) 2002, 2003 Frerich Raabe * * This program 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. For licensing and distribution details, check the * accompanying file 'COPYING'. */ #ifndef ACTIONPROGRESSDIALOG_H #define ACTIONPROGRESSDIALOG_H #include "port.h" #include class QListViewItem; class QTimer; class KListView; class KProgress; namespace Barry { class PortItem; class ActionProgressDialog : public KDialogBase { Q_OBJECT public: /** * Constructs a progress dialog with the given parent and name. * @param showProgress instructs the dialog to show a progressbar * which can be useful for longer tasks, but it also makes the * dialog slower since more UI events have to be processed. */ ActionProgressDialog( QWidget *parent, const char *name = 0, bool showProgress = true ); protected: virtual void processPort( const Port &port ) = 0; virtual void enlistPort( const Port &port ); void search( const PortList &portList ); void stopSearch(); void setStatus( const QString &s ); void addColumn( const QString &s ); virtual void setupItem( PortItem *item ); signals: void portSelected( const Port &port ); private slots: void getNextPort(); void itemSelected( QListViewItem *item ); private: QLabel *m_statusLabel; KProgress *m_progressBar; KListView *m_foundPackages; QTimer *m_searchTimer; PortList m_ports; PortList::ConstIterator m_portIt; PortList::ConstIterator m_portEnd; }; }; #endif // ACTIONPROGRESSDIALOG_H // vim:ts=4:sw=4:noet:list