You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
basket/src/main.cpp

116 lines
4.1 KiB

/***************************************************************************
* Copyright (C) 2003 by Sébastien Laoût *
* slaout@linux62.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* 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. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <stdlib.h>
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <kiconloader.h>
#include <qpixmap.h>
#include <klocale.h>
#include <kglobalaccel.h>
#include <kmessagebox.h>
#include <kstandarddirs.h>
#include <kdebug.h>
#include <qfile.h>
#include <qfileinfo.h>
#include <kconfig.h> // TMP IN ALPHA 1
#include "application.h"
#include "backgroundmanager.h"
#include "mainwindow.h"
#include "settings.h"
#include "global.h"
#include "debugwindow.h"
#include "notedrag.h"
#include "basket.h"
#include "aboutdata.h"
#include "basket_options.h"
#include "backup.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
/* Thanks to JuK for this Application class */
/*#if KDE_IS_VERSION( 3, 1, 90 )
typedef KUniqueApplication Application; // KDE 3.2 and later already re-show the main window
#else
class Application : public KUniqueApplication
{
public:
Application() : KUniqueApplication(true, true, false) {}
virtual ~Application() {}
virtual int newInstance() {
if (win)
win->setActive(true);
return KUniqueApplication::newInstance();
}
};
#endif
*/
int main(int argc, char *argv[])
{
// KCmdLineArgs::init will modify argv[0] so we remember it:
const char *argv0 = (argc >= 1 ? argv[0] : "");
KCmdLineArgs::init(argc, argv, Global::about());
KCmdLineArgs::addCmdLineOptions(basket_options);
KUniqueApplication::addCmdLineOptions();
//KUniqueApplication app;
Application app;
Backup::figureOutBinaryPath(argv0, app);
/* Main Window */
MainWindow* win = new MainWindow();
Global::bnpView->handleCommandLine();
app.setMainWidget(win);
// if (!(Settings::useSystray() && KCmdLineArgs::parsedArgs() && KCmdLineArgs::parsedArgs()->isSet("start-hidden")))
// win->show();
if (Settings::useSystray()) {
// The user wanted to not show the window (but it is already hidden by default, so we do nothing):
if (KCmdLineArgs::parsedArgs() && KCmdLineArgs::parsedArgs()->isSet("start-hidden"))
;
// When the application is restored by KDE session, restore its state:
else if (app.isRestored())
win->setShown(!Settings::startDocked());
// Else, the application has been launched explicitely by the user (KMenu, keyboard shortcut...), so he need it, we show it:
else
win->show();
} else
// No system tray icon: always show:
win->show();
// Self-test of the presence of basketui.rc (the only requiered file after basket executable)
if (Global::bnpView->popupMenu("basket") == 0L)
// An error message will be show by BNPView::popupMenu()
return 1;
/* Go */
int result = app.exec();
//return result;
exit(result); // Do not clean up memory to not crash while deleting the KApplication, or do not hang up on KDE exit
}