/* * application.cc * * 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'. */ #include "application.h" #include "mainwindow.h" #include "portmgr.h" #include #include #include #include #include using namespace Barry; Application::Application(): KUniqueApplication() { KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if ( args->isSet( "rebuild-cache" ) ) { PortMgr::self().load(); rebuildCache(); } MainWindow *mainWindow = new MainWindow; setMainWidget( mainWindow ); mainWindow->show(); QCString term = args->getOption( "search" ); if ( !term.isEmpty() ) mainWindow->setup( SearchQuery( term ) ); else mainWindow->setup(); } void Application::rebuildCache() { KProgressDialog dlg( 0, "dlg", i18n( "Rebuilding cache..." ), i18n( "Please wait while the cache gets rebuilt..." ), true /* modal */ ); dlg.setAllowCancel( false ); dlg.setAutoClose( true ); dlg.show(); const PortList ports = PortMgr::self().installedPorts(); PortList::ConstIterator it = ports.begin(); PortList::ConstIterator end = ports.end(); dlg.progressBar()->setTotalSteps( ports.count() ); dlg.setLabel( i18n( "Please wait while the cache gets rebuilt..." ) ); for ( ; it != end; ++it ) { const Port port = *it; if ( !port.isNull() ) port.files(); // Hack to trigger cache dlg.progressBar()->advance( 1 ); kapp->eventLoop()->processEvents( QEventLoop::ExcludeUserInput ); } } int Application::newInstance() { if ( isRestored() ) RESTORE( MainWindow ) return KUniqueApplication::newInstance(); } #include "application.moc" // vim:ts=4:sw=4:noet:list