/*
 * mainwindow.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 MAINWINDOW_H
#define MAINWINDOW_H

#include "port.h"
#include "searchquery.h"

#include <kmainwindow.h>

namespace Barry
{
	class Application;
	class MainWidget;
	
	class MainWindow : public KMainWindow
	{
		Q_OBJECT
		public:
			MainWindow();

			void setup( const SearchQuery &searchQuery = SearchQuery() );

		private slots:
			void processFinished();
			void preferences();
			void databaseInfo();
			void find();
			void find( const SearchQuery &searchQuery );
			void findUnusedPackages();
			void findUpdatedPackages();
			void findOrphanedFiles();
			void toggleMenubar();
			void toggleStatusbar();
			void toggleToolbars();
			void configureKeybindings();
			void configureNotifications();
			void portSelected( const Port &port );
			void installPort();
			void upgradePort();
			void deinstallPort();
			void viewWebCVS();

		private:
			void setupActions();
			bool loadDatabase();

			MainWidget *m_mainWidget;
			Port m_port;
	};
};

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