From d1ac153ba673d504f41ee73bb74a18ece838b48f Mon Sep 17 00:00:00 2001 From: Kurt Hindenburg Date: Tue, 3 Apr 2012 10:15:03 -0400 Subject: [PATCH] Convert the HistorySizeDialog to .ui --- src/CMakeLists.txt | 1 + src/HistorySizeDialog.cpp | 56 ++++++++++++++------------------------- src/HistorySizeDialog.h | 38 ++++++++------------------ src/HistorySizeDialog.ui | 44 ++++++++++++++++++++++++++++++ src/SessionController.cpp | 12 ++++++--- 5 files changed, 84 insertions(+), 67 deletions(-) create mode 100644 src/HistorySizeDialog.ui diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bea588514..767920da5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -143,6 +143,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/tests/CTestCustom.cmake) ManageProfilesDialog.ui RenameTabDialog.ui RenameTabWidget.ui + HistorySizeDialog.ui HistorySizeWidget.ui settings/GeneralSettings.ui settings/TabBarSettings.ui diff --git a/src/HistorySizeDialog.cpp b/src/HistorySizeDialog.cpp index 7ae151207..c78dc8500 100644 --- a/src/HistorySizeDialog.cpp +++ b/src/HistorySizeDialog.cpp @@ -1,5 +1,6 @@ /* Copyright 2007-2008 by Robert Knight + Copyright 2012 by Kurt Hindenburg This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,71 +21,54 @@ // Own #include "HistorySizeDialog.h" -// Qt -#include -#include -#include - -// KDE -#include - // Konsole -#include "HistorySizeWidget.h" +#include "ui_HistorySizeDialog.h" using namespace Konsole; -HistorySizeDialog::HistorySizeDialog(QWidget* aParent) - : KDialog(aParent) - , _historySizeWidget(0) +HistorySizeDialog::HistorySizeDialog(QWidget* parent) + : KDialog(parent) { - // basic dialog properties - setPlainCaption(i18n("Adjust Scrollback")); + setCaption(i18n("Adjust Scrollback")); setButtons(KDialog::Ok | KDialog::Cancel); - setDefaultButton(KDialog::Ok); - setModal(false); - // dialog widgets - QWidget* dialogWidget = new QWidget(this); - setMainWidget(dialogWidget); + setWindowModality(Qt::WindowModal); - QVBoxLayout* dialogLayout = new QVBoxLayout(dialogWidget); + _ui = new Ui::HistorySizeDialog(); + _ui->setupUi(mainWidget()); - QLabel* warningLabel = new QLabel(i18n("
The adjustment is only temporary
"), this); - warningLabel->setStyleSheet("text-align:center; font-weight:normal; color:palette(dark)"); + _ui->tempWarningWidget->setVisible(true); + _ui->tempWarningWidget->setWordWrap(true); + _ui->tempWarningWidget->setCloseButtonVisible(false); + _ui->tempWarningWidget->setMessageType(KMessageWidget::Information); + _ui->tempWarningWidget->setText(i18nc("@info:status", + "Any adjustments are only temporary to this session.")); - _historySizeWidget = new HistorySizeWidget(this); - - dialogLayout->addWidget(warningLabel); - dialogLayout->insertSpacing(-1, 5); - dialogLayout->addWidget(_historySizeWidget); - dialogLayout->insertSpacing(-1, 10); - - connect(this, SIGNAL(accepted()), this, SLOT(emitOptionsChanged())); } -void HistorySizeDialog::emitOptionsChanged() +HistorySizeDialog::~HistorySizeDialog() { - emit optionsChanged(mode() , lineCount()); + delete _ui; } void HistorySizeDialog::setMode(Enum::HistoryModeEnum aMode) { - _historySizeWidget->setMode(aMode); + _ui->historySizeWidget->setMode(aMode); } Enum::HistoryModeEnum HistorySizeDialog::mode() const { - return _historySizeWidget->mode(); + return _ui->historySizeWidget->mode(); } int HistorySizeDialog::lineCount() const { - return _historySizeWidget->lineCount(); + return _ui->historySizeWidget->lineCount(); } void HistorySizeDialog::setLineCount(int lines) { - _historySizeWidget->setLineCount(lines); + _ui->historySizeWidget->setLineCount(lines); } #include "HistorySizeDialog.moc" diff --git a/src/HistorySizeDialog.h b/src/HistorySizeDialog.h index d86f05ee8..c9872a4e0 100644 --- a/src/HistorySizeDialog.h +++ b/src/HistorySizeDialog.h @@ -1,5 +1,6 @@ /* Copyright 2007-2008 by Robert Knight + Copyright 2012 by Kurt Hindenburg This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,21 +27,22 @@ // Konsole #include "Enumeration.h" +namespace Ui +{ +class HistorySizeDialog; +} + namespace Konsole { -class HistorySizeWidget; - -/** - * A dialog for controlling history related options - * It is only a simple container of HistorySizeWidget - */ class HistorySizeDialog : public KDialog { Q_OBJECT public: - explicit HistorySizeDialog(QWidget* parent); + explicit HistorySizeDialog(QWidget* parent = 0); + ~HistorySizeDialog(); + /** See HistorySizeWidget::setMode. */ void setMode(Enum::HistoryModeEnum aMode); @@ -54,28 +56,10 @@ public: /** See HistorySizeWidget::lineCount. */ int lineCount() const; -signals: - /** - * Emitted when the user changes the scroll-back mode or line count and - * accepts the change by pressing the OK button - * - * @param mode The current history mode. This is a value from the HistoryMode enum. - * @param lineCount The current line count. This is only applicable if mode is - * FixedSizeHistory - */ - void optionsChanged(int mode , int lineCount); - -private slots: - - // fires the optionsChanged() signal with the current mode - // and line count as arguments - void emitOptionsChanged(); - private: - HistorySizeWidget* _historySizeWidget; - + Ui::HistorySizeDialog* _ui; }; } -#endif // HISTORYSIZEDIALOG_H +#endif diff --git a/src/HistorySizeDialog.ui b/src/HistorySizeDialog.ui new file mode 100644 index 000000000..0f21bf22b --- /dev/null +++ b/src/HistorySizeDialog.ui @@ -0,0 +1,44 @@ + + + HistorySizeDialog + + + + 0 + 0 + 325 + 198 + + + + + + + + 0 + 0 + + + + + + + + + + + + KMessageWidget + QFrame +
kmessagewidget.h
+ 1 +
+ + Konsole::HistorySizeWidget + QWidget +
HistorySizeWidget.h
+
+
+ + +
diff --git a/src/SessionController.cpp b/src/SessionController.cpp index a97ccdf96..75b00fb9f 100644 --- a/src/SessionController.cpp +++ b/src/SessionController.cpp @@ -1038,7 +1038,7 @@ void SessionController::changeSearchMatch() } void SessionController::showHistoryOptions() { - HistorySizeDialog* dialog = new HistorySizeDialog(QApplication::activeWindow()); + QScopedPointer dialog(new HistorySizeDialog(QApplication::activeWindow())); const HistoryType& currentHistory = _session->historyType(); if (currentHistory.isEnabled()) { @@ -1052,10 +1052,14 @@ void SessionController::showHistoryOptions() dialog->setMode(Enum::NoHistory); } - connect(dialog, SIGNAL(optionsChanged(int,int)), - this, SLOT(scrollBackOptionsChanged(int,int))); + QPointer guard(_session); + int result = dialog->exec(); + if (!guard) + return; - dialog->show(); + if (result) { + scrollBackOptionsChanged(dialog->mode(), dialog->lineCount()); + } } void SessionController::sessionResizeRequest(const QSize& size) {