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*)) ); }
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()); }
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; }