From d14f4697b4ce4e70d2d63cd336d42692ff88c5f1 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 5 Dec 2017 19:45:04 +0800 Subject: [PATCH] replace palette in clss VNote with VPalette --- src/resources/styles/default.mdhl | 8 -- src/resources/themes/v_white/v_white.palette | 11 ++ src/utils/vvim.cpp | 3 +- src/vbuttonwithwidget.h | 8 ++ src/vconfigmanager.cpp | 34 +----- src/vconfigmanager.h | 38 ------- src/veditor.h | 3 - src/vmainwindow.cpp | 13 +-- src/vmainwindow.h | 2 - src/vmdeditor.h | 8 -- src/vnote.cpp | 109 ++----------------- src/vnote.h | 11 +- src/vtextdocumentlayout.cpp | 2 - src/vtextdocumentlayout.h | 20 ---- src/vtextedit.cpp | 10 -- src/vtextedit.h | 4 - 16 files changed, 35 insertions(+), 249 deletions(-) diff --git a/src/resources/styles/default.mdhl b/src/resources/styles/default.mdhl index 5ddae6a8..561fed3d 100644 --- a/src/resources/styles/default.mdhl +++ b/src/resources/styles/default.mdhl @@ -41,16 +41,8 @@ editor-current-line background: c5cae9 # [VNote] Vim insert mode cursor line background vim-insert-background: c5cae9 -# [VNote] Vim insert mode cursor block background -vim-insert-cursor-background: 4359e8 -# [VNote] Vim insert mode cursor block foreground -vim-insert-cursor-foreground: eeeeee # [VNote] Vim normal mode cursor line background vim-normal-background: bcbcbc -# [VNote] Vim normal mode cursor block background -vim-normal-cursor-background: 3e3e3e -# [VNote] Vim normal mode cursor block foreground -vim-normal-cursor-foreground: eeeeee # [VNote] Vim visual mode cursor line background vim-visual-background: 90caf9 # [VNote] Vim replace mode cursor line background diff --git a/src/resources/themes/v_white/v_white.palette b/src/resources/themes/v_white/v_white.palette index 1ca8f9f1..a83460b2 100644 --- a/src/resources/themes/v_white/v_white.palette +++ b/src/resources/themes/v_white/v_white.palette @@ -45,9 +45,20 @@ selection_bg=#64b5f6 [soft_defined] ; VAvatar. +avatar_border_bg=@title_bg +avatar_fg=@base_bg +avatar_bg=@base_fg ; The border background color of the avatar when Captain mode is triggered. avatar_captain_mode_border_bg=#6C6C6C +; Style of the label in Navigation mode. +navigation_label_fg=#4D4D4D +navigation_label_bg=#F4F4F4 + +; Style of the bubble of VButtonWithWidget. +bubble_fg=#FFFFFF +bubble_bg=#6C6C6C + [widgets] ; Widget color attributes. diff --git a/src/utils/vvim.cpp b/src/utils/vvim.cpp index a9fc2e1c..5a2ccd5b 100644 --- a/src/utils/vvim.cpp +++ b/src/utils/vvim.cpp @@ -5940,7 +5940,8 @@ void VVim::handleMousePressed(QMouseEvent *p_event) { Q_UNUSED(p_event); QTextCursor cursor = m_editor->textCursorW(); - if (checkMode(VimMode::Visual) || checkMode(VimMode::VisualLine)) { + if ((checkMode(VimMode::Visual) || checkMode(VimMode::VisualLine)) + && p_event->buttons() != Qt::RightButton) { setMode(VimMode::Normal); } else if (checkMode(VimMode::Normal)) { if (cursor.hasSelection()) { diff --git a/src/vbuttonwithwidget.h b/src/vbuttonwithwidget.h index 84929df1..a1e50c17 100644 --- a/src/vbuttonwithwidget.h +++ b/src/vbuttonwithwidget.h @@ -65,6 +65,9 @@ public: // @p_num: -1 to hide the bubble. void setBubbleNumber(int p_num); + // Set the foreground and background of the bubble. + void setBubbleColor(const QColor &p_fg, const QColor &p_bg); + signals: // Emit when popup widget is about to show. void popupWidgetAboutToShow(QWidget *p_widget); @@ -99,4 +102,9 @@ inline VButtonPopupWidget *VButtonWithWidget::getButtonPopupWidget() const return dynamic_cast(m_popupWidget); } +inline void VButtonWithWidget::setBubbleColor(const QColor &p_fg, const QColor &p_bg) +{ + m_bubbleFg = p_fg; + m_bubbleBg = p_bg; +} #endif // VBUTTONWITHWIDGET_H diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index 84bc20e8..ccb6d5e6 100644 --- a/src/vconfigmanager.cpp +++ b/src/vconfigmanager.cpp @@ -552,13 +552,7 @@ void VConfigManager::updateMarkdownEditStyle() static const QString defaultCurrentLineBackground = "#C5CAE9"; static const QString defaultVimNormalBg = "#BCBCBC"; - static const QString defaultVimNormalCursorBg = "#3E3E3E"; - static const QString defaultVimNormalCursorFg = "#EEEEEE"; - static const QString defaultVimInsertBg = "#C5CAE9"; - static const QString defaultVimInsertCursorBg = "#4359E8"; - static const QString defaultVimInsertCursorFg = "#EEEEEE"; - static const QString defaultVimVisualBg = "#90CAF9"; static const QString defaultVimReplaceBg = "#F8BBD0"; @@ -594,17 +588,11 @@ void VConfigManager::updateMarkdownEditStyle() m_codeBlockStyles = parser.fetchCodeBlockStyles(mdEditFont); m_editorCurrentLineBg = defaultCurrentLineBackground; - m_editorVimInsertBg = defaultVimInsertBg; - m_editorVimInsertCursorBg = defaultVimInsertCursorBg; - m_editorVimInsertCursorFg = defaultVimInsertCursorFg; - m_editorVimNormalBg = defaultVimNormalBg; - m_editorVimNormalCursorBg = defaultVimNormalCursorBg; - m_editorVimNormalCursorFg = defaultVimNormalCursorFg; - m_editorVimVisualBg = defaultVimVisualBg; m_editorVimReplaceBg = defaultVimReplaceBg; + auto editorCurrentLineIt = styles.find("editor-current-line"); if (editorCurrentLineIt != styles.end()) { auto backgroundIt = editorCurrentLineIt->find("background"); @@ -618,31 +606,11 @@ void VConfigManager::updateMarkdownEditStyle() m_editorVimInsertBg = "#" + *vimBgIt; } - vimBgIt = editorCurrentLineIt->find("vim-insert-cursor-background"); - if (vimBgIt != editorCurrentLineIt->end()) { - m_editorVimInsertCursorBg = "#" + *vimBgIt; - } - - vimBgIt = editorCurrentLineIt->find("vim-insert-cursor-foreground"); - if (vimBgIt != editorCurrentLineIt->end()) { - m_editorVimInsertCursorFg = "#" + *vimBgIt; - } - vimBgIt = editorCurrentLineIt->find("vim-normal-background"); if (vimBgIt != editorCurrentLineIt->end()) { m_editorVimNormalBg = "#" + *vimBgIt; } - vimBgIt = editorCurrentLineIt->find("vim-normal-cursor-background"); - if (vimBgIt != editorCurrentLineIt->end()) { - m_editorVimNormalCursorBg = "#" + *vimBgIt; - } - - vimBgIt = editorCurrentLineIt->find("vim-normal-cursor-foreground"); - if (vimBgIt != editorCurrentLineIt->end()) { - m_editorVimNormalCursorFg = "#" + *vimBgIt; - } - vimBgIt = editorCurrentLineIt->find("vim-visual-background"); if (vimBgIt != editorCurrentLineIt->end()) { m_editorVimVisualBg = "#" + *vimBgIt; diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index ed6a9430..aa371df2 100644 --- a/src/vconfigmanager.h +++ b/src/vconfigmanager.h @@ -210,13 +210,7 @@ public: const QString &getEditorIncrementalSearchedWordBg() const; const QString &getEditorVimNormalBg() const; - const QString &getEditorVimNormalCursorBg() const; - const QString &getEditorVimNormalCursorFg() const; - const QString &getEditorVimInsertBg() const; - const QString &getEditorVimInsertCursorBg() const; - const QString &getEditorVimInsertCursorFg() const; - const QString &getEditorVimVisualBg() const; const QString &getEditorVimReplaceBg() const; @@ -585,21 +579,9 @@ private: // Current line background color in editor in Vim normal mode. QString m_editorVimNormalBg; - // Cursour block background color in editor in Vim normal mode. - QString m_editorVimNormalCursorBg; - - // Cursour block foreground color in editor in Vim normal mode. - QString m_editorVimNormalCursorFg; - // Current line background color in editor in Vim insert mode. QString m_editorVimInsertBg; - // Cursour block background color in editor in Vim insert mode. - QString m_editorVimInsertCursorBg; - - // Cursour block foreground color in editor in Vim insert mode. - QString m_editorVimInsertCursorFg; - // Current line background color in editor in Vim visual mode. QString m_editorVimVisualBg; @@ -1303,31 +1285,11 @@ inline const QString &VConfigManager::getEditorVimNormalBg() const return m_editorVimNormalBg; } -inline const QString &VConfigManager::getEditorVimNormalCursorBg() const -{ - return m_editorVimNormalCursorBg; -} - -inline const QString &VConfigManager::getEditorVimNormalCursorFg() const -{ - return m_editorVimNormalCursorFg; -} - inline const QString &VConfigManager::getEditorVimInsertBg() const { return m_editorVimInsertBg; } -inline const QString &VConfigManager::getEditorVimInsertCursorBg() const -{ - return m_editorVimInsertCursorBg; -} - -inline const QString &VConfigManager::getEditorVimInsertCursorFg() const -{ - return m_editorVimInsertCursorFg; -} - inline const QString &VConfigManager::getEditorVimVisualBg() const { return m_editorVimVisualBg; diff --git a/src/veditor.h b/src/veditor.h index e10120dc..673c0352 100644 --- a/src/veditor.h +++ b/src/veditor.h @@ -146,9 +146,6 @@ public: // @p_modified: if true, delete the whole content and insert the new content. virtual void setContent(const QString &p_content, bool p_modified = false) = 0; - // Set the cursor block's background and foreground. - virtual void setCursorBlockColor(const QColor &p_bg, const QColor &p_fg) = 0; - // Wrapper functions for QPlainTextEdit/QTextEdit. // Ends with W to distinguish it from the original interfaces. public: diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index 5a92c0bd..8f4aa0bb 100644 --- a/src/vmainwindow.cpp +++ b/src/vmainwindow.cpp @@ -61,7 +61,6 @@ VMainWindow::VMainWindow(VSingleInstanceGuard *p_guard, QWidget *p_parent) setWindowIcon(QIcon(":/resources/icons/vnote.ico")); vnote = new VNote(this); g_vnote = vnote; - vnote->initPalette(palette()); initPredefinedColorPixmaps(); if (g_config->getEnableCompactMode()) { @@ -560,6 +559,8 @@ void VMainWindow::initNoteToolBar(QSize p_iconSize) "", m_attachmentList, this); + m_attachmentBtn->setBubbleColor(g_palette->color("bubble_fg"), + g_palette->color("bubble_bg")); m_attachmentBtn->setToolTip(tr("Attachments (drag files here to add attachments)")); m_attachmentBtn->setProperty("CornerBtn", true); m_attachmentBtn->setFocusPolicy(Qt::NoFocus); @@ -1256,8 +1257,9 @@ void VMainWindow::initAvatar() { m_avatar = new VAvatar(this); m_avatar->setAvatarPixmap(":/resources/icons/vnote.svg"); - m_avatar->setColor(vnote->getColorFromPalette("base-color"), vnote->getColorFromPalette("Indigo4"), - vnote->getColorFromPalette("Teal4")); + m_avatar->setColor(g_palette->color("avatar_border_bg"), + g_palette->color("avatar_fg"), + g_palette->color("avatar_bg")); m_avatar->hide(); } @@ -2179,11 +2181,6 @@ void VMainWindow::restoreStateAndGeometry() } } -const QVector >& VMainWindow::getPalette() const -{ - return vnote->getPalette(); -} - void VMainWindow::handleCurrentDirectoryChanged(const VDirectory *p_dir) { newNoteAct->setEnabled(p_dir); diff --git a/src/vmainwindow.h b/src/vmainwindow.h index 4b2939a3..5d6b2398 100644 --- a/src/vmainwindow.h +++ b/src/vmainwindow.h @@ -54,8 +54,6 @@ class VMainWindow : public QMainWindow public: VMainWindow(VSingleInstanceGuard *p_guard, QWidget *p_parent = 0); - const QVector > &getPalette() const; - // Returns true if the location succeeds. bool locateFile(VFile *p_file); diff --git a/src/vmdeditor.h b/src/vmdeditor.h index 3cea8b97..b35baa39 100644 --- a/src/vmdeditor.h +++ b/src/vmdeditor.h @@ -59,9 +59,6 @@ public: void setContent(const QString &p_content, bool p_modified = false) Q_DECL_OVERRIDE; - // Set the cursor block's background and foreground. - void setCursorBlockColor(const QColor &p_bg, const QColor &p_fg) Q_DECL_OVERRIDE; - public slots: bool jumpTitle(bool p_forward, int p_relativeLevel, int p_repeat) Q_DECL_OVERRIDE; @@ -221,9 +218,4 @@ private: bool m_freshEdit; }; -inline void VMdEditor::setCursorBlockColor(const QColor &p_bg, const QColor &p_fg) -{ - setCursorBlockBg(p_bg); - setCursorBlockFg(p_fg); -} #endif // VMDEDITOR_H diff --git a/src/vnote.cpp b/src/vnote.cpp index f55d4256..1d07ade7 100644 --- a/src/vnote.cpp +++ b/src/vnote.cpp @@ -13,13 +13,15 @@ #include "vmainwindow.h" #include "vorphanfile.h" #include "vnotefile.h" +#include "vpalette.h" extern VConfigManager *g_config; +extern VPalette *g_palette; + // Meta word manager. VMetaWordManager *g_mwMgr; - QString VNote::s_markdownTemplate; QString VNote::s_markdownTemplatePDF; @@ -68,104 +70,6 @@ VNote::VNote(QObject *parent) g_mwMgr = &m_metaWordMgr; } -void VNote::initPalette(QPalette palette) -{ - m_palette.clear(); - - m_palette.append(QPair("base-background", - palette.background().color().name())); - m_palette.append(QPair("base-foreground", - palette.background().color().name())); - m_palette.append(QPair("hover-color", "#42A5F5")); - m_palette.append(QPair("base-color", "#BDBDBD")); - m_palette.append(QPair("focus-color", "#75C5B5")); - m_palette.append(QPair("logo-base", "#F4F4F4")); - m_palette.append(QPair("logo-max", "#4D4D4D")); - m_palette.append(QPair("logo-min", "#C69C6D")); - - // Material Design Colors - m_palette.append(QPair("Teal0", "#E0F2F1")); - m_palette.append(QPair("Teal1", "#B2DFDB")); - m_palette.append(QPair("Teal2", "#80CBC4")); - m_palette.append(QPair("Teal3", "#4DB6AC")); - m_palette.append(QPair("Teal4", "#26A69A")); - m_palette.append(QPair("Teal5", "#009688")); - m_palette.append(QPair("Teal6", "#00897B")); - m_palette.append(QPair("Teal7", "#00796B")); - m_palette.append(QPair("Teal8", "#00695C")); - m_palette.append(QPair("Teal9", "#004D40")); - - m_palette.append(QPair("Indigo0", "#E8EAF6")); - m_palette.append(QPair("Indigo1", "#C5CAE9")); - m_palette.append(QPair("Indigo2", "#9FA8DA")); - m_palette.append(QPair("Indigo3", "#7986CB")); - m_palette.append(QPair("Indigo4", "#5C6BC0")); - - m_palette.append(QPair("Grey0", "#FAFAFA")); - m_palette.append(QPair("Grey1", "#F5F5F5")); - m_palette.append(QPair("Grey2", "#EEEEEE")); - m_palette.append(QPair("Grey3", "#E0E0E0")); - m_palette.append(QPair("Grey4", "#BDBDBD")); - m_palette.append(QPair("Grey5", "#9E9E9E")); - m_palette.append(QPair("Grey6", "#757575")); - m_palette.append(QPair("Grey7", "#616161")); - m_palette.append(QPair("Grey8", "#424242")); - - m_palette.append(QPair("Green0", "#E8F5E9")); - m_palette.append(QPair("Green1", "#C8E6C9")); - m_palette.append(QPair("Green2", "#A5D6A7")); - m_palette.append(QPair("Green3", "#81C784")); - m_palette.append(QPair("Green4", "#66BB6A")); - m_palette.append(QPair("Green5", "#4CAF50")); - m_palette.append(QPair("Green6", "#43A047")); - m_palette.append(QPair("Green7", "#388E3C")); - m_palette.append(QPair("Green8", "#2E7D32")); - m_palette.append(QPair("Green9", "#1B5E20")); - - m_palette.append(QPair("DeepPurple0", "#EDE7F6")); - m_palette.append(QPair("DeepPurple1", "#D1C4E9")); - m_palette.append(QPair("DeepPurple2", "#B39DDB")); - m_palette.append(QPair("DeepPurple3", "#9575CD")); - m_palette.append(QPair("DeepPurple4", "#7E57C2")); - m_palette.append(QPair("DeepPurple5", "#673AB7")); - m_palette.append(QPair("DeepPurple6", "#5E35B1")); - m_palette.append(QPair("DeepPurple7", "#512DA8")); - m_palette.append(QPair("DeepPurple8", "#4527A0")); - m_palette.append(QPair("DeepPurple9", "#311B92")); - - m_palette.append(QPair("Purple0", "#F3E5F5")); - m_palette.append(QPair("Purple1", "#E1BEE7")); - m_palette.append(QPair("Purple2", "#CE93D8")); - m_palette.append(QPair("Purple3", "#BA68C8")); - m_palette.append(QPair("Purple4", "#AB47BC")); - m_palette.append(QPair("Purple5", "#9C27B0")); - m_palette.append(QPair("Purple6", "#8E24AA")); - m_palette.append(QPair("Purple7", "#7B1FA2")); - m_palette.append(QPair("Purple8", "#6A1B9A")); - m_palette.append(QPair("Purple9", "#4A148C")); - - m_palette.append(QPair("Red0", "#FFEBEE")); - m_palette.append(QPair("Red1", "#FFCDD2")); - m_palette.append(QPair("Red2", "#EF9A9A")); - m_palette.append(QPair("Red3", "#E57373")); - m_palette.append(QPair("Red4", "#EF5350")); - m_palette.append(QPair("Red5", "#F44336")); - m_palette.append(QPair("Red6", "#E53935")); - m_palette.append(QPair("Red7", "#D32F2F")); - m_palette.append(QPair("Red8", "#C62828")); - m_palette.append(QPair("Red9", "#B71C1C")); -} - -QString VNote::getColorFromPalette(const QString &p_name) const -{ - for (int i = 0; i < m_palette.size(); ++i) { - if (m_palette[i].first == p_name) { - return m_palette[i].second; - } - } - return "White"; -} - void VNote::initTemplate() { if (s_markdownTemplate.isEmpty()) { @@ -242,7 +146,8 @@ QString VNote::getNavigationLabelStyle(const QString &p_str) const { static int lastLen = -1; static int pxWidth = 24; - int fontPt = 15; + const int fontPt = 15; + QString fontFamily = getMonospacedFont(); if (p_str.size() != lastLen) { @@ -261,8 +166,8 @@ QString VNote::getNavigationLabelStyle(const QString &p_str) const "border-radius: 3px;" "min-width: %5px;" "max-width: %5px;") - .arg(getColorFromPalette("logo-base")) - .arg(getColorFromPalette("logo-max")) + .arg(g_palette->color("navigation_label_bg")) + .arg(g_palette->color("navigation_label_fg")) .arg(fontPt) .arg(fontFamily) .arg(pxWidth); diff --git a/src/vnote.h b/src/vnote.h index 11f4ebd6..b3a4d890 100644 --- a/src/vnote.h +++ b/src/vnote.h @@ -72,10 +72,7 @@ public: static const QString c_markdownGuideDocFile_en; static const QString c_markdownGuideDocFile_zh; - const QVector > &getPalette() const; - void initPalette(QPalette palette); - QString getColorFromPalette(const QString &p_name) const; - + // Get the label style in Navigation mode. QString getNavigationLabelStyle(const QString &p_str) const; // Given the path of a file, first try to open it as note file, @@ -105,7 +102,6 @@ private: // Maintain all the notebooks. Other holder should use QPointer. QVector m_notebooks; - QVector > m_palette; VMetaWordManager m_metaWordMgr; @@ -114,9 +110,4 @@ private: QList m_externalFiles; }; -inline const QVector >& VNote::getPalette() const -{ - return m_palette; -} - #endif // VNOTE_H diff --git a/src/vtextdocumentlayout.cpp b/src/vtextdocumentlayout.cpp index a0a976a0..12d98617 100644 --- a/src/vtextdocumentlayout.cpp +++ b/src/vtextdocumentlayout.cpp @@ -34,8 +34,6 @@ VTextDocumentLayout::VTextDocumentLayout(QTextDocument *p_doc, m_imageLineColor("#9575CD"), m_cursorBlockMode(CursorBlock::None), m_virtualCursorBlockWidth(8), - m_cursorBlockFg("#EEEEEE"), - m_cursorBlockBg("#222222"), m_lastCursorBlockWidth(-1) { } diff --git a/src/vtextdocumentlayout.h b/src/vtextdocumentlayout.h index 0ca2ab1f..898443a8 100644 --- a/src/vtextdocumentlayout.h +++ b/src/vtextdocumentlayout.h @@ -57,10 +57,6 @@ public: void setCursorBlockMode(CursorBlock p_mode); - void setCursorBlockFg(const QColor &p_color); - - void setCursorBlockBg(const QColor &p_color); - void setVirtualCursorBlockWidth(int p_width); void clearLastCursorBlockWidth(); @@ -290,12 +286,6 @@ private: // Virtual cursor block: cursor block on no character. int m_virtualCursorBlockWidth; - // Foreground of cursor block. - QColor m_cursorBlockFg; - - // Background of cursor block. - QColor m_cursorBlockBg; - int m_lastCursorBlockWidth; }; @@ -321,16 +311,6 @@ inline void VTextDocumentLayout::setCursorBlockMode(CursorBlock p_mode) m_cursorBlockMode = p_mode; } -inline void VTextDocumentLayout::setCursorBlockFg(const QColor &p_color) -{ - m_cursorBlockFg = p_color; -} - -inline void VTextDocumentLayout::setCursorBlockBg(const QColor &p_color) -{ - m_cursorBlockBg = p_color; -} - inline void VTextDocumentLayout::setVirtualCursorBlockWidth(int p_width) { m_virtualCursorBlockWidth = p_width; diff --git a/src/vtextedit.cpp b/src/vtextedit.cpp index d7bb8974..23a311b8 100644 --- a/src/vtextedit.cpp +++ b/src/vtextedit.cpp @@ -356,13 +356,3 @@ void VTextEdit::setCursorBlockMode(CursorBlock p_mode) : 1); } } - -void VTextEdit::setCursorBlockFg(const QColor &p_color) -{ - getLayout()->setCursorBlockFg(p_color); -} - -void VTextEdit::setCursorBlockBg(const QColor &p_color) -{ - getLayout()->setCursorBlockBg(p_color); -} diff --git a/src/vtextedit.h b/src/vtextedit.h index 6c8402a1..19e3818c 100644 --- a/src/vtextedit.h +++ b/src/vtextedit.h @@ -59,10 +59,6 @@ public: void setCursorBlockMode(CursorBlock p_mode); - void setCursorBlockFg(const QColor &p_color); - - void setCursorBlockBg(const QColor &p_color); - protected: void resizeEvent(QResizeEvent *p_event) Q_DECL_OVERRIDE;