Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/lintest/fb2edit.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/fb2dock.cpp')
-rw-r--r--source/fb2dock.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/fb2dock.cpp b/source/fb2dock.cpp
index 4cec1d3..0b91598 100644
--- a/source/fb2dock.cpp
+++ b/source/fb2dock.cpp
@@ -60,6 +60,9 @@ FbMainDock::FbMainDock(QWidget *parent)
connect(m_text->page(), SIGNAL(error(int,int,QString)), SLOT(error(int,int)));
connect(m_text->page(), SIGNAL(fatal(int,int,QString)), SLOT(error(int,int)));
connect(m_text->page(), SIGNAL(status(QString)), parent, SLOT(status(QString)));
+ connect(m_text, SIGNAL(modificationChanged(bool)), SLOT(textChanged(bool)));
+ connect(m_head, SIGNAL(modificationChanged(bool)), SLOT(textChanged(bool)));
+ connect(m_code, SIGNAL(modificationChanged(bool)), SLOT(textChanged(bool)));
connect(m_head, SIGNAL(status(QString)), parent, SLOT(status(QString)));
connect(m_code, SIGNAL(status(QString)), parent, SLOT(status(QString)));
connect(this, SIGNAL(status(QString)), parent, SLOT(status(QString)));
@@ -68,6 +71,7 @@ FbMainDock::FbMainDock(QWidget *parent)
void FbMainDock::switchMode(Fb::Mode mode)
{
if (mode == m_mode) return;
+ isSwitched = isModified();
if (currentWidget() == m_code) {
QString xml = m_code->toPlainText();
switch (m_mode) {
@@ -188,6 +192,11 @@ bool FbMainDock::save(QIODevice *device, const QString &codec)
return true;
}
+void FbMainDock::textChanged(bool changed)
+{
+ emit modificationChanged(isSwitched || changed);
+}
+
bool FbMainDock::isModified() const
{
if (isSwitched) return true;