KDevelop API Documentation

uichooser_widget.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002   uichooser_widget.cpp - ?
00003                  -------------------
00004     begin                : ?
00005     copyright            : (C) 2003 by the KDevelop team
00006     email                : team@kdevelop.org
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #include <qradiobutton.h>
00019 #include <qbuttongroup.h>
00020 #include <qcheckbox.h>
00021 #include <kmdidefines.h>
00022 #include <kapplication.h>
00023 #include <kconfig.h>
00024 #include <kdebug.h>
00025 #include <kdeversion.h>
00026 
00027 #include "uichooser_part.h"
00028 #include "kdevmainwindow.h"
00029 #include "uichooser_widget.h"
00030 
00031 UIChooserWidget::UIChooserWidget( UIChooserPart * part, QWidget *parent, const char *name)
00032   : UIChooser(parent, name)
00033   ,m_part(part), _lastMode(0L)
00034 {
00035   load();
00036 }
00037 
00038 void UIChooserWidget::load()
00039 {
00040   KConfig *config = kapp->config();
00041   config->setGroup("UI");
00042 
00043   int mdi = config->readNumEntry("MDIMode", KMdi::IDEAlMode);
00044   
00045   switch (mdi)
00046   {
00047   case KMdi::ChildframeMode:
00048     modeMDI->setChecked(true);
00049     _lastMode = modeMDI;
00050     break;
00051   case KMdi::TabPageMode:
00052     modeTab->setChecked(true);
00053     _lastMode = modeTab;
00054     break;
00055   case KMdi::ToplevelMode:
00056     modeToplevel->setChecked(true);
00057     _lastMode = modeToplevel;
00058     break;
00059   case KMdi::IDEAlMode:
00060     modeIDEAl->setChecked(true);
00061     _lastMode = modeIDEAl;
00062     break;
00063   default:
00064     break;
00065   }
00066   
00067     int mdistyle = config->readNumEntry( "MDIStyle", 1 );
00068     switch( mdistyle )
00069     {
00070         case 0:
00071             IconsOnly->setChecked( true );
00072             break;
00073         case 1:
00074             TextOnly->setChecked( true );
00075             break;
00076         case 3:
00077             TextAndIcons->setChecked( true );
00078             break;
00079         default:
00080             TextOnly->setChecked( true );
00081     }
00082     
00083     int tabVisibility = config->readNumEntry( "TabWidgetVisibility", KMdi::AlwaysShowTabs );
00084     switch( tabVisibility )
00085     {
00086         case KMdi::AlwaysShowTabs:
00087             AlwaysShowTabs->setChecked( true );
00088             break;
00089         case KMdi::ShowWhenMoreThanOneTab:
00090             ShowWhenMoreThanOneTab->setChecked( true );
00091             break;
00092         case KMdi::NeverShowTabs:
00093             NeverShowTabs->setChecked( true );
00094             break;
00095     }
00096     
00097     bool CloseOnHover = config->readBoolEntry( "CloseOnHover", false );
00098     bool CloseOnHoverDelay = config->readBoolEntry( "CloseOnHoverDelay", false );
00099     
00100     if ( CloseOnHover && CloseOnHoverDelay )
00101     {
00102         DoDelayedCloseOnHover->setChecked( true );
00103     }
00104     else if ( CloseOnHover && !CloseOnHoverDelay )
00105     {
00106         DoCloseOnHover->setChecked( true );
00107     }
00108     else 
00109     {
00110         DoNotCloseOnHover->setChecked( true );
00111     }
00112     OpenNewTabAfterCurrent->setChecked(config->readBoolEntry( "OpenNewTabAfterCurrent", false ));
00113     ShowTabIcons->setChecked(config->readBoolEntry( "ShowTabIcons", true ));
00114     ShowCloseTabsButton->setChecked(config->readBoolEntry( "ShowCloseTabsButton", true ));
00115 }
00116 
00117 
00118 void UIChooserWidget::save()
00119 {
00120   KConfig *config = kapp->config();
00121   config->setGroup("UI");
00122 
00123   if (modeTab->isChecked())
00124     config->writeEntry("MDIMode", KMdi::TabPageMode);
00125   else if (modeToplevel->isChecked())
00126     config->writeEntry("MDIMode", KMdi::ToplevelMode);
00127   else if (modeMDI->isChecked())
00128     config->writeEntry("MDIMode", KMdi::ChildframeMode);
00129   else
00130     config->writeEntry("MDIMode", KMdi::IDEAlMode); // KMdi-IDEA
00131 
00132     if ( AlwaysShowTabs->isChecked() )
00133     {
00134         config->writeEntry( "TabWidgetVisibility", KMdi::AlwaysShowTabs );
00135     }
00136     else if ( ShowWhenMoreThanOneTab->isChecked() )
00137     {
00138         config->writeEntry( "TabWidgetVisibility", KMdi::ShowWhenMoreThanOneTab );
00139     }
00140     else if ( NeverShowTabs->isChecked() )
00141     {
00142         config->writeEntry( "TabWidgetVisibility", KMdi::NeverShowTabs );
00143     }
00144     
00145     if ( DoNotCloseOnHover->isChecked() )
00146     {
00147         config->writeEntry( "CloseOnHover", false );
00148         config->writeEntry( "CloseOnHoverDelay", false );
00149     }
00150     else if ( DoCloseOnHover->isChecked() )
00151     {
00152         config->writeEntry( "CloseOnHover", true );
00153         config->writeEntry( "CloseOnHoverDelay", false );
00154     }
00155     else if ( DoDelayedCloseOnHover->isChecked() )
00156     {
00157         config->writeEntry( "CloseOnHover", true );
00158         config->writeEntry( "CloseOnHoverDelay", true );
00159     }
00160     
00161     // using magic numbers for now.. where are these values defined??
00162     if ( IconsOnly->isChecked() )
00163     {
00164         config->writeEntry( "MDIStyle", 0 );
00165     }
00166     else if ( TextAndIcons->isChecked() )
00167     {
00168         config->writeEntry( "MDIStyle", 3 );
00169     }
00170     else // TextOnly
00171     {
00172         config->writeEntry( "MDIStyle", 1 );
00173     }
00174     config->writeEntry("OpenNewTabAfterCurrent", OpenNewTabAfterCurrent->isChecked());
00175     config->writeEntry("ShowTabIcons", ShowTabIcons->isChecked());
00176     config->writeEntry("ShowCloseTabsButton", ShowCloseTabsButton->isChecked());
00177 
00178     config->sync();
00179 }
00180 
00181 
00182 void UIChooserWidget::accept()
00183 {
00184   save();
00185   
00186   // Note: with newmainwindow.cpp, these calls will be ignored
00187   
00188   if (modeIDEAl->isChecked() && _lastMode != modeIDEAl ) {
00189       m_part->mainWindow()->setUserInterfaceMode("KMDI-IDEAl");
00190   }
00191   else if (modeTab->isChecked() && _lastMode != modeTab ) {
00192       m_part->mainWindow()->setUserInterfaceMode("TabPage");
00193   }
00194   else if (modeToplevel->isChecked() && _lastMode != modeToplevel ) {
00195       m_part->mainWindow()->setUserInterfaceMode("Toplevel");
00196   }
00197   else if (modeMDI->isChecked() && _lastMode != modeMDI ) {
00198       m_part->mainWindow()->setUserInterfaceMode("Childframe");
00199   }
00200 }
00201 
00202 void UIChooserWidget::maybeEnableCloseOnHover( bool )
00203 {
00204     if ( sender() == modeMDI || sender() == modeToplevel )
00205     {
00206         HoverCloseGroup->setEnabled( false );
00207     }
00208     else if ( !NeverShowTabs->isChecked() )
00209     {
00210         HoverCloseGroup->setEnabled( true );
00211     }
00212 }
00213 
00214 
00215 #include "uichooser_widget.moc"
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:58 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003