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:
authorKandrashin Denis <mail@lintest.ru>2012-12-02 23:55:25 +0400
committerKandrashin Denis <mail@lintest.ru>2012-12-02 23:55:25 +0400
commitcae2627af345f4b4be32a5e187be122caeb28bc0 (patch)
treea3ee91cb7fee4198db5aba5b9ffd8b94e1e1494b
parent377794bb67eae58effb6672f6df8ac281e98720a (diff)
Show text modification [*] in window title
-rw-r--r--source/fb2app.cpp16
-rw-r--r--source/fb2dock.cpp9
-rw-r--r--source/fb2dock.hpp2
-rw-r--r--source/fb2head.hpp1
-rw-r--r--source/fb2main.cpp12
-rw-r--r--source/fb2main.hpp3
-rw-r--r--source/fb2text.cpp6
-rw-r--r--source/fb2text.hpp4
8 files changed, 27 insertions, 26 deletions
diff --git a/source/fb2app.cpp b/source/fb2app.cpp
index 010a3ab..0756f6d 100644
--- a/source/fb2app.cpp
+++ b/source/fb2app.cpp
@@ -23,22 +23,6 @@ QString FbApplication::lastCommit()
void FbApplication::handleMessage(QtMsgType type, const char *msg)
{
- /*
- switch (type) {
- case QtDebugMsg:
- fprintf(stderr, "Debug: %s\n", msg);
- break;
- case QtWarningMsg:
- fprintf(stderr, "Warning: %s\n", msg);
- break;
- case QtCriticalMsg:
- fprintf(stderr, "Critical: %s\n", msg);
- break;
- case QtFatalMsg:
- fprintf(stderr, "Fatal: %s\n", msg);
- abort();
- }
- */
emit logMessage(type, QString::fromUtf8(msg));
}
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;
diff --git a/source/fb2dock.hpp b/source/fb2dock.hpp
index 735421b..b4588cc 100644
--- a/source/fb2dock.hpp
+++ b/source/fb2dock.hpp
@@ -34,9 +34,11 @@ public:
bool isModified() const;
signals:
+ void modificationChanged(bool changed);
void status(const QString &text);
private slots:
+ void textChanged(bool changed);
void error(int row, int col);
private:
diff --git a/source/fb2head.hpp b/source/fb2head.hpp
index 258173f..d8fd7e2 100644
--- a/source/fb2head.hpp
+++ b/source/fb2head.hpp
@@ -182,6 +182,7 @@ public:
void disconnectActions();
signals:
+ void modificationChanged(bool changed);
void status(const QString &text);
public slots:
diff --git a/source/fb2main.cpp b/source/fb2main.cpp
index a55aad1..bcb4958 100644
--- a/source/fb2main.cpp
+++ b/source/fb2main.cpp
@@ -27,13 +27,14 @@ FbMainWindow::FbMainWindow(const QString &filename, ViewMode mode)
, isSwitched(false)
, isUntitled(true)
{
- connect(qApp, SIGNAL(logMessage(QString)), SLOT(logMessage(QString)));
+ connect(qApp, SIGNAL(logMessage(QtMsgType, QString)), SLOT(logMessage(QtMsgType, QString)));
setUnifiedTitleAndToolBarOnMac(true);
setAttribute(Qt::WA_DeleteOnClose);
setWindowIcon(QIcon(":icon.ico"));
mainDock = new FbMainDock(this);
+ connect(mainDock, SIGNAL(modificationChanged(bool)), SLOT(textChanged(bool)));
setCentralWidget(mainDock);
createActions();
@@ -143,12 +144,7 @@ void FbMainWindow::about()
QMessageBox::about(this, tr("About fb2edit"), text);
}
-void FbMainWindow::documentWasModified()
-{
-// setModified(isSwitched || codeEdit->isModified());
-}
-
-void FbMainWindow::setModified(bool modified)
+void FbMainWindow::textChanged(bool modified)
{
QFileInfo info = windowFilePath();
QString title = info.fileName();
@@ -575,7 +571,7 @@ void FbMainWindow::setCurrentFile(const QString &filename)
curFile = info.canonicalFilePath();
}
setWindowFilePath(curFile);
- setModified(false);
+ textChanged(false);
}
QString FbMainWindow::appTitle() const
diff --git a/source/fb2main.hpp b/source/fb2main.hpp
index 49b62d5..56bf01d 100644
--- a/source/fb2main.hpp
+++ b/source/fb2main.hpp
@@ -50,7 +50,7 @@ private slots:
bool fileSaveAs();
void about();
- void documentWasModified();
+ void textChanged(bool modified);
void logDestroyed();
void openSettings();
@@ -66,7 +66,6 @@ private:
void createStatusBar();
void readSettings();
void writeSettings();
- void setModified(bool modified);
bool maybeSave();
bool saveFile(const QString &fileName, const QString &codec = QString());
void setCurrentFile(const QString &fileName = QString());
diff --git a/source/fb2text.cpp b/source/fb2text.cpp
index b36f386..912fc81 100644
--- a/source/fb2text.cpp
+++ b/source/fb2text.cpp
@@ -221,6 +221,7 @@ FbTextEdit::FbTextEdit(QWidget *parent, QObject *owner)
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(contextMenu(QPoint)));
connect(p, SIGNAL(linkHovered(QString,QString,QString)), SLOT(linkHovered(QString,QString,QString)));
+ connect(p->undoStack(), SIGNAL(cleanChanged(bool)), SLOT(cleanChanged(bool)));
setPage(p);
}
@@ -461,6 +462,11 @@ void FbTextEdit::mouseMoveEvent(QMouseEvent *event)
QWebView::mouseMoveEvent(event);
}
+void FbTextEdit::cleanChanged(bool clean)
+{
+ emit modificationChanged(!clean);
+}
+
void FbTextEdit::contextMenu(const QPoint &pos)
{
QMenu menu, *submenu;
diff --git a/source/fb2text.hpp b/source/fb2text.hpp
index 00310db..86293b7 100644
--- a/source/fb2text.hpp
+++ b/source/fb2text.hpp
@@ -97,6 +97,9 @@ public:
QWebElement body();
QWebElement doc();
+signals:
+ void modificationChanged(bool changed);
+
protected:
virtual void mouseMoveEvent(QMouseEvent *event);
@@ -113,6 +116,7 @@ public slots:
private slots:
void linkHovered(const QString &link, const QString &title, const QString &textContent);
void contextMenu(const QPoint &pos);
+ void cleanChanged(bool clean);
void treeDestroyed();
void imgsDestroyed();
void noteDestroyed();