From 33678e7ca441c8d05095f04439fd94396e4f6e73 Mon Sep 17 00:00:00 2001 From: Jekyll Wu Date: Mon, 19 Mar 2012 18:29:44 +0800 Subject: [PATCH] Add more convenient methods for accessing profile option --- src/EditProfileDialog.cpp | 27 ++++++----- src/MainWindow.cpp | 3 +- src/Profile.h | 96 +++++++++++++++++++++++++++++++++++++++ src/SessionController.cpp | 2 +- src/SessionManager.cpp | 14 +++--- src/ViewManager.cpp | 22 ++++----- 6 files changed, 129 insertions(+), 35 deletions(-) diff --git a/src/EditProfileDialog.cpp b/src/EditProfileDialog.cpp index d5c0c72a1..2581238d6 100644 --- a/src/EditProfileDialog.cpp +++ b/src/EditProfileDialog.cpp @@ -269,11 +269,11 @@ void EditProfileDialog::setupGeneralPage(const Profile::Ptr profile) _ui->dirSelectButton->setIcon(KIcon("folder-open")); _ui->iconSelectButton->setIcon(KIcon(profile->icon())); - _ui->startInSameDirButton->setChecked(profile->property(Profile::StartInCurrentSessionDir)); + _ui->startInSameDirButton->setChecked(profile->startInCurrentSessionDir()); // window options - _ui->showTerminalSizeHintButton->setChecked(profile->property(Profile::ShowTerminalSizeHint)); - _ui->saveGeometryOnExitButton->setChecked(profile->property(Profile::SaveGeometryOnExit)); + _ui->showTerminalSizeHintButton->setChecked(profile->showTerminalSizeHint()); + _ui->saveGeometryOnExitButton->setChecked(profile->saveGeometryOnExit()); // signals and slots connect(_ui->dirSelectButton, SIGNAL(clicked()), this, SLOT(selectInitialDir())); @@ -321,12 +321,11 @@ void EditProfileDialog::setupTabsPage(const Profile::Ptr profile) // tab title format _ui->tabTitleEdit->setClearButtonShown(true); _ui->remoteTabTitleEdit->setClearButtonShown(true); - _ui->tabTitleEdit->setText(profile->property(Profile::LocalTabTitleFormat)); - _ui->remoteTabTitleEdit->setText( - profile->property(Profile::RemoteTabTitleFormat)); + _ui->tabTitleEdit->setText(profile->localTabTitleFormat()); + _ui->remoteTabTitleEdit->setText(profile->remoteTabTitleFormat()); // tab monitoring - int silenceSeconds = profile->property(Profile::SilenceSeconds); + int silenceSeconds = profile->silenceSeconds(); _ui->silenceSecondsSpinner->setValue(silenceSeconds); _ui->silenceSecondsSpinner->setSuffix(ki18ncp("Unit of time", " second", " seconds")); @@ -458,7 +457,7 @@ void EditProfileDialog::setupAppearancePage(const Profile::Ptr profile) SLOT(newColorScheme())); // setup font preview - bool antialias = profile->property(Profile::AntiAliasFonts); + bool antialias = profile->antiAliasFonts(); QFont profileFont = profile->font(); profileFont.setStyleStrategy(antialias ? QFont::PreferAntialias : QFont::NoAntialias); @@ -478,7 +477,7 @@ void EditProfileDialog::setupAppearancePage(const Profile::Ptr profile) connect(_ui->antialiasTextButton, SIGNAL(toggled(bool)), this, SLOT(setAntialiasText(bool))); - bool boldIntense = profile->property(Profile::BoldIntense); + bool boldIntense = profile->boldIntense(); _ui->boldIntenseButton->setChecked(boldIntense); connect(_ui->boldIntenseButton, SIGNAL(toggled(bool)), this, SLOT(setBoldIntense(bool))); @@ -974,7 +973,7 @@ void EditProfileDialog::setupScrollingPage(const Profile::Ptr profile) setupRadio(types , scrollBackType); // setup scrollback line count spinner - int historySize = profile->property(Profile::HistorySize); + int historySize = profile->historySize(); _ui->scrollBackLinesSpinner->setValue(historySize); _ui->scrollBackLinesSpinner->setSingleStep(historySize / 10); _ui->scrollBackLinesSpinner->setSuffix(ki18ncp("Unit of scrollback", " line", " lines")); @@ -1039,7 +1038,7 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr profile) setupCheckBoxes(options , profile); // interaction options - _ui->wordCharacterEdit->setText(profile->property(Profile::WordCharacters)); + _ui->wordCharacterEdit->setText(profile->wordCharacters()); connect(_ui->wordCharacterEdit, SIGNAL(textChanged(QString)), this, SLOT(wordCharactersChanged(QString))); @@ -1051,12 +1050,12 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr profile) SLOT(TripleClickModeChanged(int))); // cursor options - if (profile->property(Profile::UseCustomCursorColor)) + if (profile->useCustomCursorColor()) _ui->customCursorColorButton->setChecked(true); else _ui->autoCursorColorButton->setChecked(true); - _ui->customColorSelectButton->setColor(profile->property(Profile::CustomCursorColor)); + _ui->customColorSelectButton->setColor(profile->customCursorColor()); connect(_ui->customCursorColorButton, SIGNAL(clicked()), this, SLOT(customCursorColor())); connect(_ui->autoCursorColorButton, SIGNAL(clicked()), this, SLOT(autoCursorColor())); @@ -1073,7 +1072,7 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr profile) _ui->selectEncodingButton->setMenu(codecAction->menu()); connect(codecAction, SIGNAL(triggered(QTextCodec*)), this, SLOT(setDefaultCodec(QTextCodec*))); - _ui->characterEncodingLabel->setText(profile->property(Profile::DefaultEncoding)); + _ui->characterEncodingLabel->setText(profile->defaultEncoding()); } void EditProfileDialog::setDefaultCodec(QTextCodec* codec) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ef4215bd4..67af7ad82 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -445,8 +445,7 @@ Session* MainWindow::createSession(Profile::Ptr profile, const QString& director Session* session = SessionManager::instance()->createSession(profile); - if (!directory.isEmpty() - && profile->property(Profile::StartInCurrentSessionDir)) + if (!directory.isEmpty() && profile->startInCurrentSessionDir() ) session->setInitialWorkingDirectory(directory); session->addEnvironmentEntry( QString("KONSOLE_DBUS_WINDOW=/Windows/%1").arg(_viewManager->managerId()) ); diff --git a/src/Profile.h b/src/Profile.h index bcb53a271..9b515fc49 100644 --- a/src/Profile.h +++ b/src/Profile.h @@ -28,6 +28,7 @@ #include #include #include +#include // KDE #include @@ -331,6 +332,26 @@ public: return property(Profile::Arguments); } + /** Convenience method for property(Profile::LocalTabTitleFormat) */ + QString localTabTitleFormat() const { + return property(Profile::LocalTabTitleFormat); + } + + /** Convenience method for property(Profile::RemoteTabTitleFormat) */ + QString remoteTabTitleFormat() const { + return property(Profile::RemoteTabTitleFormat); + } + + /** Convenience method for property(Profile::ShowTerminalSizeHint) */ + bool showTerminalSizeHint() const { + return property(Profile::ShowTerminalSizeHint); + } + + /** Convenience method for property(Profile::SaveGeometryOnExit) */ + bool saveGeometryOnExit() const { + return property(Profile::SaveGeometryOnExit); + } + /** Convenience method for property(Profile::Font) */ QFont font() const { return property(Profile::Font); @@ -346,6 +367,81 @@ public: return property(Profile::Environment); } + /** Convenience method for property(Profile::KeyBindings) */ + QString keyBindings() const { + return property(Profile::KeyBindings); + } + + /** Convenience method for property(Profile::HistorySize) */ + int historySize() const { + return property(Profile::HistorySize); + } + + /** Convenience method for property(Profile::BidiRenderingEnabled) */ + bool bidiRenderingEnabled() const { + return property(Profile::BidiRenderingEnabled); + } + + /** Convenience method for property(Profile::BlinkingTextEnabled) */ + bool blinkingTextEnabled() const { + return property(Profile::BlinkingTextEnabled); + } + + /** Convenience method for property(Profile::BlinkingCursorEnabled) */ + bool blinkingCursorEnabled() const { + return property(Profile::BlinkingCursorEnabled); + } + + /** Convenience method for property(Profile::FlowControlEnabled) */ + bool flowControlEnabled() const { + return property(Profile::FlowControlEnabled); + } + + /** Convenience method for property(Profile::UseCustomCursorColor) */ + bool useCustomCursorColor() const { + return property(Profile::UseCustomCursorColor); + } + + /** Convenience method for property(Profile::CustomCursorColor) */ + QColor customCursorColor() const { + return property(Profile::CustomCursorColor); + } + + /** Convenience method for property(Profile::WordCharacters) */ + QString wordCharacters() const { + return property(Profile::WordCharacters); + } + + /** Convenience method for property(Profile::UnderlineLinksEnabled) */ + bool underlineLinksEnabled() const { + return property(Profile::UnderlineLinksEnabled); + } + + /** Convenience method for property(Profile::DefaultEncoding) */ + QString defaultEncoding() const { + return property(Profile::DefaultEncoding); + } + + /** Convenience method for property(Profile::AntiAliasFonts) */ + bool antiAliasFonts() const { + return property(Profile::AntiAliasFonts); + } + + /** Convenience method for property(Profile::BoldIntense) */ + bool boldIntense() const { + return property(Profile::BoldIntense); + } + + /** Convenience method for property(Profile::StartInCurrentSessionDir) */ + bool startInCurrentSessionDir() const { + return property(Profile::StartInCurrentSessionDir); + } + + /** Convenience method for property(Profile::SilenceSeconds) */ + int silenceSeconds() const { + return property(Profile::SilenceSeconds); + } + /** Convenience method for property(Profile::MenuIndex) */ QString menuIndex() const { return property(Profile::MenuIndex); diff --git a/src/SessionController.cpp b/src/SessionController.cpp index 92f2e574e..942a10624 100644 --- a/src/SessionController.cpp +++ b/src/SessionController.cpp @@ -1091,7 +1091,7 @@ void SessionController::clearHistory() void SessionController::clearHistoryAndReset() { Profile::Ptr profile = SessionManager::instance()->sessionProfile(_session); - QByteArray name = profile->property(Profile::DefaultEncoding).toUtf8(); + QByteArray name = profile->defaultEncoding().toUtf8(); Emulation* emulation = _session->emulation(); emulation->reset(); diff --git a/src/SessionManager.cpp b/src/SessionManager.cpp index 2196f67ec..09eb22b0e 100644 --- a/src/SessionManager.cpp +++ b/src/SessionManager.cpp @@ -476,15 +476,15 @@ void SessionManager::applyProfile(Session* session, const Profile::Ptr profile , // Key bindings if (apply.shouldApply(Profile::KeyBindings)) - session->setKeyBindings(profile->property(Profile::KeyBindings)); + session->setKeyBindings(profile->keyBindings()); // Tab formats if (apply.shouldApply(Profile::LocalTabTitleFormat)) session->setTabTitleFormat(Session::LocalTabTitle , - profile->property(Profile::LocalTabTitleFormat)); + profile->localTabTitleFormat()); if (apply.shouldApply(Profile::RemoteTabTitleFormat)) session->setTabTitleFormat(Session::RemoteTabTitle , - profile->property(Profile::RemoteTabTitleFormat)); + profile->remoteTabTitleFormat()); // History if (apply.shouldApply(Profile::HistoryMode) || apply.shouldApply(Profile::HistorySize)) { @@ -495,7 +495,7 @@ void SessionManager::applyProfile(Session* session, const Profile::Ptr profile , break; case Enum::FixedSizeHistory: { - int lines = profile->property(Profile::HistorySize); + int lines = profile->historySize(); session->setHistoryType(CompactHistoryType(lines)); } break; @@ -508,17 +508,17 @@ void SessionManager::applyProfile(Session* session, const Profile::Ptr profile , // Terminal features if (apply.shouldApply(Profile::FlowControlEnabled)) - session->setFlowControlEnabled(profile->property(Profile::FlowControlEnabled)); + session->setFlowControlEnabled(profile->flowControlEnabled()); // Encoding if (apply.shouldApply(Profile::DefaultEncoding)) { - QByteArray name = profile->property(Profile::DefaultEncoding).toUtf8(); + QByteArray name = profile->defaultEncoding().toUtf8(); session->setCodec(QTextCodec::codecForName(name)); } // Monitor Silence if (apply.shouldApply(Profile::SilenceSeconds)) - session->setMonitorSilenceSeconds(profile->property(Profile::SilenceSeconds)); + session->setMonitorSilenceSeconds(profile->silenceSeconds()); } void SessionManager::addProfile(Profile::Ptr profile) diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp index efb170e05..cade92864 100644 --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -765,7 +765,7 @@ void ViewManager::applyProfileToView(TerminalDisplay* view , const Profile::Ptr { Q_ASSERT(profile); - emit setSaveGeometryOnExitRequest(profile->property(Profile::SaveGeometryOnExit)); + emit setSaveGeometryOnExitRequest(profile->saveGeometryOnExit()); emit updateWindowIcon(); @@ -778,8 +778,8 @@ void ViewManager::applyProfileToView(TerminalDisplay* view , const Profile::Ptr view->setWallpaper(colorScheme->wallpaper()); // load font - view->setAntialias(profile->property(Profile::AntiAliasFonts)); - view->setBoldIntense(profile->property(Profile::BoldIntense)); + view->setAntialias(profile->antiAliasFonts()); + view->setBoldIntense(profile->boldIntense()); view->setVTFont(profile->font()); // set scroll-bar position @@ -793,21 +793,21 @@ void ViewManager::applyProfileToView(TerminalDisplay* view , const Profile::Ptr view->setScrollBarPosition(Enum::ScrollBarHidden); // show hint about termianl size after resizing - view->setShowTerminalSizeHint(profile->property(Profile::ShowTerminalSizeHint)); + view->setShowTerminalSizeHint(profile->showTerminalSizeHint()); // terminal features - bool blinkingCursor = profile->property(Profile::BlinkingCursorEnabled); + bool blinkingCursor = profile->blinkingCursorEnabled(); view->setBlinkingCursorEnabled(blinkingCursor); - bool blinkingText = profile->property(Profile::BlinkingTextEnabled); + bool blinkingText = profile->blinkingTextEnabled(); view->setBlinkingTextEnabled(blinkingText); int tripleClickMode = profile->property(Profile::TripleClickMode); view->setTripleClickMode(Enum::TripleClickModeEnum(tripleClickMode)); - view->setUnderlineLinks(profile->property(Profile::UnderlineLinksEnabled)); + view->setUnderlineLinks(profile->underlineLinksEnabled()); - bool bidiEnabled = profile->property(Profile::BidiRenderingEnabled); + bool bidiEnabled = profile->bidiRenderingEnabled(); view->setBidiEnabled(bidiEnabled); // cursor shape @@ -821,13 +821,13 @@ void ViewManager::applyProfileToView(TerminalDisplay* view , const Profile::Ptr view->setKeyboardCursorShape(Enum::UnderlineCursor); // cursor color - bool useCustomColor = profile->property(Profile::UseCustomCursorColor); - const QColor& cursorColor = profile->property(Profile::CustomCursorColor); + bool useCustomColor = profile->useCustomCursorColor(); + const QColor& cursorColor = profile->customCursorColor(); view->setKeyboardCursorColor(!useCustomColor, cursorColor); // word characters - view->setWordCharacters(profile->property(Profile::WordCharacters)); + view->setWordCharacters(profile->wordCharacters()); // bell mode view->setBellMode(profile->property(Profile::BellMode));