Source Code (Use browser search to find items of interest.)

Class Index

kcontrol'KRootOptions (./kdebase/kcontrol/konq/rootopts.h:32)

class KRootOptions : public KCModule
{
        Q_OBJECT
public:
        KRootOptions(KConfig *config, QWidget *parent = 0L, const char *name = 0L );
        virtual void load();
        virtual void save();
        virtual void defaults();

private slots:

	void changed();


private:
        KConfig *g_pConfig;

        // Checkboxes
        QCheckBox *showHiddenBox;
        QCheckBox *VertAlignBox;

        // Combo for the menus
        void fillMenuCombo( QComboBox * combo );
        //QComboBox *leftComboBox;
        QComboBox *middleComboBox;
        QComboBox *rightComboBox;
        typedef enum { NOTHING = 0, WINDOWLISTMENU, DESKTOPMENU, APPMENU } menuChoice;

        // Desktop Paths
        QLineEdit *leDesktop;
        QLineEdit *leTrash;
        QLineEdit *leTemplates;
        QLineEdit *leAutostart;
        void moveDir( QString src, QString dest );
private slots:
        void slotResult( KIO::Job * job );
};

kcontrol'KRootOptions::KRootOptions() (./kdebase/kcontrol/konq/rootopts.cpp:44)

KRootOptions::KRootOptions(KConfig *config, QWidget *parent, const char *name )
    : KCModule( parent, name ), g_pConfig(config)
{
  QLabel * tmpLabel;

kcontrol'KRootOptions::fillMenuCombo() (./kdebase/kcontrol/konq/rootopts.cpp:150)

void KRootOptions::fillMenuCombo( QComboBox * combo )
{
  combo->insertItem( i18n("No action") );
  combo->insertItem( i18n("Window List Menu") );
  combo->insertItem( i18n("Desktop Menu") );
  combo->insertItem( i18n("Application Menu") );
}


kcontrol'KRootOptions::load() (./kdebase/kcontrol/konq/rootopts.cpp:158)

void KRootOptions::load()
{
    g_pConfig->setGroup( "Desktop Icons" );
    bool bShowHidden = g_pConfig->readBoolEntry("ShowHidden", DEFAULT_SHOW_HIDDEN_ROOT_ICONS);
    showHiddenBox->setChecked(bShowHidden);
    bool bVertAlign = g_pConfig->readNumEntry("VertAlign", DEFAULT_VERT_ALIGN);
    VertAlignBox->setChecked(bVertAlign);
    //
    g_pConfig->setGroup( "Mouse Buttons" );
    QString s;
    /*
    s = g_pConfig->readEntry( "Left", "None" );
    for ( int c = 0 ; c < 4 ; c ++ )
      if (s == s_choices[c])
      { leftComboBox->setCurrentItem( c ); break; }
    */
    s = g_pConfig->readEntry( "Middle", "WindowListMenu" );
    for ( int c = 0 ; c < 4 ; c ++ )
      if (s == s_choices[c])
      { middleComboBox->setCurrentItem( c ); break; }
    s = g_pConfig->readEntry( "Right", "DesktopMenu" );
    for ( int c = 0 ; c < 4 ; c ++ )
      if (s == s_choices[c])
      { rightComboBox->setCurrentItem( c ); break; }

    // Desktop Paths
    leDesktop->setText( KGlobalSettings::desktopPath() );
    leTrash->setText( KGlobalSettings::trashPath() );
    leTemplates->setText( KGlobalSettings::templatesPath() );
    leAutostart->setText( KGlobalSettings::autostartPath() );
}


kcontrol'KRootOptions::defaults() (./kdebase/kcontrol/konq/rootopts.cpp:190)

void KRootOptions::defaults()
{
    showHiddenBox->setChecked(DEFAULT_SHOW_HIDDEN_ROOT_ICONS);
    VertAlignBox->setChecked(true);
    //leftComboBox->setCurrentItem( NOTHING );
    middleComboBox->setCurrentItem( WINDOWLISTMENU );
    rightComboBox->setCurrentItem( DESKTOPMENU );

    // Desktop Paths
    leDesktop->setText( QDir::homeDirPath() + "/Desktop/" );
    leTrash->setText( QDir::homeDirPath() + "/Desktop/Trash/" );
    leTemplates->setText( QDir::homeDirPath() + "/Desktop/Templates/" );
    leAutostart->setText( QDir::homeDirPath() + "/Desktop/Autostart/" );
}


kcontrol'KRootOptions::save() (./kdebase/kcontrol/konq/rootopts.cpp:205)

void KRootOptions::save()
{
    g_pConfig->setGroup( "Desktop Icons" );
    g_pConfig->writeEntry("ShowHidden", showHiddenBox->isChecked());
    g_pConfig->writeEntry("VertAlign",VertAlignBox->isChecked());
    g_pConfig->setGroup( "Mouse Buttons" );
    g_pConfig->writeEntry("Left", "" /* s_choices[ leftComboBox->currentItem() ]*/);
    g_pConfig->writeEntry("Middle", s_choices[ middleComboBox->currentItem() ]);
    g_pConfig->writeEntry("Right", s_choices[ rightComboBox->currentItem() ]);

    KConfig *config = KGlobal::config();
    KConfigGroupSaver cgs( config, "Paths" );

    bool pathChanged = false;

    if ( leDesktop->text() != KGlobalSettings::desktopPath() )
    {
        //TODO
        // Test which other paths were inside this one (as it is by default)
        // and for each, test where it should go.
        // * Inside destination -> let them be moved with the desktop (but adjust name if necessary)
        // * Not inside destination -> move first
        // !!!

        moveDir( KGlobalSettings::desktopPath(), leDesktop->text() );
        config->writeEntry( "Desktop", leDesktop->text(), true, true );
        pathChanged = true;
    }

    if ( leTrash->text() != KGlobalSettings::trashPath() )
    {
        moveDir( KGlobalSettings::trashPath(), leTrash->text() );
        config->writeEntry( "Trash", leTrash->text(), true, true );
        pathChanged = true;
    }

    if ( leTemplates->text() != KGlobalSettings::templatesPath() )
    {
        moveDir( KGlobalSettings::templatesPath(), leTemplates->text() );
        config->writeEntry( "Templates", leTemplates->text(), true, true );
        pathChanged = true;
    }

    if ( leAutostart->text() != KGlobalSettings::autostartPath() )
    {
        moveDir( KGlobalSettings::autostartPath(), leAutostart->text() );
        config->writeEntry( "Autostart", leAutostart->text(), true, true );
        pathChanged = true;
    }

    if (pathChanged)
        KIPC::sendMessageAll(KIPC::SettingsChanged, KApplication::SETTINGS_PATHS);

    config->sync();
    g_pConfig->sync();

}


kcontrol'KRootOptions::moveDir() (./kdebase/kcontrol/konq/rootopts.cpp:263)

void KRootOptions::moveDir( QString src, QString dest )
{
    KURL::encode(src);
    KURL::encode(dest);
    KIO::Job * job = KIO::move( KURL(src), KURL(dest) );
    connect( job, SIGNAL( result( KIO::Job * ) ), this, SLOT( slotResult( KIO::Job * ) ) );
    // wait for job
    qApp->enter_loop();
}


kcontrol'KRootOptions::slotResult() (./kdebase/kcontrol/konq/rootopts.cpp:273)

void KRootOptions::slotResult( KIO::Job * job )
{
    qApp->exit_loop();
    if (job->error())
        job->showErrorDialog(this);
}



kcontrol'KRootOptions::changed() (./kdebase/kcontrol/konq/rootopts.cpp:281)

void KRootOptions::changed()
{
  emit KCModule::changed(true);
}