commit 133831039a4cc180cfa375d403105bdbd094c643
parent 6aa209494ee8c01bdf5d3e601674366ba04e5163
Author: cfillion <cfillion@users.noreply.github.com>
Date: Tue, 2 Feb 2016 03:27:05 -0500
mild refactoring
Diffstat:
5 files changed, 40 insertions(+), 9 deletions(-)
diff --git a/src/about.cpp b/src/about.cpp
@@ -129,7 +129,7 @@ void About::updatePackages()
else
pkgList = &m_index->category(catIndex)->packages();
- m_packages->inhibitRedraw(true);
+ InhibitControl lock(m_packages);
m_packages->clear();
for(Package *pkg : *pkgList) {
@@ -143,5 +143,4 @@ void About::updatePackages()
}
m_currentCat = catIndex;
- m_packages->inhibitRedraw(false);
}
diff --git a/src/control.hpp b/src/control.hpp
@@ -49,4 +49,21 @@ private:
HWND m_handle;
};
+class InhibitControl {
+public:
+ InhibitControl(Control *ctrl)
+ : m_control(ctrl)
+ {
+ m_control->inhibitRedraw(true);
+ }
+
+ ~InhibitControl()
+ {
+ m_control->inhibitRedraw(false);
+ }
+
+private:
+ Control *m_control;
+};
+
#endif
diff --git a/src/dialog.hpp b/src/dialog.hpp
@@ -122,4 +122,24 @@ private:
std::map<int, Control *> m_controls;
};
+class LockDialog {
+public:
+ LockDialog(Dialog *dlg)
+ : m_dialog(dlg), m_enabled(dlg->isEnabled())
+ {
+ if(m_enabled)
+ m_dialog->disable();
+ }
+
+ ~LockDialog()
+ {
+ if(m_enabled)
+ m_dialog->enable();
+ }
+
+private:
+ Dialog *m_dialog;
+ bool m_enabled;
+};
+
#endif
diff --git a/src/reapack.cpp b/src/reapack.cpp
@@ -262,16 +262,12 @@ Transaction *ReaPack::createTransaction()
if(m_transaction->isCancelled() || !m_transaction->isReportEnabled())
return;
- const bool wasManagerEnabled = m_manager->isEnabled();
- m_manager->disable();
+ LockDialog lock(m_manager);
if(m_transaction->taskCount() == 0 && m_transaction->errors().empty())
ShowMessageBox("Nothing to do!", "ReaPack", 0);
else
Dialog::Show<Report>(m_instance, m_mainWindow, m_transaction);
-
- if(wasManagerEnabled)
- m_manager->enable();
});
m_transaction->onDestroy([=] {
diff --git a/src/richedit.mm b/src/richedit.mm
@@ -57,9 +57,8 @@ bool RichEdit::setRichText(const string &rtf)
withRTF: [str dataUsingEncoding: NSUTF8StringEncoding]
];
- const BOOL isEditable = textView.isEditable;
-
// auto-detect links, equivalent to Windows' EM_AUTOURLDETECT message
+ const BOOL isEditable = textView.isEditable;
[textView setEditable:YES];
[textView setEnabledTextCheckingTypes:NSTextCheckingTypeLink];
[textView checkTextInDocument:nil];