|
|
|
/**
|
|
|
|
* Copyright (c) 2001 David Faure <david@mandrakesoft.com>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Behaviour options for konqueror
|
|
|
|
|
|
|
|
#include <tqcheckbox.h>
|
|
|
|
#include <tqlabel.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <tqvbox.h>
|
|
|
|
#include <tqvbuttongroup.h>
|
|
|
|
#include <tqvgroupbox.h>
|
|
|
|
#include <tqwhatsthis.h>
|
|
|
|
|
|
|
|
#include <dcopclient.h>
|
|
|
|
|
|
|
|
#include <tdeapplication.h>
|
|
|
|
#include <tdeconfig.h>
|
|
|
|
#include <tdeio/uiserver_stub.h>
|
|
|
|
#include <tdelocale.h>
|
|
|
|
#include <konq_defaults.h>
|
|
|
|
#include <kstandarddirs.h>
|
|
|
|
#include <kurlrequester.h>
|
|
|
|
|
|
|
|
#include "behaviour.h"
|
|
|
|
|
|
|
|
KBehaviourOptions::KBehaviourOptions(TDEConfig *config, TQString group, TQWidget *parent, const char * )
|
|
|
|
: TDECModule(parent, "kcmkonq"), g_pConfig(config), groupname(group)
|
|
|
|
{
|
|
|
|
TQLabel * label;
|
|
|
|
|
|
|
|
setQuickHelp( i18n("<h1>Konqueror Behavior</h1> You can configure how Konqueror behaves as a file manager here."));
|
|
|
|
|
|
|
|
TQVBoxLayout *lay = new TQVBoxLayout( this, 0, KDialog::spacingHint() );
|
|
|
|
|
|
|
|
TQVGroupBox * miscGb = new TQVGroupBox(i18n("Misc Options"), this);
|
|
|
|
lay->addWidget( miscGb );
|
|
|
|
TQHBox *hbox = new TQHBox(miscGb);
|
|
|
|
TQVBox *vbox = new TQVBox(hbox);
|
|
|
|
|
|
|
|
// ----
|
|
|
|
|
|
|
|
winPixmap = new TQLabel(hbox);
|
|
|
|
winPixmap->setFrameStyle( TQFrame::StyledPanel | TQFrame::Sunken );
|
|
|
|
winPixmap->setPixmap(TQPixmap(locate("data",
|
|
|
|
"kcontrol/pics/onlyone.png")));
|
|
|
|
winPixmap->setFixedSize( winPixmap->sizeHint() );
|
|
|
|
|
|
|
|
|
|
|
|
// ----
|
|
|
|
|
|
|
|
cbNewWin = new TQCheckBox(i18n("Open folders in separate &windows"), vbox);
|
|
|
|
TQWhatsThis::add( cbNewWin, i18n("If this option is checked, Konqueror will open a new window when "
|
|
|
|
"you open a folder, rather than showing that folder's contents in the current window."));
|
|
|
|
connect(cbNewWin, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
connect(cbNewWin, TQ_SIGNAL(toggled(bool)), TQ_SLOT(updateWinPixmap(bool)));
|
|
|
|
|
|
|
|
// ----
|
|
|
|
|
|
|
|
cbListProgress = new TQCheckBox( i18n( "&Show network operations in a single window" ), vbox );
|
|
|
|
connect(cbListProgress, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQWhatsThis::add( cbListProgress, i18n("Checking this option will group the"
|
|
|
|
" progress information for all network file transfers into a single window"
|
|
|
|
" with a list. When the option is not checked, all transfers appear in a"
|
|
|
|
" separate window.") );
|
|
|
|
|
|
|
|
|
|
|
|
// ----
|
|
|
|
|
|
|
|
cbShowArchivesAsFolders = new TQCheckBox( i18n( "Show archived &files as folders" ), vbox );
|
|
|
|
connect(cbShowArchivesAsFolders, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQWhatsThis::add( cbShowArchivesAsFolders, i18n("Checking this option will list archived"
|
|
|
|
" files as folders when using tree view.") );
|
|
|
|
|
|
|
|
|
|
|
|
// --
|
|
|
|
|
|
|
|
cbShowTips = new TQCheckBox( i18n( "Show file &tips" ), vbox );
|
|
|
|
connect(cbShowTips, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQWhatsThis::add( cbShowTips, i18n("Here you can control if, when moving the mouse over a file, you want to see a "
|
|
|
|
"small popup window with additional information about that file."
|
|
|
|
"This feature requires 'Enable tooltips' in KControl, Appearance & Themes, Style."));
|
|
|
|
|
|
|
|
connect(cbShowTips, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotShowTips(bool)));
|
|
|
|
/*
|
|
|
|
//connect(cbShowTips, TQ_SIGNAL(toggled(bool)), sbToolTip, TQ_SLOT(setEnabled(bool)));
|
|
|
|
//connect(cbShowTips, TQ_SIGNAL(toggled(bool)), fileTips, TQ_SLOT(setEnabled(bool)));
|
|
|
|
fileTips->setBuddy(sbToolTip);
|
|
|
|
TQString tipstr = i18n("If you move the mouse over a file, you usually see a small popup window that shows some "
|
|
|
|
"additional information about that file. Here, you can set how many items of information "
|
|
|
|
"are displayed");
|
|
|
|
TQWhatsThis::add( fileTips, tipstr );
|
|
|
|
TQWhatsThis::add( sbToolTip, tipstr );
|
|
|
|
*/
|
|
|
|
|
|
|
|
TQHBox *hboxpreview = new TQHBox(vbox);
|
|
|
|
TQWidget* spacer = new TQWidget( hboxpreview );
|
|
|
|
spacer->setMinimumSize( 20, 0 );
|
|
|
|
spacer->setSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Minimum );
|
|
|
|
|
|
|
|
cbShowPreviewsInTips = new TQCheckBox( i18n( "Show &previews in file tips" ), hboxpreview );
|
|
|
|
connect(cbShowPreviewsInTips, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQWhatsThis::add( cbShowPreviewsInTips, i18n("Here you can control if you want the "
|
|
|
|
"popup window to contain a larger preview for the file, when moving the mouse over it."));
|
|
|
|
|
|
|
|
cbRenameDirectlyIcon = new TQCheckBox(i18n("Rename icons in&line"), vbox);
|
|
|
|
TQWhatsThis::add(cbRenameDirectlyIcon, i18n("Checking this option will allow files to be "
|
|
|
|
"renamed by clicking directly on the icon name. "));
|
|
|
|
connect(cbRenameDirectlyIcon, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
cbDoubleClickMoveToParent = new TQCheckBox(i18n("Double click on empty area to move to parent folder"), vbox);
|
|
|
|
TQWhatsThis::add(cbDoubleClickMoveToParent, i18n("When this option is enabled, double clicking an "
|
|
|
|
"empty area will navigate to the parent folder."));
|
|
|
|
connect(cbDoubleClickMoveToParent, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQHBoxLayout *hlay = new TQHBoxLayout( lay );
|
|
|
|
|
|
|
|
label = new TQLabel(i18n("Home &URL:"), this);
|
|
|
|
hlay->addWidget( label );
|
|
|
|
|
|
|
|
homeURL = new KURLRequester(this);
|
|
|
|
homeURL->setMode(KFile::Directory);
|
|
|
|
homeURL->setCaption(i18n("Select Home Folder"));
|
|
|
|
hlay->addWidget( homeURL );
|
|
|
|
connect(homeURL, TQ_SIGNAL(textChanged(const TQString &)), this, TQ_SLOT(changed()));
|
|
|
|
label->setBuddy(homeURL);
|
|
|
|
|
|
|
|
TQString homestr = i18n("This is the URL (e.g. a folder or a web page) where "
|
|
|
|
"Konqueror will jump to when the \"Home\" button is pressed. "
|
|
|
|
"This is usually your home folder, symbolized by a 'tilde' (~).");
|
|
|
|
TQWhatsThis::add( label, homestr );
|
|
|
|
TQWhatsThis::add( homeURL, homestr );
|
|
|
|
|
|
|
|
lay->addItem(new TQSpacerItem(0,20,TQSizePolicy::Fixed,TQSizePolicy::Fixed));
|
|
|
|
|
|
|
|
cbShowDeleteCommand = new TQCheckBox( i18n( "Show 'Delete' context me&nu entries which bypass the trashcan" ), this );
|
|
|
|
lay->addWidget( cbShowDeleteCommand );
|
|
|
|
connect(cbShowDeleteCommand, TQ_SIGNAL(clicked()), this, TQ_SLOT(changed()));
|
|
|
|
|
|
|
|
TQWhatsThis::add( cbShowDeleteCommand, i18n("Check this if you want 'Delete' menu commands to be displayed "
|
|
|
|
"on the desktop and in the file manager's context menus. "
|
|
|
|
"You can always delete files by holding the Shift key "
|
|
|
|
"while calling 'Move to Trash'."));
|
|
|
|
|
|
|
|
TQButtonGroup *bg = new TQVButtonGroup( i18n("Ask Confirmation For"), this );
|
|
|
|
bg->layout()->setSpacing( KDialog::spacingHint() );
|
|
|
|
TQWhatsThis::add( bg, i18n("This option tells Konqueror whether to ask"
|
|
|
|
" for a confirmation when you \"delete\" a file."
|
|
|
|
" <ul><li><em>Move To Trash:</em> moves the file to your trash folder,"
|
|
|
|
" from where it can be recovered very easily.</li>"
|
|
|
|
" <li><em>Delete:</em> simply deletes the file.</li>"
|
|
|
|
" </li></ul>") );
|
|
|
|
|
|
|
|
connect(bg, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( changed() ));
|
|
|
|
|
|
|
|
cbMoveToTrash = new TQCheckBox( i18n("&Move to trash"), bg );
|
|
|
|
|
|
|
|
cbDelete = new TQCheckBox( i18n("D&elete"), bg );
|
|
|
|
|
|
|
|
lay->addWidget(bg);
|
|
|
|
|
|
|
|
lay->addStretch();
|
|
|
|
|
|
|
|
load();
|
|
|
|
}
|
|
|
|
|
|
|
|
KBehaviourOptions::~KBehaviourOptions()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::slotShowTips(bool b)
|
|
|
|
{
|
|
|
|
// sbToolTip->setEnabled( b );
|
|
|
|
cbShowPreviewsInTips->setEnabled( b );
|
|
|
|
// fileTips->setEnabled( b );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::load()
|
|
|
|
{
|
|
|
|
load( false );
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::load( bool useDefaults )
|
|
|
|
{
|
|
|
|
g_pConfig->setReadDefaults( useDefaults );
|
|
|
|
|
|
|
|
g_pConfig->setGroup( groupname );
|
|
|
|
cbNewWin->setChecked( g_pConfig->readBoolEntry("AlwaysNewWin", false) );
|
|
|
|
updateWinPixmap(cbNewWin->isChecked());
|
|
|
|
|
|
|
|
homeURL->setURL(g_pConfig->readPathEntry("HomeURL", "~"));
|
|
|
|
|
|
|
|
bool stips = g_pConfig->readBoolEntry( "ShowFileTips", true );
|
|
|
|
cbShowTips->setChecked( stips );
|
|
|
|
slotShowTips( stips );
|
|
|
|
|
|
|
|
bool showPreviewsIntips = g_pConfig->readBoolEntry( "ShowPreviewsInFileTips", true );
|
|
|
|
cbShowPreviewsInTips->setChecked( showPreviewsIntips );
|
|
|
|
|
|
|
|
cbRenameDirectlyIcon->setChecked( g_pConfig->readBoolEntry("RenameIconDirectly", DEFAULT_RENAMEICONDIRECTLY ) );
|
|
|
|
|
|
|
|
cbDoubleClickMoveToParent->setChecked(g_pConfig->readBoolEntry("DoubleClickMoveToParent", true));
|
|
|
|
|
|
|
|
TDEConfig globalconfig("kdeglobals", true, false);
|
|
|
|
globalconfig.setGroup( "KDE" );
|
|
|
|
cbShowDeleteCommand->setChecked( globalconfig.readBoolEntry("ShowDeleteCommand", false) );
|
|
|
|
|
|
|
|
// if (!stips) sbToolTip->setEnabled( false );
|
|
|
|
if (!stips) cbShowPreviewsInTips->setEnabled( false );
|
|
|
|
|
|
|
|
// sbToolTip->setValue( g_pConfig->readNumEntry( "FileTipItems", 6 ) );
|
|
|
|
|
|
|
|
TDEConfig config("uiserverrc");
|
|
|
|
config.setGroup( "UIServer" );
|
|
|
|
cbListProgress->setChecked( config.readBoolEntry( "ShowList", false ) );
|
|
|
|
|
|
|
|
g_pConfig->setGroup( "Trash" );
|
|
|
|
cbMoveToTrash->setChecked( g_pConfig->readBoolEntry("ConfirmTrash", DEFAULT_CONFIRMTRASH) );
|
|
|
|
cbDelete->setChecked( g_pConfig->readBoolEntry("ConfirmDelete", DEFAULT_CONFIRMDELETE) );
|
|
|
|
|
|
|
|
TDEConfig sidebarconfig("konqsidebartng.rc");
|
|
|
|
sidebarconfig.setGroup( "" );
|
|
|
|
cbShowArchivesAsFolders->setChecked( sidebarconfig.readBoolEntry( "ShowArchivesAsFolders", true ) );
|
|
|
|
|
|
|
|
emit changed( useDefaults );
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::defaults()
|
|
|
|
{
|
|
|
|
load( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::save()
|
|
|
|
{
|
|
|
|
g_pConfig->setGroup( groupname );
|
|
|
|
|
|
|
|
g_pConfig->writeEntry( "AlwaysNewWin", cbNewWin->isChecked() );
|
|
|
|
g_pConfig->writePathEntry( "HomeURL", homeURL->url().isEmpty()? TQString("~") : homeURL->url() );
|
|
|
|
|
|
|
|
g_pConfig->writeEntry( "ShowFileTips", cbShowTips->isChecked() );
|
|
|
|
g_pConfig->writeEntry( "ShowPreviewsInFileTips", cbShowPreviewsInTips->isChecked() );
|
|
|
|
// g_pConfig->writeEntry( "FileTipsItems", sbToolTip->value() );
|
|
|
|
|
|
|
|
g_pConfig->writeEntry( "RenameIconDirectly", cbRenameDirectlyIcon->isChecked());
|
|
|
|
g_pConfig->writeEntry( "DoubleClickMoveToParent", cbDoubleClickMoveToParent->isChecked());
|
|
|
|
|
|
|
|
TDEConfig sidebarconfig("konqsidebartng.rc");
|
|
|
|
sidebarconfig.setGroup( "" );
|
|
|
|
sidebarconfig.writeEntry( "ShowArchivesAsFolders", cbShowArchivesAsFolders->isChecked() );
|
|
|
|
sidebarconfig.sync();
|
|
|
|
|
|
|
|
TDEConfig globalconfig("kdeglobals", false, false);
|
|
|
|
globalconfig.setGroup( "KDE" );
|
|
|
|
globalconfig.writeEntry( "ShowDeleteCommand", cbShowDeleteCommand->isChecked());
|
|
|
|
globalconfig.sync();
|
|
|
|
|
|
|
|
g_pConfig->setGroup( "Trash" );
|
|
|
|
g_pConfig->writeEntry( "ConfirmTrash", cbMoveToTrash->isChecked());
|
|
|
|
g_pConfig->writeEntry( "ConfirmDelete", cbDelete->isChecked());
|
|
|
|
g_pConfig->sync();
|
|
|
|
|
|
|
|
// UIServer setting
|
|
|
|
TDEConfig config("uiserverrc");
|
|
|
|
config.setGroup( "UIServer" );
|
|
|
|
config.writeEntry( "ShowList", cbListProgress->isChecked() );
|
|
|
|
config.sync();
|
|
|
|
|
|
|
|
// Tell the running server
|
|
|
|
if ( kapp->dcopClient()->isApplicationRegistered( "tdeio_uiserver" ) )
|
|
|
|
{
|
|
|
|
UIServer_stub uiserver( "tdeio_uiserver", "UIServer" );
|
|
|
|
uiserver.setListMode( cbListProgress->isChecked() );
|
|
|
|
}
|
|
|
|
|
|
|
|
// Send signal to konqueror
|
|
|
|
TQByteArray data;
|
|
|
|
if ( !kapp->dcopClient()->isAttached() )
|
|
|
|
kapp->dcopClient()->attach();
|
|
|
|
kapp->dcopClient()->send( "konqueror*", "KonquerorIface", "reparseConfiguration()", data );
|
|
|
|
kapp->dcopClient()->send( "kdesktop", "KDesktopIface", "configure()", data );
|
|
|
|
}
|
|
|
|
|
|
|
|
TQString KBehaviourOptions::handbookSection() const
|
|
|
|
{
|
|
|
|
return "fileman-behav";
|
|
|
|
}
|
|
|
|
|
|
|
|
void KBehaviourOptions::updateWinPixmap(bool b)
|
|
|
|
{
|
|
|
|
if (b)
|
|
|
|
winPixmap->setPixmap(TQPixmap(locate("data",
|
|
|
|
"kcontrol/pics/overlapping.png")));
|
|
|
|
else
|
|
|
|
winPixmap->setPixmap(TQPixmap(locate("data",
|
|
|
|
"kcontrol/pics/onlyone.png")));
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "behaviour.moc"
|