blob: 9c1e14e5172d5a52618a4a77619e1c7c69241118 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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 <twin.h>
#include <kdebug.h>
#include <kcmdlineargs.h>
#include <kconfig.h>
#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");
TQString 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<KNMainWindow*>(mainWidget())->mainWidget();
w->handleCommandLine();
kdDebug(5003) << "KNApplication::newInstance() done" << endl;
return 0;
}
|