- bugfix: The order of Toplevel and Childframe mode were mixed up in the setup wizard
[kdevelop:kdevelop.git] / kdevelop / setup / wizarduimodepage.cpp
1 /***************************************************************************
2                           wizarduimodepage.cpp  -  description
3                              -------------------
4     begin                : Mon Jun 4 2001
5     copyright            : (C) 2001 by Falk Brettschneider
6     email                : falk.brettschneider@gmx.de
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 #include <qlayout.h>
19 #include <qvbox.h>
20 #include <qlabel.h>
21 #include <qpixmap.h>
22 #include <qbuttongroup.h>
23 #include <qradiobutton.h>
24 #include <qwhatsthis.h>
25
26 #include <klocale.h>
27 #include <kiconloader.h>
28 #include <kstddirs.h>
29
30 #include "ckdevinstallstate.h"
31 #include "wizarduimodepage.h"
32
33 WizardUIModePage::WizardUIModePage(QWidget* parent, const char* name, const QString& infoText, const QString& installPictPathAndFilename, CKDevInstallState* pInstallState)
34 : WizardBasePage(parent, name, infoText, installPictPathAndFilename, pInstallState)
35 {
36   m_vbox = new QVBox(this);
37
38   QLabel * label = new QLabel("", m_vbox);
39
40   KGlobal::instance()->iconLoader()->loadIcon( "window_list", KIcon::NoGroup, KIcon::SizeMedium );
41
42   label = new QLabel(i18n("These are possible user interface modes, all of them are types of MDI.") + "\n" +
43                      i18n("Use the question mark button to get more information about each style!:"),m_vbox);
44
45   QButtonGroup* bg = new QButtonGroup(m_vbox);
46   QObject::connect(bg, SIGNAL(clicked(int)), SLOT(slotModeChanged(int)) );
47   QGridLayout* innerGrid = new QGridLayout(bg,3,2,15,7);
48   QPixmap pm;
49
50   QRadioButton* toplevel = new QRadioButton( i18n("Toplevel Mode"), bg );
51   innerGrid->addWidget(toplevel,1,0);
52   QLabel* pictureLabelTL = new QLabel(bg);
53   pm.load(locate("appdata", "pics/toplevel.png"));
54   pictureLabelTL->setPixmap(pm);
55   innerGrid->addWidget(pictureLabelTL,1,1);
56
57   QRadioButton* childframe = new QRadioButton( i18n("Childframe Mode"), bg );
58   innerGrid->addWidget(childframe,0,0);
59   QLabel* pictureLabelCF = new QLabel(bg);
60   pm.load(locate("appdata", "pics/childfrm.png"));
61   pictureLabelCF->setPixmap(pm);
62   innerGrid->addWidget(pictureLabelCF,0,1);
63
64   QRadioButton* tabpage = new QRadioButton( i18n("Tab Page Mode"), bg );
65   innerGrid->addWidget(tabpage,2,0);
66   QLabel* pictureLabelTP = new QLabel(bg);
67   pm.load(locate("appdata", "pics/tabpage.png"));
68   pictureLabelTP->setPixmap(pm);
69   innerGrid->addWidget(pictureLabelTP,2,1);
70
71   childframe->setChecked(false);
72   toplevel->setChecked(false);
73   tabpage->setChecked(false);
74
75   switch (m_pInstallState->userInterfaceMode) {
76   case 0:
77     toplevel->setChecked(true);
78     break;
79   case 1:
80     childframe->setChecked(true);
81     break;
82   case 2:
83     tabpage->setChecked(true);
84     break;
85   default:
86     break;
87   }
88
89   bg->setFrameStyle(QFrame::Raised|QFrame::Box);
90   bg->setMargin(8);
91   bg->setFixedHeight(bg->sizeHint().height());
92
93   QString cfTxt = i18n("All tool views are initially docked to the mainframe.\n"
94                        "Editor and browser views will live like toplevel windows within a view area of the mainframe.\n"
95                        "A typical example of this MDI mode is MS Visual Studio 6.0.");
96   QWhatsThis::add(childframe, cfTxt);
97   QString tlTxt = i18n("All editor, browser and tool views will be toplevel windows (directly on desktop).\n"
98                        "The main widget contains the menu, toolbars and statusbar, only.\n"
99                        "A typical example of this MDI mode is the image manipulation application Gimp");
100   QWhatsThis::add(toplevel, tlTxt);
101   QString tpTxt = i18n("All tool views are initially docked to the mainframe.\n"
102                        "Editor and browser views will be stacked in a tab window.\n"
103                        "A typical example of this MDI mode is KDEStudio, our friend C++-IDE in the world of KDE.");
104   QWhatsThis::add(tabpage, tpTxt);
105
106   label = new QLabel("", m_vbox);
107 }
108
109 void WizardUIModePage::slotModeChanged(int userInterfaceMode)
110 {
111   m_pInstallState->userInterfaceMode = userInterfaceMode;
112 }
113
114 #include "wizarduimodepage.moc"