languages/cpp/debugger/debuggerconfigwidgetbase.cpp
Go to the documentation of this file.00001
#include <kdialog.h>
00002
#include <klocale.h>
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#include "debuggerconfigwidgetbase.h"
00013
00014
#include <qvariant.h>
00015
#include <kdialog.h>
00016
#include <qpushbutton.h>
00017
#include <qcheckbox.h>
00018
#include <qlineedit.h>
00019
#include <qgroupbox.h>
00020
#include <qlabel.h>
00021
#include <kurlrequester.h>
00022
#include <qlayout.h>
00023
#include <qtooltip.h>
00024
#include <qwhatsthis.h>
00025
00026
00027
00028
00029
00030 DebuggerConfigWidgetBase::DebuggerConfigWidgetBase(
QWidget* parent,
const char* name, WFlags fl )
00031 :
QWidget( parent, name, fl )
00032 {
00033
if ( !name )
00034 setName(
"debugger_config_widget" );
00035
debugger_config_widgetLayout =
new QGridLayout(
this, 1, 1, KDialog::marginHint(), KDialog::spacingHint(),
"debugger_config_widgetLayout");
00036
Spacer2_2 =
new QSpacerItem( 270, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
00037
debugger_config_widgetLayout->addItem(
Spacer2_2, 11, 2 );
00038
00039
dbgTerminal_box =
new QCheckBox(
this,
"dbgTerminal_box" );
00040
00041
debugger_config_widgetLayout->addMultiCellWidget(
dbgTerminal_box, 8, 8, 0, 2 );
00042
00043
programArgs_edit =
new QLineEdit(
this,
"programArgs_edit" );
00044
00045
debugger_config_widgetLayout->addMultiCellWidget(
programArgs_edit, 0, 0, 1, 2 );
00046
00047
breakOnLoadingLibrary_box =
new QCheckBox(
this,
"breakOnLoadingLibrary_box" );
00048
00049
debugger_config_widgetLayout->addMultiCellWidget(
breakOnLoadingLibrary_box, 6, 6, 0, 2 );
00050
00051
enableFloatingToolBar_box =
new QCheckBox(
this,
"enableFloatingToolBar_box" );
00052
00053
debugger_config_widgetLayout->addMultiCellWidget(
enableFloatingToolBar_box, 7, 7, 0, 2 );
00054
00055
asmDemangle_box =
new QCheckBox(
this,
"asmDemangle_box" );
00056
00057
debugger_config_widgetLayout->addMultiCellWidget(
asmDemangle_box, 5, 5, 0, 2 );
00058
00059
displayStaticMembers_box =
new QCheckBox(
this,
"displayStaticMembers_box" );
00060
00061
debugger_config_widgetLayout->addMultiCellWidget(
displayStaticMembers_box, 4, 4, 0, 1 );
00062
Spacer2_2_2 =
new QSpacerItem( 270, 16, QSizePolicy::Minimum, QSizePolicy::Minimum );
00063
debugger_config_widgetLayout->addMultiCell(
Spacer2_2_2, 3, 3, 1, 2 );
00064
00065
groupBox1 =
new QGroupBox(
this,
"groupBox1" );
00066
groupBox1->setColumnLayout(0, Qt::Vertical );
00067
groupBox1->layout()->setSpacing( KDialog::spacingHint() );
00068
groupBox1->layout()->setMargin( KDialog::marginHint() );
00069
groupBox1Layout =
new QGridLayout(
groupBox1->layout() );
00070
groupBox1Layout->setAlignment( Qt::AlignTop );
00071
00072
runShellScript_label =
new QLabel(
groupBox1,
"runShellScript_label" );
00073
00074
groupBox1Layout->addWidget(
runShellScript_label, 1, 0 );
00075
00076
configGdbScript_label =
new QLabel(
groupBox1,
"configGdbScript_label" );
00077
00078
groupBox1Layout->addWidget(
configGdbScript_label, 0, 0 );
00079
00080
configGdbScript_edit =
new QLineEdit(
groupBox1,
"configGdbScript_edit" );
00081
00082
groupBox1Layout->addWidget(
configGdbScript_edit, 0, 1 );
00083
00084
runShellScript_edit =
new QLineEdit(
groupBox1,
"runShellScript_edit" );
00085
00086
groupBox1Layout->addWidget(
runShellScript_edit, 1, 1 );
00087
00088
runGdbScript_edit =
new QLineEdit(
groupBox1,
"runGdbScript_edit" );
00089
00090
groupBox1Layout->addWidget(
runGdbScript_edit, 2, 1 );
00091
00092
runGdbScript_label =
new QLabel(
groupBox1,
"runGdbScript_label" );
00093
00094
groupBox1Layout->addWidget(
runGdbScript_label, 2, 0 );
00095
00096
debugger_config_widgetLayout->addMultiCellWidget(
groupBox1, 10, 10, 0, 2 );
00097
Spacer2 =
new QSpacerItem( 260, 16, QSizePolicy::Minimum, QSizePolicy::Minimum );
00098
debugger_config_widgetLayout->addMultiCell(
Spacer2, 9, 9, 1, 2 );
00099
00100
programArgs_label =
new QLabel(
this,
"programArgs_label" );
00101
programArgs_label->setSizePolicy(
QSizePolicy( (QSizePolicy::SizeType)4, (QSizePolicy::SizeType)5, 0, 0,
programArgs_label->sizePolicy().hasHeightForWidth() ) );
00102
00103
debugger_config_widgetLayout->addWidget(
programArgs_label, 0, 0 );
00104
00105
debuggingShell_label =
new QLabel(
this,
"debuggingShell_label" );
00106
debuggingShell_label->setSizePolicy(
QSizePolicy( (QSizePolicy::SizeType)4, (QSizePolicy::SizeType)5, 0, 0,
debuggingShell_label->sizePolicy().hasHeightForWidth() ) );
00107
00108
debugger_config_widgetLayout->addWidget(
debuggingShell_label, 1, 0 );
00109
00110
debuggingShell_edit =
new KURLRequester(
this,
"debuggingShell_edit" );
00111
00112
debugger_config_widgetLayout->addMultiCellWidget(
debuggingShell_edit, 1, 1, 1, 2 );
00113
00114
gdbPath_label =
new QLabel(
this,
"gdbPath_label" );
00115
gdbPath_label->setSizePolicy(
QSizePolicy( (QSizePolicy::SizeType)4, (QSizePolicy::SizeType)5, 0, 0,
gdbPath_label->sizePolicy().hasHeightForWidth() ) );
00116
00117
debugger_config_widgetLayout->addWidget(
gdbPath_label, 2, 0 );
00118
00119
gdbPath_edit =
new KURLRequester(
this,
"gdbPath_edit" );
00120
00121
debugger_config_widgetLayout->addMultiCellWidget(
gdbPath_edit, 2, 2, 1, 2 );
00122
languageChange();
00123 resize(
QSize(557, 374).expandedTo(minimumSizeHint()) );
00124 clearWState( WState_Polished );
00125
00126
00127 setTabOrder(
programArgs_edit,
debuggingShell_edit );
00128 setTabOrder(
debuggingShell_edit,
gdbPath_edit );
00129 setTabOrder(
gdbPath_edit,
displayStaticMembers_box );
00130 setTabOrder(
displayStaticMembers_box,
asmDemangle_box );
00131 setTabOrder(
asmDemangle_box,
breakOnLoadingLibrary_box );
00132 setTabOrder(
breakOnLoadingLibrary_box,
enableFloatingToolBar_box );
00133 setTabOrder(
enableFloatingToolBar_box,
dbgTerminal_box );
00134 setTabOrder(
dbgTerminal_box,
configGdbScript_edit );
00135 setTabOrder(
configGdbScript_edit,
runShellScript_edit );
00136 setTabOrder(
runShellScript_edit,
runGdbScript_edit );
00137
00138
00139
runShellScript_label->setBuddy(
debuggingShell_edit );
00140
configGdbScript_label->setBuddy(
programArgs_edit );
00141
runGdbScript_label->setBuddy(
gdbPath_edit );
00142
programArgs_label->setBuddy(
programArgs_edit );
00143
debuggingShell_label->setBuddy(
debuggingShell_edit );
00144
gdbPath_label->setBuddy(
gdbPath_edit );
00145 }
00146
00147
00148
00149
00150 DebuggerConfigWidgetBase::~DebuggerConfigWidgetBase()
00151 {
00152
00153 }
00154
00155
00156
00157
00158
00159 void DebuggerConfigWidgetBase::languageChange()
00160 {
00161 setCaption( tr2i18n(
"Debugger Configuration" ) );
00162
dbgTerminal_box->setText( tr2i18n(
"Enable separate &terminal for application IO" ) );
00163 QWhatsThis::add(
dbgTerminal_box, tr2i18n(
"This allows you to enter terminal input when your\n"
00164
"application contains terminal input code (e.g. cin, fgets, etc.).\n"
00165
"If you use terminal input in your application then check this option.\n"
00166
"Otherwise leave it unchecked." ) );
00167
programArgs_edit->setText( QString::null );
00168
breakOnLoadingLibrary_box->setText( tr2i18n(
"Try settings &breakpoints on library loading" ) );
00169 QWhatsThis::add(
breakOnLoadingLibrary_box, tr2i18n(
"If GDB hasn't seen a library that will be loaded via\n"
00170
"\"dlopen\" then it will refuse to set a breakpoint in that code.\n"
00171
"We can get GDB to stop on a library load and hence\n"
00172
"try to set the pending breakpoints. See the documentation\n"
00173
"for more details relating to this behavior.\n"
00174
"\n"
00175
"If you are not \"dlopen\"ing libs then leave this unchecked." ) );
00176
enableFloatingToolBar_box->setText( tr2i18n(
"Enable &floating toolbar" ) );
00177 QWhatsThis::add(
enableFloatingToolBar_box, tr2i18n(
"Use the floating toolbar. This toolbar always stays\n"
00178
"on top of all windows so that if the app covers KDevelop\n"
00179
"you have control of the app through the small toolbar. It\n"
00180
"can also be docked into the panel.\n"
00181
"\n"
00182
"This toolbar is in addition to the toolbar in KDevelop." ) );
00183
asmDemangle_box->setText( tr2i18n(
"Display &demangled names" ) );
00184 QWhatsThis::add(
asmDemangle_box, tr2i18n(
"When displaying the disassembled code you\n"
00185
"can select to see the methods' mangled names.\n"
00186
"However, non-mangled names are easier to read." ) );
00187
displayStaticMembers_box->setText( tr2i18n(
"Display static &members" ) );
00188 QWhatsThis::add(
displayStaticMembers_box, tr2i18n(
"Displaying static members makes GDB slower in\n"
00189
"producing data within KDE and Qt.\n"
00190
"It may change the \"signature\" of the data\n"
00191
"which QString and friends rely on,\n"
00192
"but if you need to debug into these values then\n"
00193
"check this option." ) );
00194
groupBox1->setTitle( tr2i18n(
"Remote Debugging" ) );
00195
runShellScript_label->setText( tr2i18n(
"Run shell script:",
"Shell script to be executed at run time" ) );
00196
configGdbScript_label->setText( tr2i18n(
"Config gdb script:" ) );
00197 QToolTip::add(
configGdbScript_edit, QString::null );
00198 QToolTip::add(
runShellScript_edit, tr2i18n(
"Script to start remote application" ) );
00199 QWhatsThis::add(
runShellScript_edit, tr2i18n(
"When debugging remotely this script is intended to actually start the remote process.\n"
00200
"[It is expected that the debug executable can be reached on the target, maybe by downloading it as a final build step]\n"
00201
"1) Find a way to execute a command remotely - rsh, ssh, telnet, ...\n"
00202
"2a) Execute \"gdbserver ... application\" on target.\n"
00203
"or if your executable contains the gdb stub\n"
00204
"2b) Execute \"application\" on target." ) );
00205 QToolTip::add(
runGdbScript_edit, tr2i18n(
"Script to connect with remote application" ) );
00206 QWhatsThis::add(
runGdbScript_edit, tr2i18n(
"This script is intended for the actual commands needed to connect to a remotely running executable.\n"
00207
" shell sleep 5 wait for remote program to start\n"
00208
" target remote ... connect to the remote debugger\n"
00209
" continue [optional] run debugging to the first breakpoint." ) );
00210
runGdbScript_label->setText( tr2i18n(
"Run gdb script:",
"Gdb script to be executed at run time." ) );
00211
programArgs_label->setText( tr2i18n(
"Program &arguments:" ) );
00212 QWhatsThis::add(
programArgs_label, tr2i18n(
"Arguments that are given to the application when it is debugged." ) );
00213
debuggingShell_label->setText( tr2i18n(
"Debugging &shell:" ) );
00214
gdbPath_label->setText( tr2i18n(
"Path to &gdb:" ) );
00215 }
00216
00217
#include "debuggerconfigwidgetbase.moc"
This file is part of the documentation for KDevelop Version 3.0.4.