void Nepomuk2::SimpleIndexingJob::start() { SimpleResource m_res = createSimpleResource( m_nieUrl, &m_mimeType ); m_resUri = m_res.uri(); // Indexing Level m_res.setProperty(KExt::indexingLevel(), 1); QHash<QUrl, QVariant> additionalMetadata; additionalMetadata.insert( RDF::type(), NRL::DiscardableInstanceBase() ); SimpleResourceGraph graph; graph << m_res; // In order to be compatibile with earlier releases we keep the old app name KComponentData component = KGlobal::mainComponent(); if( component.componentName() != QLatin1String("nepomukindexer") ) { component = KComponentData( QByteArray("nepomukindexer"), QByteArray(), KComponentData::SkipMainComponentRegistration ); } StoreResourcesJob* job( Nepomuk2::storeResources( graph, IdentifyNew, NoStoreResourcesFlags, additionalMetadata, component ) ); connect( job, SIGNAL(finished(KJob*)), this, SLOT(slotJobFinished(KJob*)) ); }
void KUiServerJobTracker::registerJob(KJob *job) { // Already registered job? if (d->progressJobView.contains(job)) { return; } KComponentData componentData = KGlobal::mainComponent(); QString programIconName = componentData.aboutData()->programIconName(); if (programIconName.isEmpty()) { programIconName = componentData.aboutData()->appName(); } QWeakPointer<KJob> jobWatch = job; QDBusReply<QDBusObjectPath> reply = serverProxy->uiserver().requestView(componentData.aboutData()->programName(), programIconName, job->capabilities()); // If we got a valid reply, register the interface for later usage. if (reply.isValid()) { org::kde::JobViewV2 *jobView = new org::kde::JobViewV2("org.kde.JobViewServer", reply.value().path(), QDBusConnection::sessionBus()); if (!jobWatch) { //kDebug() << "deleted out from under us when asking the server proxy for the view"; jobView->terminate(QString()); delete jobView; return; } QObject::connect(jobView, SIGNAL(cancelRequested()), this, SLOT(_k_killJob())); QObject::connect(jobView, SIGNAL(suspendRequested()), job, SLOT(suspend())); QObject::connect(jobView, SIGNAL(resumeRequested()), job, SLOT(resume())); QVariant destUrl = job->property("destUrl"); if (destUrl.isValid()) { jobView->setDestUrl(QDBusVariant(destUrl)); } if (!jobWatch) { //kDebug() << "deleted out from under us when creating the dbus interface"; jobView->terminate(QString()); delete jobView; return; } d->progressJobView.insert(job, jobView); } else if (!jobWatch) { qWarning() << "Uh-oh...KUiServerJobTracker was trying to forward a job, but it was deleted from under us." << "kuiserver *may* have a stranded job. we can't do anything about it because the returned objectPath is invalid."; return; } KJobTrackerInterface::registerJob(job); }
void fillInstance(KComponentData &ins, const QString &srcdir) { QByteArray catalogs; if ( srcdir.isEmpty() ) { catalogs += KUrl::fromLocalFile( ins.dirs()->findResource("data", "ksgmltools2/customization/catalog.xml") ).toEncoded(); ins.dirs()->addResourceType("dtd", "data", "ksgmltools2/"); } else { catalogs += KUrl::fromLocalFile( srcdir +"/customization/catalog.xml" ).toEncoded(); ins.dirs()->addResourceDir("dtd", srcdir); } setenv( "XML_CATALOG_FILES", catalogs.constData(), 1 ); xmlInitializeCatalog(); }
KoOdfLoadingContext::KoOdfLoadingContext(KoOdfStylesReader &stylesReader, KoStore* store, const KComponentData &componentData) : d(new Private(stylesReader, store)) { // Ideally this should be done by KoDocument and passed as argument here... KoOdfReadStore oasisStore(store); QString dummy; (void)oasisStore.loadAndParse("tar:/META-INF/manifest.xml", d->manifestDoc, dummy); if (componentData.isValid()) { QString fileName( KStandardDirs::locate( "styles", "defaultstyles.xml", componentData ) ); if ( ! fileName.isEmpty() ) { QFile file( fileName ); QString errorMessage; if ( KoOdfReadStore::loadAndParse( &file, d->doc, errorMessage, fileName ) ) { d->defaultStylesReader.createStyleMap( d->doc, true ); } else { kWarning(30010) << "reading of defaultstyles.xml failed:" << errorMessage; } } else { kWarning(30010) << "defaultstyles.xml not found"; } } if (!parseManifest(d->manifestDoc)) { kWarning(30010) << "could not parse manifest document"; } }
MainWindow::MainWindow(RootSection* document, const KComponentData &componentData) : m_doc(document), m_activeView(0), m_dockerManager(0) { Q_ASSERT(componentData.isValid()); KGlobal::setActiveComponent(componentData); // then, setup our actions setupActions(); // Create the docker manager after setting up the action m_dockerManager = new DockerManager(this); // Setup the view view = new View(m_doc, this); setCentralWidget(view); // a call to KXmlGuiWindow::setupGUI() populates the GUI // with actions, using KXMLGUI. // It also applies the saved mainwindow settings, if any, and ask the // mainwindow to automatically save settings if changed: window size, // toolbar position, icon size, etc. setupGUI(); activateView(view); // Position and show toolbars according to user's preference setAutoSaveSettings(componentData.componentName()); const int scnum = QApplication::desktop()->screenNumber(parentWidget()); QRect desk = QApplication::desktop()->screenGeometry(scnum); // if the desktop is virtual then use virtual screen size if(QApplication::desktop()->isVirtualDesktop()) desk = QApplication::desktop()->screenGeometry(QApplication::desktop()->screen()); KConfigGroup config(KGlobal::config(), componentData.componentName()); const QSize size(config.readEntry(QString::fromLatin1("Width %1").arg(desk.width()), 0), config.readEntry(QString::fromLatin1("Height %1").arg(desk.height()), 0)); resize(size); foreach(QDockWidget * wdg, m_dockWidgets) { if((wdg->features() & QDockWidget::DockWidgetClosable) == 0) { wdg->setVisible(true); } } forceDockTabFonts(); }
KJob* Nepomuk2::clearIndexedData( const QList<QUrl>& urls ) { if ( urls.isEmpty() ) return 0; //kDebug() << urls; // // New way of storing File Indexing Data // The Datamanagement API will automatically find the resource corresponding to that url // KComponentData component = KGlobal::mainComponent(); if( component.componentName() != QLatin1String("nepomukindexer") ) { component = KComponentData( QByteArray("nepomukindexer"), QByteArray(), KComponentData::SkipMainComponentRegistration ); } return Nepomuk2::removeDataByApplication( urls, RemoveSubResoures, component ); }
bool KXMLGUIFactory::saveConfigFile( const QDomDocument& doc, const QString& filename, const KComponentData &_componentData ) { KComponentData componentData = _componentData.isValid() ? _componentData : KGlobal::mainComponent(); QString xml_file(filename); if (QDir::isRelativePath(xml_file)) xml_file = KStandardDirs::locateLocal("data", componentData.componentName() + '/' + filename); QFile file( xml_file ); if ( xml_file.isEmpty() || !file.open( QIODevice::WriteOnly ) ) { kError(240) << "Could not write to" << filename; return false; } // write out our document QTextStream ts(&file); ts.setCodec( QTextCodec::codecForName( "UTF-8" ) ); ts << doc; file.close(); return true; }
QString KXMLGUIFactory::readConfigFile( const QString &filename, const KComponentData &_componentData ) { QString xml_file; if (!QDir::isRelativePath(filename)) xml_file = filename; else { KComponentData componentData = _componentData.isValid() ? _componentData : KGlobal::mainComponent(); xml_file = KStandardDirs::locate("data", componentData.componentName() + '/' + filename); if ( !QFile::exists( xml_file ) ) xml_file = KStandardDirs::locate( "data", filename ); } QFile file( xml_file ); if ( xml_file.isEmpty() || !file.open( QIODevice::ReadOnly ) ) { kError(240) << "No such XML file" << filename; return QString(); } QByteArray buffer(file.readAll()); return QString::fromUtf8(buffer.constData(), buffer.size()); }
void KCrash::defaultCrashHandler (int sig) { // WABA: Do NOT use kDebug() in this function because it is much too risky! // Handle possible recursions static int crashRecursionCounter = 0; crashRecursionCounter++; // Nothing before this, please ! #if !defined(Q_OS_WIN) signal(SIGALRM, SIG_DFL); alarm(3); // Kill me... (in case we deadlock in malloc) #endif #ifdef Q_OS_SOLARIS (void) printstack(2 /* stderr, assuming it's still open. */); #endif if (crashRecursionCounter < 2) { if (s_emergencySaveFunction) { s_emergencySaveFunction (sig); } if ((s_flags & AutoRestart) && s_autoRestartCommand) { sleep(1); startProcess(s_autoRestartArgc, const_cast<const char**>(s_autoRestartCommandLine), false); } crashRecursionCounter++; } #if !defined(Q_OS_WIN) if (!(s_flags & KeepFDs)) closeAllFDs(); # if defined(Q_WS_X11) else if (QX11Info::display()) close(ConnectionNumber(QX11Info::display())); # endif #endif if (crashRecursionCounter < 3) { #ifndef NDEBUG fprintf(stderr, "KCrash: crashing... crashRecursionCounter = %d\n", crashRecursionCounter); fprintf(stderr, "KCrash: Application Name = %s path = %s pid = %lld\n", s_appName ? s_appName : "<unknown>" , s_appPath ? s_appPath : "<unknown>", QCoreApplication::applicationPid()); fprintf(stderr, "KCrash: Arguments: "); for (int i = 0; s_autoRestartCommandLine[i]; ++i) { fprintf(stderr, "%s ", s_autoRestartCommandLine[i]); } fprintf(stderr, "\n"); #else fprintf(stderr, "KCrash: Application '%s' crashing...\n", s_appName ? s_appName : "<unknown>"); #endif if (!s_launchDrKonqi) { setCrashHandler(0); #if !defined(Q_OS_WIN) raise(sig); // dump core, or whatever is the default action for this signal. #endif return; } const char * argv[27]; // don't forget to update this int i = 0; // argument 0 has to be drkonqi argv[i++] = s_drkonqiPath; #if defined Q_WS_X11 // start up on the correct display argv[i++] = "-display"; if ( QX11Info::display() ) argv[i++] = XDisplayString(QX11Info::display()); else argv[i++] = getenv("DISPLAY"); #elif defined(Q_WS_QWS) // start up on the correct display argv[i++] = "-display"; argv[i++] = getenv("QWS_DISPLAY"); #endif argv[i++] = "--appname"; argv[i++] = s_appName ? s_appName : "<unknown>"; if (KApplication::loadedByKdeinit) argv[i++] = "--kdeinit"; // only add apppath if it's not NULL if (s_appPath && *s_appPath) { argv[i++] = "--apppath"; argv[i++] = s_appPath; } // signal number -- will never be NULL char sigtxt[ 10 ]; sprintf( sigtxt, "%d", sig ); argv[i++] = "--signal"; argv[i++] = sigtxt; char pidtxt[ 20 ]; sprintf( pidtxt, "%lld", QCoreApplication::applicationPid()); argv[i++] = "--pid"; argv[i++] = pidtxt; const KComponentData componentData = KGlobal::mainComponent(); const KAboutData *about = componentData.isValid() ? componentData.aboutData() : 0; if (about) { if (about->internalVersion()) { argv[i++] = "--appversion"; argv[i++] = about->internalVersion(); } if (about->internalProgramName()) { argv[i++] = "--programname"; argv[i++] = about->internalProgramName(); } if (about->internalBugAddress()) { argv[i++] = "--bugaddress"; argv[i++] = about->internalBugAddress(); } } char sidtxt[256]; if ( kapp && !kapp->startupId().isNull()) { argv[i++] = "--startupid"; strlcpy(sidtxt, kapp->startupId().constData(), sizeof(sidtxt)); argv[i++] = sidtxt; } if ( s_flags & SaferDialog ) argv[i++] = "--safer"; if ((s_flags & AutoRestart) && s_autoRestartCommand) argv[i++] = "--restarted"; //tell drkonqi if the app has been restarted #if defined(Q_OS_WIN) char threadId[8] = { 0 }; sprintf( threadId, "%d", GetCurrentThreadId() ); argv[i++] = "--thread"; argv[i++] = threadId; #endif // NULL terminated list argv[i] = NULL; startProcess(i, argv, true); } if (crashRecursionCounter < 4) { fprintf(stderr, "Unable to start Dr. Konqi\n"); } _exit(255); }
static KLockFile::LockResult lockFile(const QString &lockFile, KDE_struct_stat &st_buf, bool &linkCountSupport, const KComponentData &componentData) { QByteArray lockFileName = QFile::encodeName( lockFile ); int result = KDE_lstat( lockFileName, &st_buf ); if (result == 0) return KLockFile::LockFail; KTemporaryFile uniqueFile(componentData); uniqueFile.setFileTemplate(lockFile); if (!uniqueFile.open()) return KLockFile::LockError; uniqueFile.setPermissions(QFile::ReadUser|QFile::WriteUser|QFile::ReadGroup|QFile::ReadOther); char hostname[256]; hostname[0] = 0; gethostname(hostname, 255); hostname[255] = 0; QString componentName = componentData.componentName(); QTextStream stream(&uniqueFile); stream << QString::number(getpid()) << endl << componentName << endl << hostname << endl; stream.flush(); QByteArray uniqueName = QFile::encodeName( uniqueFile.fileName() ); // Create lock file result = ::link( uniqueName, lockFileName ); if (result != 0) return KLockFile::LockError; if (!linkCountSupport) return KLockFile::LockOK; KDE_struct_stat st_buf2; result = KDE_lstat( uniqueName, &st_buf2 ); if (result != 0) return KLockFile::LockError; result = KDE_lstat( lockFileName, &st_buf ); if (result != 0) return KLockFile::LockError; if (st_buf != st_buf2 || S_ISLNK(st_buf.st_mode) || S_ISLNK(st_buf2.st_mode)) { // SMBFS supports hardlinks by copying the file, as a result the above test will always fail // cifs increases link count artifically but the inodes are still different if ((st_buf2.st_nlink > 1 || ((st_buf.st_nlink == 1) && (st_buf2.st_nlink == 1))) && (st_buf.st_ino != st_buf2.st_ino)) { linkCountSupport = testLinkCountSupport(uniqueName); if (!linkCountSupport) return KLockFile::LockOK; // Link count support is missing... assume everything is OK. } return KLockFile::LockFail; } return KLockFile::LockOK; }