diff options
author | Jarek Kobus <jaroslaw.kobus@theqtcompany.com> | 2016-10-20 16:22:46 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2016-10-21 09:48:40 +0000 |
commit | 344f255fa9e0defd1613a2692075f2423b560aad (patch) | |
tree | 4d4e2dc0f1fb5de14639d7f8ba7ece78110827b6 | |
parent | d3a743d77e1fbfa228f20f073636176b04123d69 (diff) | |
download | qt-creator-344f255fa9e0defd1613a2692075f2423b560aad.tar.gz |
Reuse the Guard class
Change-Id: Ia742ab92fd7947f4d156d03e112ee32363312996
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r-- | src/libs/utils/guard.h | 3 | ||||
-rw-r--r-- | src/plugins/diffeditor/diffeditor.cpp | 38 | ||||
-rw-r--r-- | src/plugins/diffeditor/diffeditor.h | 3 |
3 files changed, 17 insertions, 27 deletions
diff --git a/src/libs/utils/guard.h b/src/libs/utils/guard.h index 41bfd82288..063825650d 100644 --- a/src/libs/utils/guard.h +++ b/src/libs/utils/guard.h @@ -26,11 +26,13 @@ #pragma once #include "utils_global.h" +#include <QtGlobal> namespace Utils { class QTCREATOR_UTILS_EXPORT Guard { + Q_DISABLE_COPY(Guard) public: Guard(); ~Guard(); @@ -42,6 +44,7 @@ private: class QTCREATOR_UTILS_EXPORT GuardLocker { + Q_DISABLE_COPY(GuardLocker) public: GuardLocker(Guard &guard); ~GuardLocker(); diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index c2d681c13e..0e9d7fc318 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -69,19 +69,6 @@ static const char useDiffEditorKeyC[] = "UseDiffEditor"; using namespace TextEditor; -namespace { - -class Guard -{ -public: - Guard(int *state) : m_state(state) { ++(*state); } - ~Guard() { --(*m_state); QTC_ASSERT(*m_state >= 0, return); } -private: - int *m_state; -}; - -} // namespace - namespace DiffEditor { namespace Internal { @@ -226,7 +213,6 @@ DiffEditor::DiffEditor() , m_viewSwitcherAction(0) , m_currentViewIndex(-1) , m_currentDiffFileIndex(-1) - , m_ignoreChanges(0) , m_sync(false) , m_showDescription(true) { @@ -329,7 +315,7 @@ void DiffEditor::setDocument(QSharedPointer<DiffEditorDocument>(doc)) DiffEditor::DiffEditor(DiffEditorDocument *doc) : DiffEditor() { - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); setDocument(QSharedPointer<DiffEditorDocument>(doc)); setupView(loadSettings()); } @@ -343,7 +329,7 @@ DiffEditor::~DiffEditor() Core::IEditor *DiffEditor::duplicate() { DiffEditor *editor = new DiffEditor(); - Guard guard(&editor->m_ignoreChanges); + Utils::GuardLocker guard(editor->m_ignoreChanges); editor->setDocument(m_document); editor->m_sync = m_sync; @@ -371,7 +357,7 @@ QWidget *DiffEditor::toolBar() void DiffEditor::documentHasChanged() { - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); const QList<FileData> diffFileList = m_document->diffFiles(); updateDescription(); @@ -430,7 +416,7 @@ void DiffEditor::documentHasChanged() void DiffEditor::toggleDescription() { - if (m_ignoreChanges > 0) + if (m_ignoreChanges.isLocked()) return; m_showDescription = !m_showDescription; @@ -446,7 +432,7 @@ void DiffEditor::updateDescription() m_descriptionWidget->setPlainText(description); m_descriptionWidget->setVisible(m_showDescription && !description.isEmpty()); - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); m_toggleDescriptionAction->setChecked(m_showDescription); m_toggleDescriptionAction->setToolTip(m_showDescription ? tr("Hide Change Description") : tr("Show Change Description")); @@ -458,7 +444,7 @@ void DiffEditor::updateDescription() void DiffEditor::contextLineCountHasChanged(int lines) { QTC_ASSERT(!m_document->isContextLineCountForced(), return); - if (m_ignoreChanges > 0 || lines == m_document->contextLineCount()) + if (m_ignoreChanges.isLocked() || lines == m_document->contextLineCount()) return; m_document->setContextLineCount(lines); @@ -471,7 +457,7 @@ void DiffEditor::ignoreWhitespaceHasChanged() { const bool ignore = m_whitespaceButtonAction->isChecked(); - if (m_ignoreChanges > 0 || ignore == m_document->ignoreWhitespace()) + if (m_ignoreChanges.isLocked() || ignore == m_document->ignoreWhitespace()) return; m_document->setIgnoreWhitespace(ignore); saveSetting(QLatin1String(ignoreWhitespaceKeyC), ignore); @@ -494,7 +480,7 @@ void DiffEditor::prepareForReload() } { - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); m_contextSpinBox->setValue(m_document->contextLineCount()); m_whitespaceButtonAction->setChecked(m_document->ignoreWhitespace()); } @@ -539,12 +525,12 @@ void DiffEditor::updateEntryToolTip() void DiffEditor::setCurrentDiffFileIndex(int index) { - if (m_ignoreChanges > 0) + if (m_ignoreChanges.isLocked()) return; QTC_ASSERT((index < 0) != (m_entriesComboBox->count() > 0), return); - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); m_currentDiffFileIndex = index; currentView()->setCurrentDiffFileIndex(index); @@ -575,7 +561,7 @@ void DiffEditor::updateDiffEditorSwitcher() void DiffEditor::toggleSync() { - if (m_ignoreChanges > 0) + if (m_ignoreChanges.isLocked()) return; QTC_ASSERT(currentView(), return); @@ -669,7 +655,7 @@ void DiffEditor::setupView(IDiffView *view) saveSetting(QLatin1String(diffViewKeyC), currentView()->id().toSetting()); { - Guard guard(&m_ignoreChanges); + Utils::GuardLocker guard(m_ignoreChanges); m_toggleSyncAction->setVisible(currentView()->supportsSync()); m_toggleSyncAction->setToolTip(currentView()->syncToolTip()); m_toggleSyncAction->setText(currentView()->syncToolTip()); diff --git a/src/plugins/diffeditor/diffeditor.h b/src/plugins/diffeditor/diffeditor.h index 7539ff31d6..bb8363187e 100644 --- a/src/plugins/diffeditor/diffeditor.h +++ b/src/plugins/diffeditor/diffeditor.h @@ -29,6 +29,7 @@ #include <coreplugin/editormanager/ieditor.h> #include <coreplugin/idocument.h> +#include <utils/guard.h> QT_BEGIN_NAMESPACE class QComboBox; @@ -103,7 +104,7 @@ private: QPair<QString, QString> m_currentFileChunk; int m_currentViewIndex; int m_currentDiffFileIndex; - int m_ignoreChanges; + Utils::Guard m_ignoreChanges; bool m_sync; bool m_showDescription; }; |