00001 #include <kdialog.h>
00002 #include <klocale.h>
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "runoptionswidgetbase.h"
00013
00014 #include <qvariant.h>
00015 #include <kdialog.h>
00016 #include <qpushbutton.h>
00017 #include <qbuttongroup.h>
00018 #include <qradiobutton.h>
00019 #include <ksqueezedtextlabel.h>
00020 #include <qlineedit.h>
00021 #include <qgroupbox.h>
00022 #include <qlabel.h>
00023 #include <qcheckbox.h>
00024 #include <qlayout.h>
00025 #include <qtooltip.h>
00026 #include <qwhatsthis.h>
00027
00028
00029
00030
00031
00032 RunOptionsWidgetBase::RunOptionsWidgetBase( QWidget* parent, const char* name, WFlags fl )
00033 : QWidget( parent, name, fl )
00034 {
00035 if ( !name )
00036 setName( "run_options_widget" );
00037 run_options_widgetLayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint(), "run_options_widgetLayout");
00038
00039 directoryButtonGroup = new QButtonGroup( this, "directoryButtonGroup" );
00040 directoryButtonGroup->setColumnLayout(0, Qt::Vertical );
00041 directoryButtonGroup->layout()->setSpacing( KDialog::spacingHint() );
00042 directoryButtonGroup->layout()->setMargin( KDialog::marginHint() );
00043 directoryButtonGroupLayout = new QGridLayout( directoryButtonGroup->layout() );
00044 directoryButtonGroupLayout->setAlignment( Qt::AlignTop );
00045
00046 executableDirectory_radio = new QRadioButton( directoryButtonGroup, "executableDirectory_radio" );
00047 executableDirectory_radio->setChecked( FALSE );
00048 directoryButtonGroup->insert( executableDirectory_radio, 0 );
00049
00050 directoryButtonGroupLayout->addMultiCellWidget( executableDirectory_radio, 0, 0, 0, 3 );
00051
00052 layout2 = new QHBoxLayout( 0, 0, KDialog::spacingHint(), "layout2");
00053
00054 buildDirectory_radio = new QRadioButton( directoryButtonGroup, "buildDirectory_radio" );
00055 directoryButtonGroup->insert( buildDirectory_radio, 1 );
00056 layout2->addWidget( buildDirectory_radio );
00057
00058 buildDirectory_label = new KSqueezedTextLabel( directoryButtonGroup, "buildDirectory_label" );
00059 layout2->addWidget( buildDirectory_label );
00060
00061 directoryButtonGroupLayout->addMultiCellLayout( layout2, 1, 1, 0, 3 );
00062
00063 customDirectory_radio = new QRadioButton( directoryButtonGroup, "customDirectory_radio" );
00064 directoryButtonGroup->insert( customDirectory_radio, 2 );
00065
00066 directoryButtonGroupLayout->addWidget( customDirectory_radio, 2, 0 );
00067
00068 customRunDirectory_edit = new QLineEdit( directoryButtonGroup, "customRunDirectory_edit" );
00069 customRunDirectory_edit->setEnabled( FALSE );
00070 customRunDirectory_edit->setReadOnly( FALSE );
00071
00072 directoryButtonGroupLayout->addMultiCellWidget( customRunDirectory_edit, 2, 2, 1, 2 );
00073
00074 browseCustomButton = new QPushButton( directoryButtonGroup, "browseCustomButton" );
00075 browseCustomButton->setEnabled( FALSE );
00076
00077 directoryButtonGroupLayout->addWidget( browseCustomButton, 2, 3 );
00078 run_options_widgetLayout->addWidget( directoryButtonGroup );
00079
00080 programGroupBox = new QGroupBox( this, "programGroupBox" );
00081 programGroupBox->setFrameShape( QGroupBox::Box );
00082 programGroupBox->setFrameShadow( QGroupBox::Sunken );
00083 programGroupBox->setColumnLayout(0, Qt::Vertical );
00084 programGroupBox->layout()->setSpacing( KDialog::spacingHint() );
00085 programGroupBox->layout()->setMargin( KDialog::marginHint() );
00086 programGroupBoxLayout = new QGridLayout( programGroupBox->layout() );
00087 programGroupBoxLayout->setAlignment( Qt::AlignTop );
00088
00089 mainprogram_label = new QLabel( programGroupBox, "mainprogram_label" );
00090
00091 programGroupBoxLayout->addMultiCellWidget( mainprogram_label, 0, 0, 0, 1 );
00092
00093 mainProgram_relativeness_label = new QLabel( programGroupBox, "mainProgram_relativeness_label" );
00094
00095 programGroupBoxLayout->addMultiCellWidget( mainProgram_relativeness_label, 0, 0, 2, 3 );
00096
00097 mainprogram_edit = new QLineEdit( programGroupBox, "mainprogram_edit" );
00098
00099 programGroupBoxLayout->addMultiCellWidget( mainprogram_edit, 1, 1, 0, 2 );
00100
00101 browseMainButton = new QPushButton( programGroupBox, "browseMainButton" );
00102
00103 programGroupBoxLayout->addWidget( browseMainButton, 1, 3 );
00104
00105 progargs_label = new QLabel( programGroupBox, "progargs_label" );
00106
00107 programGroupBoxLayout->addMultiCellWidget( progargs_label, 2, 2, 0, 1 );
00108
00109 progargs_edit = new QLineEdit( programGroupBox, "progargs_edit" );
00110
00111 programGroupBoxLayout->addMultiCellWidget( progargs_edit, 3, 3, 0, 3 );
00112 run_options_widgetLayout->addWidget( programGroupBox );
00113
00114 env_var_group = new QGroupBox( this, "env_var_group" );
00115 run_options_widgetLayout->addWidget( env_var_group );
00116
00117 layout1 = new QHBoxLayout( 0, 0, KDialog::spacingHint(), "layout1");
00118
00119 startinterminal_box = new QCheckBox( this, "startinterminal_box" );
00120 layout1->addWidget( startinterminal_box );
00121
00122 autocompile_box = new QCheckBox( this, "autocompile_box" );
00123 layout1->addWidget( autocompile_box );
00124 run_options_widgetLayout->addLayout( layout1 );
00125 languageChange();
00126 resize( QSize(679, 449).expandedTo(minimumSizeHint()) );
00127 clearWState( WState_Polished );
00128
00129
00130 connect( directoryButtonGroup, SIGNAL( clicked(int) ), this, SLOT( directoryRadioChanged() ) );
00131 connect( browseCustomButton, SIGNAL( clicked() ), this, SLOT( browseCustomDirectory() ) );
00132 connect( browseMainButton, SIGNAL( clicked() ), this, SLOT( browseMainProgram() ) );
00133
00134
00135 setTabOrder( executableDirectory_radio, buildDirectory_radio );
00136 setTabOrder( buildDirectory_radio, customDirectory_radio );
00137 setTabOrder( customDirectory_radio, customRunDirectory_edit );
00138 setTabOrder( customRunDirectory_edit, browseCustomButton );
00139 setTabOrder( browseCustomButton, mainprogram_edit );
00140 setTabOrder( mainprogram_edit, browseMainButton );
00141 setTabOrder( browseMainButton, progargs_edit );
00142 setTabOrder( progargs_edit, startinterminal_box );
00143 setTabOrder( startinterminal_box, autocompile_box );
00144
00145
00146 buildDirectory_label->setBuddy( buildDirectory_radio );
00147 mainprogram_label->setBuddy( mainprogram_edit );
00148 mainProgram_relativeness_label->setBuddy( mainprogram_edit );
00149 progargs_label->setBuddy( progargs_edit );
00150 }
00151
00152
00153
00154
00155 RunOptionsWidgetBase::~RunOptionsWidgetBase()
00156 {
00157
00158 }
00159
00160
00161
00162
00163
00164 void RunOptionsWidgetBase::languageChange()
00165 {
00166 setCaption( tr2i18n( "Run Options" ) );
00167 directoryButtonGroup->setTitle( tr2i18n( "Directory" ) );
00168 executableDirectory_radio->setText( tr2i18n( "Run from the directory where the &executable is" ) );
00169 buildDirectory_radio->setText( tr2i18n( "Run from the &BUILD directory:" ) );
00170 QToolTip::add( buildDirectory_radio, tr2i18n( "The build directory depends on the currenty selected configuration (in Configure Options page)" ) );
00171 customDirectory_radio->setText( tr2i18n( "C&ustom directory:" ) );
00172 QToolTip::add( customRunDirectory_edit, tr2i18n( "A relative to the project root directory path or an absolute path" ) );
00173 browseCustomButton->setText( tr2i18n( "Browse..." ) );
00174 programGroupBox->setTitle( tr2i18n( "Program" ) );
00175 mainprogram_label->setText( tr2i18n( "&Main program:" ) );
00176 QToolTip::add( mainprogram_edit, tr2i18n( "The path to the main program, defined relative to the above currently selected run directory" ) );
00177 browseMainButton->setText( tr2i18n( "Browse..." ) );
00178 progargs_label->setText( tr2i18n( "Program &arguments:" ) );
00179 QToolTip::add( progargs_edit, tr2i18n( "The command line arguments to pass to the main program" ) );
00180 env_var_group->setTitle( tr2i18n( "Environment &Variables" ) );
00181 startinterminal_box->setText( tr2i18n( "Start in external &terminal" ) );
00182 QToolTip::add( startinterminal_box, tr2i18n( "Start the main program in an external terminal (konsole)" ) );
00183 autocompile_box->setText( tr2i18n( "Automatically com&pile before execution" ) );
00184 QToolTip::add( autocompile_box, tr2i18n( "If the program is not up-to-date with the source code, compile it before starting its execution" ) );
00185 }
00186
00187 void RunOptionsWidgetBase::directoryRadioChanged()
00188 {
00189 qWarning( "RunOptionsWidgetBase::directoryRadioChanged(): Not implemented yet" );
00190 }
00191
00192 void RunOptionsWidgetBase::browseCustomDirectory()
00193 {
00194 qWarning( "RunOptionsWidgetBase::browseCustomDirectory(): Not implemented yet" );
00195 }
00196
00197 void RunOptionsWidgetBase::browseMainProgram()
00198 {
00199 qWarning( "RunOptionsWidgetBase::browseMainProgram(): Not implemented yet" );
00200 }
00201
00202 #include "runoptionswidgetbase.moc"