From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- knode/knapplication.cpp | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 knode/knapplication.cpp (limited to 'knode/knapplication.cpp') diff --git a/knode/knapplication.cpp b/knode/knapplication.cpp new file mode 100644 index 000000000..2bbcf0494 --- /dev/null +++ b/knode/knapplication.cpp @@ -0,0 +1,88 @@ +/* + knapplication.cpp + + KNode, the KDE newsreader + Copyright (c) 1999-2001 the KNode authors. + See file AUTHORS for details + + 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. + 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, US +*/ + +#include +#include +#include +#include + +#include "knode.h" +#include "knapplication.h" +#include "knconvert.h" +#include "knglobals.h" +#include "knmainwidget.h" +#include "knapplication.moc" + + +int KNApplication::newInstance() +{ + kdDebug(5003) << "KNApplication::newInstance()" << endl; + + KConfig *conf=knGlobals.config(); + conf->setGroup("GENERAL"); + QString ver=conf->readEntry("Version"); + + if(!ver.isEmpty() && ver!=KNODE_VERSION) { //new version installed + if(KNConvert::needToConvert(ver)) { //we need to convert + kdDebug(5003) << "KNApplication::newInstance() : conversion needed" << endl; + KNConvert *convDlg=new KNConvert(ver); + if(!convDlg->exec()) { //reject() + if(convDlg->conversionDone()) //conversion has already happened but the user has canceled afterwards + conf->writeEntry("Version", KNODE_VERSION); + exit(0); + return(0); + } else //conversion done + conf->writeEntry("Version", KNODE_VERSION); + delete convDlg; + } + else //new version but no need to convert anything => just save the new version + conf->writeEntry("Version", KNODE_VERSION); + } + + if (!mainWidget()) { + if (isRestored()) { + int n = 1; + while (KNMainWindow::canBeRestored(n)){ + if (KNMainWindow::classNameOfToplevel(n)=="KNMainWindow") { + KNMainWindow* mainWin = new KNMainWindow; + mainWin->restore(n); + if ( n == 1 ) + setMainWidget( mainWin ); + break; + } + n++; + } + } + + if (!mainWidget()) { + KNMainWindow* mainWin = new KNMainWindow; + setMainWidget(mainWin); // this makes the external viewer windows close on shutdown... + mainWin->show(); + } + } + + // Handle window activation and startup notification + KUniqueApplication::newInstance(); + + // process URLs... + KNMainWidget *w = static_cast(mainWidget())->mainWidget(); + w->handleCommandLine(); + + kdDebug(5003) << "KNApplication::newInstance() done" << endl; + return 0; +} + + -- cgit v1.2.1