~neon/nepomuk-core/master

« back to all changes in this revision

Viewing changes to kcm/nepomukserverkcm.cpp

  • Committer: Sebastian Trueg
  • Date: 2011-08-10 21:28:28 UTC
  • mto: (0.1.1504)
  • mto: This revision was merged to the branch mainline in revision 835.
  • Revision ID: git-v1:2789e7236245ff119b58b7c5008ca6ab1506820c
Replaced the term "strigi" with "file indexer" everywhere.

The only exception is the config file so we do not loose folder
configurations and do not have to do tedious config migration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
133
133
Nepomuk::ServerConfigModule::ServerConfigModule( QWidget* parent, const QVariantList& args )
134
134
    : KCModule( NepomukConfigModuleFactory::componentData(), parent, args ),
135
135
      m_serverInterface( 0 ),
136
 
      m_strigiInterface( 0 ),
 
136
      m_fileIndexerInterface( 0 ),
137
137
      m_failedToInitialize( false )
138
138
{
139
139
    KAboutData *about = new KAboutData(
153
153
        m_indexFolderSelectionDialog = new IndexFolderSelectionDialog( this );
154
154
 
155
155
        QDBusServiceWatcher * watcher = new QDBusServiceWatcher( this );
156
 
        watcher->addWatchedService( QLatin1String("org.kde.nepomuk.services.nepomukstrigiservice") );
 
156
        watcher->addWatchedService( QLatin1String("org.kde.nepomuk.services.nepomukfileindexer") );
157
157
        watcher->addWatchedService( QLatin1String("org.kde.NepomukServer") );
158
158
        watcher->setConnection( QDBusConnection::sessionBus() );
159
159
        watcher->setWatchMode( QDBusServiceWatcher::WatchForRegistration | QDBusServiceWatcher::WatchForUnregistration );
165
165
 
166
166
        recreateInterfaces();
167
167
 
168
 
        connect( m_checkEnableStrigi, SIGNAL( toggled(bool) ),
 
168
        connect( m_checkEnableFileIndexer, SIGNAL( toggled(bool) ),
169
169
                 this, SLOT( changed() ) );
170
170
        connect( m_checkEnableNepomuk, SIGNAL( toggled(bool) ),
171
171
                 this, SLOT( changed() ) );
235
235
 
236
236
Nepomuk::ServerConfigModule::~ServerConfigModule()
237
237
{
238
 
    delete m_strigiInterface;
 
238
    delete m_fileIndexerInterface;
239
239
    delete m_serverInterface;
240
240
}
241
241
 
248
248
    // 1. basic setup
249
249
    KConfig config( "nepomukserverrc" );
250
250
    m_checkEnableNepomuk->setChecked( config.group( "Basic Settings" ).readEntry( "Start Nepomuk", true ) );
251
 
    m_checkEnableStrigi->setChecked( config.group( "Service-nepomukstrigiservice" ).readEntry( "autostart", true ) );
252
 
 
253
 
 
254
 
    // 2. strigi settings
255
 
    KConfig strigiConfig( "nepomukstrigirc" );
256
 
    m_indexFolderSelectionDialog->setIndexHiddenFolders( strigiConfig.group( "General" ).readEntry( "index hidden folders", false ) );
257
 
    m_indexFolderSelectionDialog->setFolders( strigiConfig.group( "General" ).readPathEntry( "folders", defaultFolders() ),
258
 
                                              strigiConfig.group( "General" ).readPathEntry( "exclude folders", QStringList() ) );
259
 
    m_indexFolderSelectionDialog->setExcludeFilters( strigiConfig.group( "General" ).readEntry( "exclude filters", Nepomuk::defaultExcludeFilterList() ) );
260
 
 
261
 
    const bool indexNewlyMounted = strigiConfig.group( "RemovableMedia" ).readEntry( "index newly mounted", false );
262
 
    const bool askIndividually = strigiConfig.group( "RemovableMedia" ).readEntry( "ask user", false );
 
251
    m_checkEnableFileIndexer->setChecked( config.group( "Service-nepomukfileindexer" ).readEntry( "autostart", true ) );
 
252
 
 
253
 
 
254
    // 2. file indexer settings
 
255
    KConfig fileIndexerConfig( "nepomukstrigirc" );
 
256
    m_indexFolderSelectionDialog->setIndexHiddenFolders( fileIndexerConfig.group( "General" ).readEntry( "index hidden folders", false ) );
 
257
    m_indexFolderSelectionDialog->setFolders( fileIndexerConfig.group( "General" ).readPathEntry( "folders", defaultFolders() ),
 
258
                                              fileIndexerConfig.group( "General" ).readPathEntry( "exclude folders", QStringList() ) );
 
259
    m_indexFolderSelectionDialog->setExcludeFilters( fileIndexerConfig.group( "General" ).readEntry( "exclude filters", Nepomuk::defaultExcludeFilterList() ) );
 
260
 
 
261
    const bool indexNewlyMounted = fileIndexerConfig.group( "RemovableMedia" ).readEntry( "index newly mounted", false );
 
262
    const bool askIndividually = fileIndexerConfig.group( "RemovableMedia" ).readEntry( "ask user", false );
263
263
    // combobox items: 0 - ignore, 1 - index all, 2 - ask user
264
264
    m_comboRemovableMediaHandling->setCurrentIndex(int(indexNewlyMounted) + int(askIndividually));
265
265
 
303
303
    m_labelIndexFolders->setText( buildFolderLabel( m_indexFolderSelectionDialog->includeFolders(),
304
304
                                                    m_indexFolderSelectionDialog->excludeFolders() ) );
305
305
    recreateInterfaces();
306
 
    updateStrigiStatus();
 
306
    updateFileIndexerStatus();
307
307
    updateNepomukServerStatus();
308
308
 
309
309
    // 7. all values loaded -> no changes
322
322
    // 1. change the settings (in case the server is not running)
323
323
    KConfig config( "nepomukserverrc" );
324
324
    config.group( "Basic Settings" ).writeEntry( "Start Nepomuk", m_checkEnableNepomuk->isChecked() );
325
 
    config.group( "Service-nepomukstrigiservice" ).writeEntry( "autostart", m_checkEnableStrigi->isChecked() );
 
325
    config.group( "Service-nepomukfileindexer" ).writeEntry( "autostart", m_checkEnableFileIndexer->isChecked() );
326
326
    config.group( "main Settings" ).writeEntry( "Maximum memory", m_sliderMemoryUsage->value() );
327
327
 
328
328
 
329
 
    // 2. update Strigi config
330
 
    KConfig strigiConfig( "nepomukstrigirc" );
331
 
    strigiConfig.group( "General" ).writePathEntry( "folders", includeFolders );
332
 
    strigiConfig.group( "General" ).writePathEntry( "exclude folders", excludeFolders );
333
 
    strigiConfig.group( "General" ).writeEntry( "exclude filters", m_indexFolderSelectionDialog->excludeFilters() );
334
 
    strigiConfig.group( "General" ).writeEntry( "index hidden folders", m_indexFolderSelectionDialog->indexHiddenFolders() );
 
329
    // 2. update file indexer config
 
330
    KConfig fileIndexerConfig( "nepomukstrigirc" );
 
331
    fileIndexerConfig.group( "General" ).writePathEntry( "folders", includeFolders );
 
332
    fileIndexerConfig.group( "General" ).writePathEntry( "exclude folders", excludeFolders );
 
333
    fileIndexerConfig.group( "General" ).writeEntry( "exclude filters", m_indexFolderSelectionDialog->excludeFilters() );
 
334
    fileIndexerConfig.group( "General" ).writeEntry( "index hidden folders", m_indexFolderSelectionDialog->indexHiddenFolders() );
335
335
 
336
336
    // combobox items: 0 - ignore, 1 - index all, 2 - ask user
337
 
    strigiConfig.group( "RemovableMedia" ).writeEntry( "index newly mounted", m_comboRemovableMediaHandling->currentIndex() > 0 );
338
 
    strigiConfig.group( "RemovableMedia" ).writeEntry( "ask user", m_comboRemovableMediaHandling->currentIndex() == 2 );
 
337
    fileIndexerConfig.group( "RemovableMedia" ).writeEntry( "index newly mounted", m_comboRemovableMediaHandling->currentIndex() > 0 );
 
338
    fileIndexerConfig.group( "RemovableMedia" ).writeEntry( "ask user", m_comboRemovableMediaHandling->currentIndex() == 2 );
339
339
 
340
340
 
341
341
    // 3. update kio_nepomuksearch config
357
357
    // 5. update the current state of the nepomuk server
358
358
    if ( m_serverInterface->isValid() ) {
359
359
        m_serverInterface->enableNepomuk( m_checkEnableNepomuk->isChecked() );
360
 
        m_serverInterface->enableStrigi( m_checkEnableStrigi->isChecked() );
 
360
        m_serverInterface->enableFileIndexer( m_checkEnableFileIndexer->isChecked() );
361
361
    }
362
362
    else if( m_checkEnableNepomuk->isChecked() ) {
363
363
        if ( !QProcess::startDetached( QLatin1String( "nepomukserver" ) ) ) {
371
371
 
372
372
    // 6. update state
373
373
    recreateInterfaces();
374
 
    updateStrigiStatus();
 
374
    updateFileIndexerStatus();
375
375
    updateNepomukServerStatus();
376
376
 
377
377
 
385
385
    if ( !m_nepomukAvailable )
386
386
        return;
387
387
 
388
 
    m_checkEnableStrigi->setChecked( true );
 
388
    m_checkEnableFileIndexer->setChecked( true );
389
389
    m_checkEnableNepomuk->setChecked( true );
390
390
    m_indexFolderSelectionDialog->setIndexHiddenFolders( false );
391
391
    m_indexFolderSelectionDialog->setExcludeFilters( Nepomuk::defaultExcludeFilterList() );
409
409
}
410
410
 
411
411
 
412
 
void Nepomuk::ServerConfigModule::updateStrigiStatus()
 
412
void Nepomuk::ServerConfigModule::updateFileIndexerStatus()
413
413
{
414
 
    if ( QDBusConnection::sessionBus().interface()->isServiceRegistered( "org.kde.nepomuk.services.nepomukstrigiservice" ) ) {
415
 
        if ( org::kde::nepomuk::ServiceControl( "org.kde.nepomuk.services.nepomukstrigiservice", "/servicecontrol", QDBusConnection::sessionBus() ).isInitialized() ) {
416
 
            QString status = m_strigiInterface->userStatusString();
 
414
    if ( QDBusConnection::sessionBus().interface()->isServiceRegistered( "org.kde.nepomuk.services.nepomukfileindexer" ) ) {
 
415
        if ( org::kde::nepomuk::ServiceControl( "org.kde.nepomuk.services.nepomukfileindexer", "/servicecontrol", QDBusConnection::sessionBus() ).isInitialized() ) {
 
416
            QString status = m_fileIndexerInterface->userStatusString();
417
417
            if ( status.isEmpty() ) {
418
 
                m_labelStrigiStatus->setText( i18nc( "@info:status %1 is an error message returned by a dbus interface.",
419
 
                                                     "Failed to contact Strigi indexer (%1)",
420
 
                                                     m_strigiInterface->lastError().message() ) );
 
418
                m_labelFileIndexerStatus->setText( i18nc( "@info:status %1 is an error message returned by a dbus interface.",
 
419
                                                         "Failed to contact File Indexer service (%1)",
 
420
                                                         m_fileIndexerInterface->lastError().message() ) );
421
421
            }
422
422
            else {
423
423
                m_failedToInitialize = false;
424
 
                m_labelStrigiStatus->setText( status );
 
424
                m_labelFileIndexerStatus->setText( status );
425
425
            }
426
426
        }
427
427
        else {
428
428
            m_failedToInitialize = true;
429
 
            m_labelStrigiStatus->setText( i18nc( "@info:status", "File indexing service failed to initialize, most likely due to an installation problem." ) );
 
429
            m_labelFileIndexerStatus->setText( i18nc( "@info:status", "File indexing service failed to initialize, most likely due to an installation problem." ) );
430
430
        }
431
431
    }
432
432
    else if ( !m_failedToInitialize ) {
433
 
        m_labelStrigiStatus->setText( i18nc( "@info:status", "File indexing service not running." ) );
 
433
        m_labelFileIndexerStatus->setText( i18nc( "@info:status", "File indexing service not running." ) );
434
434
    }
435
435
}
436
436
 
456
456
 
457
457
void Nepomuk::ServerConfigModule::recreateInterfaces()
458
458
{
459
 
    delete m_strigiInterface;
 
459
    delete m_fileIndexerInterface;
460
460
    delete m_serverInterface;
461
461
 
462
 
    m_strigiInterface = new org::kde::nepomuk::Strigi( "org.kde.nepomuk.services.nepomukstrigiservice", "/nepomukstrigiservice", QDBusConnection::sessionBus() );
 
462
    m_fileIndexerInterface = new org::kde::nepomuk::FileIndexer( "org.kde.nepomuk.services.nepomukfileindexer", "/nepomukfileindexer", QDBusConnection::sessionBus() );
463
463
    m_serverInterface = new org::kde::NepomukServer( "org.kde.NepomukServer", "/nepomukserver", QDBusConnection::sessionBus() );
464
464
 
465
 
    connect( m_strigiInterface, SIGNAL( statusChanged() ),
466
 
             this, SLOT( updateStrigiStatus() ) );
 
465
    connect( m_fileIndexerInterface, SIGNAL( statusChanged() ),
 
466
             this, SLOT( updateFileIndexerStatus() ) );
467
467
}
468
468
 
469
469