21
22
#include "HistorySizeDialog.h"
24
#include <QtGui/QButtonGroup>
25
#include <QtGui/QBoxLayout>
26
#include <QtGui/QLabel>
27
#include <QtGui/QRadioButton>
28
#include <QtGui/QWidget>
31
#include <KLocalizedString>
35
#include "SessionManager.h"
25
#include "ui_HistorySizeDialog.h"
37
27
using namespace Konsole;
39
HistorySizeDialog::HistorySizeDialog( QWidget* parent )
42
, _fixedHistoryButton(0)
43
, _unlimitedHistoryButton(0)
46
// basic dialog properties
47
setPlainCaption( i18n("Adjust Scrollback") );
48
setButtons( KDialog::Ok | KDialog::Cancel );
49
setDefaultButton( KDialog::Ok );
53
QWidget* dialogWidget = new QWidget(this);
54
setMainWidget(dialogWidget);
56
QVBoxLayout* dialogLayout = new QVBoxLayout(dialogWidget);
58
_noHistoryButton = new QRadioButton( i18n("No scrollback") );
59
_fixedHistoryButton = new QRadioButton( i18n("Fixed size scrollback: ") );
60
_unlimitedHistoryButton = new QRadioButton( i18n("Unlimited scrollback") );
62
QButtonGroup* modeGroup = new QButtonGroup(this);
63
modeGroup->addButton(_noHistoryButton);
64
modeGroup->addButton(_fixedHistoryButton);
65
modeGroup->addButton(_unlimitedHistoryButton);
67
_lineCountBox = new KIntSpinBox(this);
69
// minimum lines = 1 ( for 0 lines , "No History" mode should be used instead )
70
// maximum lines is arbitrarily chosen, I do not think it is sensible to allow this
71
// to be set to a very large figure because that will use large amounts of memory,
72
// if a very large log is required, "Unlimited History" mode should be used
73
_lineCountBox->setRange( 1 , 100000 );
75
_lineCountBox->setValue( HistorySizeDialog::defaultLineCount );
76
_lineCountBox->setSingleStep( HistorySizeDialog::defaultLineCount / 10 );
78
_fixedHistoryButton->setFocusProxy(_lineCountBox);
79
connect( _fixedHistoryButton , SIGNAL(clicked()) ,
80
_lineCountBox , SLOT(selectAll()) );
82
QLabel* lineCountLabel = new QLabel(i18n("lines"),this);
84
QHBoxLayout* lineCountLayout = new QHBoxLayout();
85
lineCountLayout->addWidget(_fixedHistoryButton);
86
lineCountLayout->addWidget(_lineCountBox);
87
lineCountLayout->addWidget(lineCountLabel);
89
QLabel* warningLabel = new QLabel(i18n("<center>The adjustment is only temporary</center>"),this);
90
warningLabel->setStyleSheet("text-align:center; font-weight:normal; color:palette(dark)");
92
dialogLayout->addWidget(warningLabel);
93
dialogLayout->insertSpacing(-1, 5);
94
dialogLayout->addWidget(_noHistoryButton);
95
dialogLayout->addLayout(lineCountLayout);
96
dialogLayout->addWidget(_unlimitedHistoryButton);
97
dialogLayout->insertSpacing(-1, 10);
99
connect(this,SIGNAL(accepted()),this,SLOT(emitOptionsChanged()));
102
void HistorySizeDialog::emitOptionsChanged()
104
emit optionsChanged( mode() , lineCount() );
107
void HistorySizeDialog::setMode( HistoryMode mode )
109
if ( mode == NoHistory )
111
_noHistoryButton->setChecked(true);
113
else if ( mode == FixedSizeHistory )
115
_fixedHistoryButton->setChecked(true);
117
else if ( mode == UnlimitedHistory )
119
_unlimitedHistoryButton->setChecked(true);
124
HistorySizeDialog::HistoryMode HistorySizeDialog::mode() const
126
if ( _noHistoryButton->isChecked() )
128
else if ( _fixedHistoryButton->isChecked() )
129
return FixedSizeHistory;
130
else if ( _unlimitedHistoryButton->isChecked() )
131
return UnlimitedHistory;
29
HistorySizeDialog::HistorySizeDialog(QWidget* parent)
32
setCaption(i18nc("@title:window", "Adjust Scrollback"));
33
setButtons(KDialog::Ok | KDialog::Cancel);
35
setWindowModality(Qt::WindowModal);
37
_ui = new Ui::HistorySizeDialog();
38
_ui->setupUi(mainWidget());
40
_ui->tempWarningWidget->setVisible(true);
41
_ui->tempWarningWidget->setWordWrap(true);
42
_ui->tempWarningWidget->setCloseButtonVisible(false);
43
_ui->tempWarningWidget->setMessageType(KMessageWidget::Information);
44
_ui->tempWarningWidget->setText(i18nc("@info:status",
45
"Any adjustments are only temporary to this session."));
48
HistorySizeDialog::~HistorySizeDialog()
53
void HistorySizeDialog::setMode(Enum::HistoryModeEnum aMode)
55
_ui->historySizeWidget->setMode(aMode);
58
Enum::HistoryModeEnum HistorySizeDialog::mode() const
60
return _ui->historySizeWidget->mode();
137
63
int HistorySizeDialog::lineCount() const
139
return _lineCountBox->value();
65
return _ui->historySizeWidget->lineCount();
142
68
void HistorySizeDialog::setLineCount(int lines)
144
_lineCountBox->setValue(lines);
145
_lineCountBox->setSingleStep( lines / 10 );
70
_ui->historySizeWidget->setLineCount(lines);
149
73
#include "HistorySizeDialog.moc"