/* * Copyright (c) 2003 Lubos Lunak * * 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. */ #include "konqueror.h" #include #include #include #include #include #include #include #include namespace KCMPerformance { Konqueror::Konqueror( TQWidget* parent_P ) : Konqueror_ui( parent_P ) { TQWhatsThis::add( rb_never_reuse, i18n( "Disables the minimization of memory usage and allows you " "to make each browsing activity independent from the others" )); TQWhatsThis::add( rb_file_browsing_reuse, i18n( "With this option activated, only one instance of Konqueror " "used for file browsing will exist in the memory of your computer " "at any moment, " "no matter how many file browsing windows you open, " "thus reducing resource requirements." "

Be aware that this also means that, if something goes wrong, " "all your file browsing windows will be closed simultaneously" )); TQWhatsThis::add( rb_always_reuse, i18n( "With this option activated, only one instance of Konqueror " "will exist in the memory of your computer at any moment, " "no matter how many browsing windows you open, " "thus reducing resource requirements." "

Be aware that this also means that, if something goes wrong, " "all your browsing windows will be closed simultaneously." )); connect( rb_never_reuse, TQT_SIGNAL( clicked()), TQT_SIGNAL( changed())); connect( rb_file_browsing_reuse, TQT_SIGNAL( clicked()), TQT_SIGNAL( changed())); connect( rb_always_reuse, TQT_SIGNAL( clicked()), TQT_SIGNAL( changed())); rb_file_browsing_reuse->setChecked( true ); TQString tmp = i18n( "If non-zero, this option allows keeping Konqueror instances " "in memory after all their windows have been closed, up to the " "number specified in this option." "

When a new Konqueror instance is needed, one of these preloaded " "instances will be reused instead, improving responsiveness at " "the expense of the memory required by the preloaded instances." ); TQWhatsThis::add( sb_preload_count, tmp ); TQWhatsThis::add( lb_preload_count, tmp ); TQWhatsThis::add( cb_preload_on_startup, i18n( "If enabled, an instance of Konqueror will be preloaded after the ordinary TDE " "startup sequence." "

This will make the first Konqueror window open faster, but " "at the expense of longer TDE startup times (but you will be able to work " "while it is loading, so you may not even notice that it is taking longer)." )); TQWhatsThis::add( cb_always_have_preloaded, i18n( "If enabled, TDE will always try to have one preloaded Konqueror instance ready; " "preloading a new instance in the background whenever there is not one available, " "so that windows will always open quickly." "

Warning: In some cases, it is actually possible that this will " "reduce perceived performance." )); connect( sb_preload_count, TQT_SIGNAL( valueChanged( int )), TQT_SLOT( preload_count_changed( int ))); connect( sb_preload_count, TQT_SIGNAL( valueChanged( int )), TQT_SIGNAL( changed())); connect( cb_preload_on_startup, TQT_SIGNAL( clicked()), TQT_SIGNAL( changed())); connect( cb_always_have_preloaded, TQT_SIGNAL( clicked()), TQT_SIGNAL( changed())); defaults(); } void Konqueror::preload_count_changed( int count ) { cb_preload_on_startup->setEnabled( count >= 1 ); // forcing preloading with count == 1 can often do more harm than good, because // if there's one konqy preloaded, and the user requests "starting" new konqueror, // the preloaded instance will be used, new one will be preloaded, and if the user soon // "quits" konqueror, one of the instances will have to be terminated cb_always_have_preloaded->setEnabled( count >= 2 ); } void Konqueror::load( bool useDefaults ) { TDEConfig cfg( "konquerorrc", true ); cfg.setReadDefaults( useDefaults ); cfg.setGroup( "Reusing" ); allowed_parts = cfg.readEntry( "SafeParts", "SAFE" ); if( allowed_parts == "ALL" ) rb_always_reuse->setChecked( true ); else if( allowed_parts.isEmpty()) rb_never_reuse->setChecked( true ); else rb_file_browsing_reuse->setChecked( true ); sb_preload_count->setValue( cfg.readNumEntry( "MaxPreloadCount", 1 )); cb_always_have_preloaded->setChecked( cfg.readBoolEntry( "AlwaysHavePreloaded", false )); cb_preload_on_startup->setChecked( cfg.readBoolEntry( "PreloadOnStartup", false )); } void Konqueror::save() { TDEConfig cfg( "konquerorrc" ); cfg.setGroup( "Reusing" ); if( rb_always_reuse->isChecked()) allowed_parts = "ALL"; else if( rb_never_reuse->isChecked()) allowed_parts = ""; else { if( allowed_parts.isEmpty() || allowed_parts == "ALL" ) allowed_parts = "SAFE"; // else - keep allowed_parts as read from the file, as the user may have modified the list there } cfg.writeEntry( "SafeParts", allowed_parts ); int count = sb_preload_count->value(); cfg.writeEntry( "MaxPreloadCount", count ); cfg.writeEntry( "PreloadOnStartup", cb_preload_on_startup->isChecked() && count >= 1 ); cfg.writeEntry( "AlwaysHavePreloaded", cb_always_have_preloaded->isChecked() && count >= 2 ); cfg.sync(); DCOPRef ref1( "konqueror*", "KonquerorIface" ); ref1.send( "reparseConfiguration()" ); DCOPRef ref2( "kded", "konqy_preloader" ); ref2.send( "reconfigure()" ); } void Konqueror::defaults() { load( true ); } } // namespace #include "konqueror.moc"