From e1c09a83ec68a5dcf71dbf17d0c49cd66de3f434 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Sun, 2 Apr 2017 14:32:05 +0800 Subject: [PATCH] add sequence to edit tab --- src/veditwindow.cpp | 24 +++++++++++++++++++++--- src/veditwindow.h | 14 +++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/veditwindow.cpp b/src/veditwindow.cpp index 0d999ea0..4560d0d7 100644 --- a/src/veditwindow.cpp +++ b/src/veditwindow.cpp @@ -319,16 +319,34 @@ void VEditWindow::noticeTabStatus(int p_index) return; } + updateTabInfo(p_index); + updateAllTabsSequence(); + + VEditTab *editor = getTab(p_index); + const VFile *file = editor->getFile(); + bool editMode = editor->getIsEditMode(); + emit tabStatusChanged(file, editor, editMode); +} + +void VEditWindow::updateTabInfo(int p_index) +{ VEditTab *editor = getTab(p_index); const VFile *file = editor->getFile(); bool editMode = editor->getIsEditMode(); - // Update tab text - setTabText(p_index, generateTabText(file->getName(), file->isModified())); + setTabText(p_index, generateTabText(p_index, file->getName(), file->isModified())); setTabToolTip(p_index, generateTooltip(file)); setTabIcon(p_index, editMode ? QIcon(":/resources/icons/editing.svg") : QIcon(":/resources/icons/reading.svg")); - emit tabStatusChanged(file, editor, editMode); +} + +void VEditWindow::updateAllTabsSequence() +{ + for (int i = 0; i < count(); ++i) { + VEditTab *editor = getTab(i); + const VFile *file = editor->getFile(); + setTabText(i, generateTabText(i, file->getName(), file->isModified())); + } } // Be requested to report current status diff --git a/src/veditwindow.h b/src/veditwindow.h index c7654cd6..193ba8f9 100644 --- a/src/veditwindow.h +++ b/src/veditwindow.h @@ -92,9 +92,13 @@ private: void noticeTabStatus(int p_index); void noticeStatus(int index); inline QString generateTooltip(const VFile *p_file) const; - inline QString generateTabText(const QString &p_name, bool p_modified) const; + inline QString generateTabText(int p_index, const QString &p_name, + bool p_modified) const; bool canRemoveSplit(); void moveTabOneSplit(int p_tabIdx, bool p_right); + void updateTabInfo(int p_idx); + // Update the sequence number of all the tabs. + void updateAllTabsSequence(); VNote *vnote; VEditArea *m_editArea; @@ -127,9 +131,13 @@ inline QString VEditWindow::generateTooltip(const VFile *p_file) const return QString("[%1] %2").arg(p_file->getNotebookName()).arg(p_file->retrivePath()); } -inline QString VEditWindow::generateTabText(const QString &p_name, bool p_modified) const +inline QString VEditWindow::generateTabText(int p_index, const QString &p_name, + bool p_modified) const { - return p_modified ? (p_name + "*") : p_name; + // Based on 1. + const int base = 1; + QString seq = QString::number(p_index + base, 10); + return seq + ". " + (p_modified ? (p_name + "*") : p_name); } #endif // VEDITWINDOW_H