KateMainWindow::KateMainWindow(KConfig *sconfig, const QString &sgroup) : KateMDI::MainWindow(0) , m_modignore(false) , m_wrapper(new KTextEditor::MainWindow(this)) { /** * we don't want any flicker here */ KateUpdateDisabler disableUpdates (this); /** * get and set config revision */ static const int currentConfigRevision = 10; const int readConfigRevision = KConfigGroup(KSharedConfig::openConfig(), "General").readEntry("Config Revision", 0); KConfigGroup(KSharedConfig::openConfig(), "General").writeEntry("Config Revision", currentConfigRevision); const bool firstStart = readConfigRevision < currentConfigRevision; // start session restore if needed startRestore(sconfig, sgroup); // setup most important actions first, needed by setupMainWindow setupImportantActions(); // setup the most important widgets setupMainWindow(); // setup the actions setupActions(); setStandardToolBarMenuEnabled(true); setXMLFile(QStringLiteral("kateui.rc")); createShellGUI(true); //qCDebug(LOG_KATE) << "****************************************************************************" << sconfig; // register mainwindow in app KateApp::self()->addMainWindow(this); // enable plugin guis KateApp::self()->pluginManager()->enableAllPluginsGUI(this, sconfig); // caption update Q_FOREACH (auto doc, KateApp::self()->documentManager()->documentList()) { slotDocumentCreated(doc); }
KateMainWindow::KateMainWindow (KConfig *sconfig, const QString &sgroup) : KateMDI::MainWindow (0) { setObjectName((QString("__KateMainWindow#%1").arg(uniqueID)).toLatin1()); // first the very important id myID = uniqueID; uniqueID++; new KateMainWindowAdaptor( this ); m_dbusObjectPath = "/MainWindow/" + QString::number( myID ); QDBusConnection::sessionBus().registerObject( m_dbusObjectPath, this ); m_modignore = false; // here we go, set some usable default sizes if (!initialGeometrySet()) { int scnum = QApplication::desktop()->screenNumber(parentWidget()); QRect desk = QApplication::desktop()->screenGeometry(scnum); QSize size; // try to load size if (sconfig) { KConfigGroup cg( sconfig, sgroup ); size.setWidth (cg.readEntry( QString::fromLatin1("Width %1").arg(desk.width()), 0 )); size.setHeight (cg.readEntry( QString::fromLatin1("Height %1").arg(desk.height()), 0 )); } // if thats fails, try to reuse size if (size.isEmpty()) { // first try to reuse size known from current or last created main window ;=) if (KateApp::self()->mainWindows () > 0) { KateMainWindow *win = KateApp::self()->activeMainWindow (); if (!win) win = KateApp::self()->mainWindow (KateApp::self()->mainWindows () - 1); size = win->size(); } else // now fallback to hard defaults ;) { // first try global app config KConfigGroup cg( KGlobal::config(), "MainWindow" ); size.setWidth (cg.readEntry( QString::fromLatin1("Width %1").arg(desk.width()), 0 )); size.setHeight (cg.readEntry( QString::fromLatin1("Height %1").arg(desk.height()), 0 )); if (size.isEmpty()) size = QSize (qMin (700, desk.width()), qMin(480, desk.height())); } resize (size); } } // start session restore if needed startRestore (sconfig, sgroup); m_mainWindow = new Kate::MainWindow (this); // setup most important actions first, needed by setupMainWindow setupImportantActions (); // setup the most important widgets setupMainWindow(); // setup the actions setupActions(); setStandardToolBarMenuEnabled( true ); setXMLFile( "kateui.rc" ); createShellGUI ( true ); //kDebug() << "****************************************************************************" << sconfig; // register mainwindow in app KateApp::self()->addMainWindow (this); // enable plugin guis KatePluginManager::self()->enableAllPluginsGUI (this, sconfig); // caption update for (uint i = 0; i < KateDocManager::self()->documents(); i++) slotDocumentCreated (KateDocManager::self()->document(i)); connect(KateDocManager::self(), SIGNAL(documentCreated(KTextEditor::Document*)), this, SLOT(slotDocumentCreated(KTextEditor::Document*))); readOptions(); if (sconfig) m_viewManager->restoreViewConfiguration (KConfigGroup(sconfig, sgroup) ); finishRestore (); fileOpenRecent->loadEntries( KConfigGroup(sconfig, "Recent Files" ) ); setAcceptDrops(true); connect(KateSessionManager::self(), SIGNAL(sessionChanged()), this, SLOT(updateCaption())); connect(this,SIGNAL(sigShowPluginConfigPage(Kate::PluginConfigPageInterface *,uint)),this,SLOT(showPluginConfigPage(Kate::PluginConfigPageInterface *,uint))); }