//Auto-generated by kalyptus. DO NOT EDIT.
package org.kde.koala;

import org.kde.qt.Qt;
import org.kde.qt.QtSupport;

/**

 Helper class to facilitate working with KConfig / KSimpleConfig
 groups.
 Careful programmers always set the group of a
 KConfig KSimpleConfig object to the group they want to read from
 and set it back to the old one of afterwards. This is usually
 written as:
 <pre>
 String oldgroup config.group();
 config.setGroup( "TheGroupThatIWant" );
 ...
 config.writeEntry( "Blah", "Blubb" );
 config.setGroup( oldgroup );
 </pre>
 In order to facilitate this task, you can use
 KConfigGroupSaver. Simply construct such an object ON THE STACK
 when you want to switch to a new group. Then, when the object goes
 out of scope, the group will automatically be restored. If you
 want to use several different groups within a function or method,
 you can still use KConfigGroupSaver: Simply enclose all work with
 one group (including the creation of the KConfigGroupSaver object)
 in one block.
 KConfigGroup provides similar functionality in a more object oriented
 way.
		@author Matthias Kalle Dalheimer <kalle@kde.org>

		@short Helper class for easier use of KConfig/KSimpleConfig groups.
		@see KConfigBase
		@see KConfig
		@see KSimpleConfig
		@see KConfigGroup

*/
public class KConfigGroupSaver implements QtSupport {
	private long _qt;
	private boolean _allocatedInJavaWorld = true;
	protected KConfigGroupSaver(Class dummy){}

	/**	
		 Constructor. You pass a pointer to the KConfigBase-derived
		 object you want to work with and a string indicating the _new_
		 group.
			@param config The KConfigBase-derived object this
		               KConfigGroupSaver works on.
			@param group The new group that the config object should switch to.
		   		@short    Constructor.
	*/
	public KConfigGroupSaver(KConfigBase config, String group) {
		newKConfigGroupSaver(config,group);
	}
	private native void newKConfigGroupSaver(KConfigBase config, String group);
	public native KConfigBase config();
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}
