21 #include "kateapp.moc"
23 #include "katedocmanager.h"
24 #include "katepluginmanager.h"
25 #include "kateviewmanager.h"
26 #include "kateappIface.h"
27 #include "katesession.h"
28 #include "katemainwindow.h"
30 #include "../interfaces/application.h"
32 #include <kdeversion.h>
33 #include <kcmdlineargs.h>
34 #include <dcopclient.h>
39 #include <klibloader.h>
40 #include <kmessagebox.h>
42 #include <ksimpleconfig.h>
43 #include <kstartupinfo.h>
48 #include <tqtextcodec.h>
52 #include <sys/types.h>
57 , m_shouldExit (false)
60 dcopClient()->suspend();
63 KGlobal::locale()->insertCatalogue(
"katepart");
66 Kate::Document::setFileChangedDialogsActivated (
true);
72 m_docManager =
new KateDocManager (TQT_TQOBJECT(
this));
75 m_pluginManager =
new KatePluginManager (TQT_TQOBJECT(
this));
78 m_sessionManager =
new KateSessionManager (TQT_TQOBJECT(
this));
81 m_obj =
new KateAppDCOPIface (
this);
83 kdDebug()<<
"Setting KATE_PID: '"<<getpid()<<
"'"<<endl;
84 ::setenv(
"KATE_PID", TQString(TQString(
"%1").arg(getpid())).latin1(), 1 );
103 dcopClient()->resume();
112 delete m_pluginManager;
125 return m_application;
134 return fullVersion ? TQString (
"%1.%2.%3").arg(KDE::versionMajor() - 1).arg(KDE::versionMinor()).arg(KDE::versionRelease())
135 : TQString (
"%1.%2").arg(KDE::versionMajor() - 1).arg(KDE::versionMinor());
138 void KateApp::restoreKate ()
141 Kate::Document::setOpenErrorDialogsActivated (
false);
144 sessionConfig()->setGroup(
"General");
145 TQString lastSession (sessionConfig()->readEntry (
"Last Session",
"default.katesession"));
148 m_docManager->restoreDocumentList (sessionConfig());
150 Kate::Document::setOpenErrorDialogsActivated (
true);
153 for (
int n=1; KMainWindow::canBeRestored(n); n++)
164 bool KateApp::startupKate ()
167 if (m_args->isSet (
"start"))
177 KStartupInfo::appStarted (startupId());
189 TQTextCodec *codec = m_args->isSet(
"encoding") ? TQTextCodec::codecForName(m_args->getOption(
"encoding")) : 0;
191 bool tempfileSet = KCmdLineArgs::isTempFileSet();
193 Kate::Document::setOpenErrorDialogsActivated (
false);
195 for (
int z=0; z<m_args->count(); z++)
198 bool noDir = !m_args->url(z).isLocalFile() || !TQDir (m_args->url(z).path()).exists();
204 id =
activeMainWindow()->viewManager()->openURL( m_args->url(z), codec->name(),
false, tempfileSet );
206 id =
activeMainWindow()->viewManager()->openURL( m_args->url(z), TQString::null,
false, tempfileSet );
210 i18n(
"The file '%1' could not be opened: it is not a normal file, it is a folder.").arg(m_args->url(z).url()) );
213 Kate::Document::setOpenErrorDialogsActivated (
true);
216 if( m_args->isSet(
"stdin" ) )
218 TQTextIStream input(stdin);
222 input.setCodec (codec);
229 line = input.readLine();
230 text.append( line +
"\n" );
231 }
while( !line.isNull() );
239 activeMainWindow()->viewManager()->activateView(m_docManager->firstDocument()->documentNumber());
245 if (m_args->isSet (
"line"))
247 line = m_args->getOption (
"line").toInt();
251 if (m_args->isSet (
"column"))
253 column = m_args->getOption (
"column").toInt();
258 activeMainWindow()->viewManager()->activeView ()->setCursorPosition (line, column);
268 if (!win->queryClose_internal())
274 dcopClient()->detach();
277 while (!m_mainWindows.isEmpty())
278 delete m_mainWindows[0];
285 return m_pluginManager;
295 return m_sessionManager;
305 TQTextCodec *codec = encoding.isEmpty() ? 0 : TQTextCodec::codecForName(encoding.latin1());
307 kdDebug () <<
"OPEN URL "<< encoding << endl;
310 bool noDir = !url.isLocalFile() || !TQDir (url.path()).exists();
316 mainWindow->viewManager()->openURL( url, codec->name(),
true, isTempFile );
318 mainWindow->viewManager()->openURL( url, TQString::null,
true, isTempFile );
321 KMessageBox::sorry( mainWindow,
322 i18n(
"The file '%1' could not be opened: it is not a normal file, it is a folder.").arg(url.url()) );
334 mainWindow->viewManager()->activeView ()->setCursorPosition (line, column);
353 KateMainWindow *
mainWindow =
new KateMainWindow (sconfig, sgroup);
354 m_mainWindows.push_back (mainWindow);
356 if ((
mainWindows() > 1) && m_mainWindows[m_mainWindows.count()-2]->viewManager()->activeView())
357 mainWindow->viewManager()->activateView ( m_mainWindows[m_mainWindows.count()-2]->viewManager()->activeView()->getDoc()->documentNumber() );
358 else if ((
mainWindows() > 1) && (m_docManager->documents() > 0))
359 mainWindow->viewManager()->activateView ( (m_docManager->document(m_docManager->documents()-1))->documentNumber() );
360 else if ((
mainWindows() > 1) && (m_docManager->documents() < 1))
361 mainWindow->viewManager()->openURL ( KURL() );
370 m_mainWindows.remove (mainWindow);
375 if (m_mainWindows.isEmpty())
378 int n = m_mainWindows.findIndex ((KateMainWindow *)activeWindow());
383 return m_mainWindows[n];
388 return m_mainWindows.size();
393 if (n < m_mainWindows.size())
394 return m_mainWindows[n];