/*
 * unusedpackagesdialog.h
 *
 * Copyright (c) 2002, 2003 Frerich Raabe <raabe@kde.org>
 *
 * 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 UNUSEDPACKAGESDIALOG_H
#define UNUSEDPACKAGESDIALOG_H

#include "actionprogressdialog.h"
#include "portmgr.h"

#include <kdialogbase.h>

#include <qdatetime.h>

class KListView;

class QCheckBox;
class QListViewItem;
class QSpinBox;

namespace Barry
{
	class UnusedPackagesDialog : public KDialogBase
	{
		Q_OBJECT
		public:
			UnusedPackagesDialog( QWidget *parent, const char *name = 0 );

			unsigned int daysNotAccessed() const;
			bool leafPackagesOnly() const;

		protected slots:
			virtual void slotUser1();

		private:
			QSpinBox *m_daysNotAccessed;
			QCheckBox *m_leafPackagesOnly;
	};

	class UnusedPackagesProgressDialog : public ActionProgressDialog
	{
		Q_OBJECT
		public:
			UnusedPackagesProgressDialog( unsigned int daysNotAccessed,
			                              bool leafPackagesOnly,
			                              QWidget *parent, const char *name = 0 );

		protected:
			virtual void processPort( const Port &port );

		private:
			PortList determineLeafPackages();
#if __FreeBSD__ == 5
			bool doKernelBugCheck();
#endif

			int m_daysNotAccessed;
			bool m_leafPackagesOnly;
			QDateTime m_currentDateTime;
	};
};

#endif // UNUSEDPACKAGESDIALOG_H
// vim:ts=4:sw=4:noet:list
