diff --git a/src/dialog/vconfirmdeletiondialog.cpp b/src/dialog/vconfirmdeletiondialog.cpp index 49fd22c3..9281e934 100644 --- a/src/dialog/vconfirmdeletiondialog.cpp +++ b/src/dialog/vconfirmdeletiondialog.cpp @@ -122,7 +122,7 @@ void VConfirmDeletionDialog::setupUI(const QString &p_title, m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(m_btnBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); - m_btnBox->button(QDialogButtonBox::Ok)->setStyleSheet(g_config->c_dangerBtnStyle); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("DangerBtn", true); QHBoxLayout *midLayout = new QHBoxLayout; midLayout->addWidget(m_listWidget); diff --git a/src/dialog/vdirinfodialog.cpp b/src/dialog/vdirinfodialog.cpp index e67c98a3..50c9e3eb 100644 --- a/src/dialog/vdirinfodialog.cpp +++ b/src/dialog/vdirinfodialog.cpp @@ -53,6 +53,7 @@ void VDirInfoDialog::setupUI() connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_nameEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/veditsnippetdialog.cpp b/src/dialog/veditsnippetdialog.cpp index 7a7a7098..3845cf83 100644 --- a/src/dialog/veditsnippetdialog.cpp +++ b/src/dialog/veditsnippetdialog.cpp @@ -79,6 +79,7 @@ void VEditSnippetDialog::setupUI(const QString &p_title, const QString &p_info) // Content. m_contentEdit = new QTextEdit(); + m_contentEdit->setProperty("LineEdit", true); setContentEditByType(); QFormLayout *topLayout = new QFormLayout(); @@ -100,6 +101,7 @@ void VEditSnippetDialog::setupUI(const QString &p_title, const QString &p_info) connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_nameEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/vfileinfodialog.cpp b/src/dialog/vfileinfodialog.cpp index 4fd4a8a8..7af9a5f0 100644 --- a/src/dialog/vfileinfodialog.cpp +++ b/src/dialog/vfileinfodialog.cpp @@ -75,6 +75,7 @@ void VFileInfoDialog::setupUI(const QString &p_title, const QString &p_info) connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_nameEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/vinsertimagedialog.cpp b/src/dialog/vinsertimagedialog.cpp index 214d8258..a9cfa08b 100644 --- a/src/dialog/vinsertimagedialog.cpp +++ b/src/dialog/vinsertimagedialog.cpp @@ -59,6 +59,7 @@ void VInsertImageDialog::setupUI() m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(m_btnBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("SpecialBtn", true); imagePreviewLabel = new QLabel(); imagePreviewLabel->setVisible(false); diff --git a/src/dialog/vinsertlinkdialog.cpp b/src/dialog/vinsertlinkdialog.cpp index e2ee9cb2..e7382431 100644 --- a/src/dialog/vinsertlinkdialog.cpp +++ b/src/dialog/vinsertlinkdialog.cpp @@ -53,6 +53,7 @@ void VInsertLinkDialog::setupUI(const QString &p_title, connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_linkTextEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout; diff --git a/src/dialog/vnewdirdialog.cpp b/src/dialog/vnewdirdialog.cpp index 24ad8ccc..dc5e6742 100644 --- a/src/dialog/vnewdirdialog.cpp +++ b/src/dialog/vnewdirdialog.cpp @@ -46,6 +46,7 @@ void VNewDirDialog::setupUI() m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(m_btnBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("SpecialBtn", true); QHBoxLayout *topLayout = new QHBoxLayout(); topLayout->addWidget(nameLabel); diff --git a/src/dialog/vnewfiledialog.cpp b/src/dialog/vnewfiledialog.cpp index 5fc5e702..8f424627 100644 --- a/src/dialog/vnewfiledialog.cpp +++ b/src/dialog/vnewfiledialog.cpp @@ -111,6 +111,7 @@ void VNewFileDialog::setupUI(const QString &p_title, connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_templateCB->setMaximumWidth(okBtn->sizeHint().width() * 4); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/vnewnotebookdialog.cpp b/src/dialog/vnewnotebookdialog.cpp index f211bdc0..e1728f7e 100644 --- a/src/dialog/vnewnotebookdialog.cpp +++ b/src/dialog/vnewnotebookdialog.cpp @@ -90,6 +90,7 @@ void VNewNotebookDialog::setupUI(const QString &p_title, const QString &p_info) connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); pathEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(this); diff --git a/src/dialog/vnotebookinfodialog.cpp b/src/dialog/vnotebookinfodialog.cpp index f7e41eb2..0574bb7a 100644 --- a/src/dialog/vnotebookinfodialog.cpp +++ b/src/dialog/vnotebookinfodialog.cpp @@ -84,6 +84,7 @@ void VNotebookInfoDialog::setupUI(const QString &p_title, const QString &p_info) connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_pathEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/vorphanfileinfodialog.cpp b/src/dialog/vorphanfileinfodialog.cpp index aa9a48af..5b7b561e 100644 --- a/src/dialog/vorphanfileinfodialog.cpp +++ b/src/dialog/vorphanfileinfodialog.cpp @@ -41,6 +41,7 @@ void VOrphanFileInfoDialog::setupUI() connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_imageFolderEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QVBoxLayout *mainLayout = new QVBoxLayout(); diff --git a/src/dialog/vsettingsdialog.cpp b/src/dialog/vsettingsdialog.cpp index 8db4ad45..d6ab3d79 100644 --- a/src/dialog/vsettingsdialog.cpp +++ b/src/dialog/vsettingsdialog.cpp @@ -18,6 +18,7 @@ VSettingsDialog::VSettingsDialog(QWidget *p_parent) m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(m_btnBox, &QDialogButtonBox::accepted, this, &VSettingsDialog::saveConfiguration); connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("SpecialBtn", true); QHBoxLayout *tabLayout = new QHBoxLayout(); tabLayout->addWidget(m_tabList); @@ -208,6 +209,7 @@ QLayout *VGeneralTab::setupStartupPagesLayout() }); m_startupPagesEdit = new QPlainTextEdit(this); + m_startupPagesEdit->setProperty("LineEdit", true); m_startupPagesEdit->setToolTip(tr("Absolute path of the notes to open on startup (one note per line)")); m_startupPagesAddBtn = new QPushButton(tr("Browse"), this); diff --git a/src/dialog/vsortdialog.cpp b/src/dialog/vsortdialog.cpp index 8d8ca9b1..74f37790 100644 --- a/src/dialog/vsortdialog.cpp +++ b/src/dialog/vsortdialog.cpp @@ -112,6 +112,7 @@ void VSortDialog::setupUI(const QString &p_title, const QString &p_info) m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(m_btnBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_btnBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("SpecialBtn", true); QVBoxLayout *mainLayout = new QVBoxLayout; if (infoLabel) { diff --git a/src/dialog/vupdater.cpp b/src/dialog/vupdater.cpp index fb3f2862..1518f3b8 100644 --- a/src/dialog/vupdater.cpp +++ b/src/dialog/vupdater.cpp @@ -34,6 +34,7 @@ void VUpdater::setupUI() m_descriptionTb = new QTextBrowser(); m_btnBox = new QDialogButtonBox(QDialogButtonBox::Ok); + m_btnBox->button(QDialogButtonBox::Ok)->setProperty("SpecialBtn", true); connect(m_btnBox, &QDialogButtonBox::accepted, this, &QDialog::accept); QVBoxLayout *verLayout = new QVBoxLayout(); diff --git a/src/resources/themes/v_pure/arrow_dropdown.svg b/src/resources/themes/v_pure/arrow_dropdown.svg new file mode 100644 index 00000000..55ee520d --- /dev/null +++ b/src/resources/themes/v_pure/arrow_dropdown.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/resources/themes/v_pure/branch_closed.svg b/src/resources/themes/v_pure/branch_closed.svg new file mode 100644 index 00000000..c524ab79 --- /dev/null +++ b/src/resources/themes/v_pure/branch_closed.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/branch_end.svg b/src/resources/themes/v_pure/branch_end.svg new file mode 100644 index 00000000..baa0c23f --- /dev/null +++ b/src/resources/themes/v_pure/branch_end.svg @@ -0,0 +1,7 @@ + + + Layer 2 + + + + diff --git a/src/resources/themes/v_pure/branch_more.svg b/src/resources/themes/v_pure/branch_more.svg new file mode 100644 index 00000000..cb0fecad --- /dev/null +++ b/src/resources/themes/v_pure/branch_more.svg @@ -0,0 +1,7 @@ + + + Layer 2 + + + + diff --git a/src/resources/themes/v_pure/branch_open.svg b/src/resources/themes/v_pure/branch_open.svg new file mode 100644 index 00000000..c1e8e141 --- /dev/null +++ b/src/resources/themes/v_pure/branch_open.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/checkbox_checked.svg b/src/resources/themes/v_pure/checkbox_checked.svg new file mode 100644 index 00000000..e9ae3b12 --- /dev/null +++ b/src/resources/themes/v_pure/checkbox_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/resources/themes/v_pure/checkbox_unchecked.svg b/src/resources/themes/v_pure/checkbox_unchecked.svg new file mode 100644 index 00000000..3ecf0f54 --- /dev/null +++ b/src/resources/themes/v_pure/checkbox_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/resources/themes/v_pure/close.svg b/src/resources/themes/v_pure/close.svg new file mode 100644 index 00000000..aa6b81c1 --- /dev/null +++ b/src/resources/themes/v_pure/close.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/resources/themes/v_pure/close_grey.svg b/src/resources/themes/v_pure/close_grey.svg new file mode 100644 index 00000000..24bddd4e --- /dev/null +++ b/src/resources/themes/v_pure/close_grey.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/resources/themes/v_pure/down.svg b/src/resources/themes/v_pure/down.svg new file mode 100644 index 00000000..386ac7f8 --- /dev/null +++ b/src/resources/themes/v_pure/down.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/down_disabled.svg b/src/resources/themes/v_pure/down_disabled.svg new file mode 100644 index 00000000..2a53e0f0 --- /dev/null +++ b/src/resources/themes/v_pure/down_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/float.svg b/src/resources/themes/v_pure/float.svg new file mode 100644 index 00000000..3c29db9a --- /dev/null +++ b/src/resources/themes/v_pure/float.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/src/resources/themes/v_pure/left.svg b/src/resources/themes/v_pure/left.svg new file mode 100644 index 00000000..aee69f4a --- /dev/null +++ b/src/resources/themes/v_pure/left.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/left_disabled.svg b/src/resources/themes/v_pure/left_disabled.svg new file mode 100644 index 00000000..3cabd4b5 --- /dev/null +++ b/src/resources/themes/v_pure/left_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/line.svg b/src/resources/themes/v_pure/line.svg new file mode 100644 index 00000000..8c981419 --- /dev/null +++ b/src/resources/themes/v_pure/line.svg @@ -0,0 +1,6 @@ + + + Layer 2 + + + diff --git a/src/resources/themes/v_pure/radiobutton_checked.svg b/src/resources/themes/v_pure/radiobutton_checked.svg new file mode 100644 index 00000000..33d62fbb --- /dev/null +++ b/src/resources/themes/v_pure/radiobutton_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/resources/themes/v_pure/radiobutton_unchecked.svg b/src/resources/themes/v_pure/radiobutton_unchecked.svg new file mode 100644 index 00000000..700ccea2 --- /dev/null +++ b/src/resources/themes/v_pure/radiobutton_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/resources/themes/v_pure/right.svg b/src/resources/themes/v_pure/right.svg new file mode 100644 index 00000000..c524ab79 --- /dev/null +++ b/src/resources/themes/v_pure/right.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/right_disabled.svg b/src/resources/themes/v_pure/right_disabled.svg new file mode 100644 index 00000000..c0c83ba8 --- /dev/null +++ b/src/resources/themes/v_pure/right_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/up.svg b/src/resources/themes/v_pure/up.svg new file mode 100644 index 00000000..52be26da --- /dev/null +++ b/src/resources/themes/v_pure/up.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/up_disabled.svg b/src/resources/themes/v_pure/up_disabled.svg new file mode 100644 index 00000000..36e54158 --- /dev/null +++ b/src/resources/themes/v_pure/up_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/resources/themes/v_pure/v_pure.palette b/src/resources/themes/v_pure/v_pure.palette new file mode 100644 index 00000000..13a800be --- /dev/null +++ b/src/resources/themes/v_pure/v_pure.palette @@ -0,0 +1,298 @@ +; File path could be absolute path or relative path (related to this file). +; Use @color_tag to reference a style. + +[metadata] +qss_file=v_pure.qss + +[phony] +; Abstract color attributes. +master_fg=#F5F5F5 +master_bg=#556DE8 + +base_fg=#222222 +base_bg=#EAEAEA + +main_fg=@base_fg +main_bg=#base_bg + +title_fg=@base_fg +title_bg=@base_bg + +disabled_fg=#9E9E9E + +content_fg=@base_fg +content_bg=@base_bg + +border_bg=#D3D3D3 + +separator_bg=#D3D3D3 + +hover_fg=@base_fg +hover_bg=#D0D0D0 + +selected_fg=@base_fg +selected_bg=#BDBDBD + +active_fg=@selected_fg +active_bg=@selected_bg + +inactive_fg=@selected_fg +inactive_bg=#D3D3D3 + +focus_fg=@selected_fg +focus_bg=@selected_bg + +pressed_fg=@base_fg +pressed_bg=#B2B2B2 + +edit_fg=#222222 +edit_bg=#F5F5F5 +edit_focus_bg=#E8EAF6 +edit_focus_border=@master_bg +edit_selection_fg=@edit_fg +edit_selection_bg=#CBD2F9 + +danger_red=#C9302C +icon_fg=#222222 + +[soft_defined] +; VAvatar. +avatar_border_bg=@selected_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=@master_bg + +; Style of the label in Navigation mode. +navigation_label_fg=@master_fg +navigation_label_bg=@master_bg + +; Style of the bubble of VButtonWithWidget. +bubble_fg=@master_fg +bubble_bg=@master_bg + +; Icons' foreground. +danger_icon_fg=@danger_red +item_icon_fg=@icon_fg +title_icon_fg=@icon_fg + +; VVimIndicator. +vim_indicator_key_label_fg=@base_fg +vim_indicator_mode_label_fg=@base_fg +vim_indicator_cmd_edit_pending_bg=@selected_bg + +; VTabIndicator. +tab_indicator_label_fg=@base_fg + +[widgets] +; Widget color attributes. + +; QWidget. +widget_fg=@base_fg + +; Separator of dock widgets. +dock_separator_bg=@border_bg +dock_separator_hover_bg=@border_bg + +; Menubar. +menubar_bg=@main_bg +menubar_fg=@main_fg +menubar_item_selected_bg=@selected_bg + +; Menu. +menu_bg=@base_bg +menu_fg=@base_fg +menu_item_disabled_fg=@disabled_fg +menu_item_selected_fg=@selected_fg +menu_item_selected_bg=@selected_bg +menu_separator_bg=@separator_bg +menu_icon_fg=@icon_fg +menu_icon_danger_fg=@danger_icon_fg + +; Tooltip. +tooltip_bg=@master_bg +tooltip_fg=@master_fg + +; Toolbar. +toolbar_bg=@main_bg +toolbutton_hover_bg=@hover_bg +toolbutton_pressed_bg=@pressed_bg +toolbutton_checked_bg=@selected_bg +toolbutton_icon_fg=@icon_fg +toolbutton_icon_danger_fg=@danger_icon_fg + +; Toolbox. +toolbox_icon_fg=@icon_fg + +; Dockwidget. +dockwidget_title_fg=@title_fg +dockwidget_title_bg=@title_bg +dockwidget_button_hover_bg=@hover_bg + +; PushButton. +pushbutton_fg=@base_fg +pushbutton_bg=transparent +pushbutton_border=@border_bg +pushbutton_pressed_bg=@pressed_bg +pushbutton_checked_bg=@selected_bg +pushbutton_hover_bg=@hover_bg +pushbutton_default_border=@master_bg + +pushbutton_specialbtn_fg=@master_fg +pushbutton_specialbtn_bg=@master_bg +pushbutton_specialbtn_hover_bg=#3F51B5 +pushbutton_specialbtn_checked_bg=#3949AB +pushbutton_specialbtn_pressed_bg=#303F9F + +pushbutton_cornerbtn_hover_bg=@hover_bg +pushbutton_cornerbtn_focus_bg=@focus_bg +pushbutton_cornerbtn_pressed_bg=@pressed_bg + +pushbutton_statusbtn_hover_bg=@hover_bg +pushbutton_statusbtn_focus_bg=@focus_bg +pushbutton_statusbtn_pressed_bg=@pressed_bg + +pushbutton_flatbtn_hover_bg=@hover_bg +pushbutton_flatbtn_focus_bg=@focus_bg +pushbutton_flatbtn_pressed_bg=@pressed_bg + +pushbutton_selectionbtn_hover_bg=@hover_bg +pushbutton_selectionbtn_focus_bg=@focus_bg +pushbutton_selectionbtn_pressed_bg=@pressed_bg + +pushbutton_titlebtn_bg=@title_bg +pushbutton_titlebtn_hover_bg=@hover_bg +pushbutton_titlebtn_focus_bg=@focus_bg +pushbutton_titlebtn_pressed_bg=@pressed_bg + +pushbutton_dangerbtn_fg=#FFF +pushbutton_dangerbtn_border=#D43F3A +pushbutton_dangerbtn_bg=#D9534F +pushbutton_dangerbtn_hover_fg=#FFF +pushbutton_dangerbtn_hover_bg=#C9302C +pushbutton_dangerbtn_hover_border=#AC2925 + +button_icon_fg=@icon_fg +button_icon_danger_fg=@danger_icon_fg + +; ComboBox. +combobox_border=@border_bg +combobox_fg=@content_fg +combobox_bg=@content_bg +combobox_view_border=@border_bg +combobox_view_selected_bg=@selected_bg +combobox_view_selected_fg=@selected_fg +combobox_view_item_hover_fg=@hover_fg +combobox_view_item_hover_bg=@hover_bg +combobox_focus_bg=@edit_focus_bg +combobox_focus_border=@edit_focus_border +combobox_item_icon_fg=@item_icon_fg + +; Label. +label_fg=@base_fg +label_titlelabel_fg=@title_fg +label_titlelabel_bg=@title_bg + +; LineEdit. +lineedit_border=@border_bg +lineedit_fg=@edit_fg +lineedit_bg=@edit_bg +lineedit_focus_bg=@edit_focus_bg +lineedit_focus_border=@edit_focus_border +lineedit_selection_fg=@edit_selection_fg +lineedit_selection_bg=@edit_selection_bg + +; TabWidget. +tabwidget_pane_border=@selected_bg + +; TabBar. +tabbar_fg=@base_fg +tabbar_bg=@base_bg +tabbar_border=@border_bg + +tabbar_selected_fg=@edit_fg +tabbar_selected_bg=@edit_bg +tabbar_selected_border=@border_bg + +tabbar_hover_fg=@hover_fg +tabbar_hover_bg=@hover_bg + +tabbar_icon_fg=@icon_fg +tabbar_icon_special_fg=@danger_red + +; SelectorItem. +selectoritem_border=@base_fg +selectoritem_fg=@base_fg +selectoritem_bg=@base_bg + +; InsertSelector. +insertselector_bg=@base_bg + +; TreeView. +treeview_fg=@content_fg +treeview_bg=@content_bg +treeview_item_hover_fg=@hover_fg +treeview_item_hover_bg=@hover_bg +treeview_item_selected_fg=@selected_fg +treeview_item_selected_bg=@selected_bg +treeview_item_selected_avtive_fg=@active_fg +treeview_item_selected_avtive_bg=@active_bg +treeview_item_selected_inactive_fg=@inactive_fg +treeview_item_selected_inactive_bg=@inactive_bg +treeview_item_icon_fg=@item_icon_fg + +; ListView. +listview_fg=@content_fg +listview_bg=@content_bg +listview_item_hover_fg=@hover_fg +listview_item_hover_bg=@hover_bg +listview_item_selected_fg=@selected_fg +listview_item_selected_bg=@selected_bg +listview_item_selected_avtive_fg=@active_fg +listview_item_selected_avtive_bg=@active_bg +listview_item_selected_inactive_fg=@inactive_fg +listview_item_selected_inactive_bg=@inactive_bg + +; Splitter. +splitter_handle_bg=@border_bg + +; StatusBar. +statusbar_fg=@main_fg +statusbar_bg=@main_bg + +; ScrollBar. +scrollbar_bg=@base_bg +scrollbar_page_bg=transparent +scrollbar_handle_bg=#DADADA +scrollbar_handle_hover_bg=@hover_bg +scrollbar_handle_pressed_bg=@pressed_bg + +; VEditWindow. +editwindow_corner_icon_fg=@master_bg +editwindow_corner_icon_inactive_fg=#D3D3D3 + +; CheckBox. +checkbox_indicator_hover_bg=@hover_bg +checkbox_indicator_pressed_bg=@pressed_bg + +; RadioButton. +radiobutton_indicator_hover_bg=@hover_bg +radiobutton_indicator_pressed_bg=@pressed_bg + +; SpinBox. +spinbox_fg=@edit_fg +spinbox_bg=@edit_bg +spinbox_border=@border_bg +spinbox_selection_fg=@edit_selection_fg +spinbox_selection_bg=@edit_selection_bg +spinbox_focus_border=@edit_focus_border +spinbox_focus_bg=@edit_focus_bg +spinbox_button_hover_bg=@hover_bg +spinbox_button_pressed_bg=@pressed_bg + +; HeaderView. +headerview_bg=#E0E0E0 +headerview_fg=@base_fg +headerview_border=@border_bg +headerview_checked_fg=@selected_fg +headerview_checked_bg=@selected_bg diff --git a/src/resources/themes/v_pure/v_pure.qss b/src/resources/themes/v_pure/v_pure.qss new file mode 100644 index 00000000..2f9e9a70 --- /dev/null +++ b/src/resources/themes/v_pure/v_pure.qss @@ -0,0 +1,1102 @@ +QToolTip +{ + border: none; + background: @tooltip_bg; + color: @tooltip_fg; +} + +/* QWidget */ +QWidget +{ + color: @widget_fg; +} + +QWidget[NotebookPanel="true"] { + padding-left: 3px; +} + +/* End QWidget */ + +/* QMainWindow */ +QMainWindow { + color: @base_fg; + background: @base_bg; +} + +QMainWindow::separator { + background: @dock_separator_bg; + width: 2px; + height: 2px; +} + +QMainWindow::separator:hover { + background: @dock_separator_hover_bg; +} +/* End QMainWindow */ + +QMenuBar { + border: none; + background: @menubar_bg; + color: @menubar_fg; +} + +QMenuBar::item:selected { + background: @menubar_item_selected_bg; +} + +/* QMenu */ +QMenu { + background: @menu_bg; + color: @menu_fg; + margin: 2px; +} + +QMenu::icon { + margin: 5px; +} + +QMenu::item { + padding: 5px 30px 5px 30px; + border: 1px solid transparent; +} + +QMenu::item:disabled { + color: @menu_item_disabled_fg; +} + +QMenu::item:selected { + color: @menu_item_selected_fg; + background: @menu_item_selected_bg; +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + border: 2px solid @menu_fg; +} + +QMenu::separator { + height: 2px; + background: @menu_separator_bg; + margin-left: 10px; + margin-right: 5px; +} + +QMenu::indicator { + width: 20px; + height: 20px; +} +/* End QMenu */ + +QToolBar { + border: none; + background: @toolbar_bg; +} + +/* QToolButton */ +QToolButton { + border: none; + background: transparent; + margin: 1px 3px 1px 3px; + padding: 0px; +} + +QToolButton[popupMode="1"] { /* only for MenuButtonPopup */ + padding-right: 16px; /* make way for the popup button */ +} + +QToolButton[popupMode="2"] { /* only for InstantPopup */ + padding-right: 10px; /* make way for the popup button */ +} + +QToolButton:hover { + border:none; + background: @toolbutton_hover_bg; +} + +QToolButton:pressed { + background: @toolbutton_pressed_bg; +} + +QToolButton:checked { + background: @toolbutton_checked_bg; +} + +QToolButton:checked:hover { + background: @toolbutton_hover_bg; +} + +/* the subcontrols below are used only in the MenuButtonPopup mode */ +QToolButton::menu-button { + border: none; + width: 16px; +} + +QToolButton::menu-arrow { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} +/* End QToolButton*/ + +/* DockWidget */ +QDockWidget { + color: @dockwidget_title_fg; + titlebar-close-icon: url(close.svg); + titlebar-normal-icon: url(float.svg); +} + +QDockWidget::Title { + background: @dockwidget_title_bg; + text-align: center left; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: none; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: @dockwidget_button_hover_bg; +} +/* End DockWidget */ + +/* QPushButton */ +QPushButton { + color: @pushbutton_fg; + background: @pushbutton_bg; + border: 1px solid @pushbutton_border; + padding: 3px; + min-width: 80px; +} + +QPushButton:pressed { + background-color: @pushbutton_pressed_bg; +} + +QPushButton:checked { + background-color: @pushbutton_checked_bg; +} + +QPushButton:checked:hover { + background-color: @pushbutton_hover_bg; +} + +QPushButton:hover { + background-color: @pushbutton_hover_bg; +} + +QPushButton:flat { + border: none; +} + +QPushButton:default { + border-color: @pushbutton_default_border; +} + +QPushButton::menu-indicator { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} + +QPushButton[SpecialBtn="true"] { + color: @pushbutton_specialbtn_fg; + background: @pushbutton_specialbtn_bg; +} + +QPushButton[SpecialBtn="true"]:pressed { + background-color: @pushbutton_specialbtn_pressed_bg; +} + +QPushButton[SpecialBtn="true"]:checked { + background-color: @pushbutton_specialbtn_checked_bg; +} + +QPushButton[SpecialBtn="true"]:checked:hover { + background-color: @pushbutton_specialbtn_hover_bg; +} + +QPushButton[SpecialBtn="true"]:hover { + background-color: @pushbutton_specialbtn_hover_bg; +} + +QPushButton[CornerBtn="true"] { + padding: 4px -2px 4px -2px; + margin: 0px; + border: none; + background-color: transparent; + min-width: -1; +} + +QPushButton[CornerBtn="true"]::menu-indicator { + image: none; +} + +QPushButton[CornerBtn="true"]:hover { + background-color: @pushbutton_cornerbtn_hover_bg; +} + +QPushButton[CornerBtn="true"]:focus { + background-color: @pushbutton_cornerbtn_focus_bg; +} + +QPushButton[CornerBtn="true"]:pressed { + background-color: @pushbutton_cornerbtn_pressed_bg; +} + +QPushButton[StatusBtn="true"] { + font: bold; + padding: 0px 2px 0px 2px; + margin: 0px; + border: none; + background-color: transparent; + min-width: -1; +} + +QPushButton[StatusBtn="true"]:hover { + background-color: @pushbutton_statusbtn_hover_bg; +} + +QPushButton[StatusBtn="true"]:focus { + background-color: @pushbutton_statusbtn_focus_bg;; +} + +QPushButton[StatusBtn="true"]:pressed { + background-color: @pushbutton_statusbtn_pressed_bg; +} + +QPushButton[FlatBtn="true"] { + padding: 4px; + margin: 0px; + border: none; + background-color: transparent; + min-width: -1; +} + +QPushButton[FlatBtn="true"]:hover { + background-color: @pushbutton_flatbtn_hover_bg; +} + +QPushButton[FlatBtn="true"]:focus { + background-color: @pushbutton_flatbtn_focus_bg; +} + +QPushButton[FlatBtn="true"]:focus { + background-color: @pushbutton_flatbtn_pressed_bg; +} + +QPushButton[SelectionBtn="true"] { + padding: 4px 10px 4px 10px; + border: none; + background-color: transparent; + font-size: 15pt; + text-align: left; + min-width: -1; +} + +QPushButton[SelectionBtn="true"]:hover { + background-color: @pushbutton_selectionbtn_hover_bg; +} + +QPushButton[SelectionBtn="true"]:focus { + background-color: @pushbutton_selectionbtn_focus_bg; +} + +QPushButton[SelectionBtn="true"]:focus { + background-color: @pushbutton_selectionbtn_pressed_bg; +} + +QPushButton[TitleBtn="true"] { + padding: 4px; + margin: 0px; + border: none; + background-color: @pushbutton_titlebtn_bg; + min-width: -1; +} + +QPushButton[TitleBtn="true"]:hover { + background-color: @pushbutton_titlebtn_hover_bg; +} + +QPushButton[TitleBtn="true"]:focus { + background-color: @pushbutton_titlebtn_focus_bg; +} + +QPushButton[TitleBtn="true"]:focus { + background-color: @pushbutton_titlebtn_pressed_bg; +} + +QPushButton[DangerBtn="true"] { + color: @pushbutton_dangerbtn_fg; + border-color: @pushbutton_dangerbtn_border; + background-color: @pushbutton_dangerbtn_bg; + min-width: -1; +} + +QPushButton[DangerBtn="true"]:hover { + color: @pushbutton_dangerbtn_hover_fg; + border-color: @pushbutton_dangerbtn_hover_border; + background-color: @pushbutton_dangerbtn_hover_bg; +} + +VButtonMenuItem { + padding: 5px; + padding-right: 30px; + border: 1px solid transparent; + background-color: transparent; + min-width: -1; + text-align: left; +} + +VButtonMenuItem[Heading1="true"] { + font-size: 22pt; +} + +VButtonMenuItem[Heading2="true"] { + font-size: 20pt; +} + +VButtonMenuItem[Heading3="true"] { + font-size: 18pt; +} + +VButtonMenuItem[Heading4="true"] { + font-size: 16pt; +} + +VButtonMenuItem[Heading5="true"] { + font-size: 14pt; +} + +VButtonMenuItem[Heading6="true"] { + font-size: 14pt; +} + +VButtonMenuItem:hover { + background-color: @menubar_item_selected_bg; +} + +VButtonMenuItem:focus { + background-color: @menubar_item_selected_bg; +} +/* End QPushButton*/ + +/* QComboBox */ +QComboBox { + padding: 3px; + color: @combobox_fg; + background: @combobox_bg; + border: 1px solid @combobox_border; +} + +QComboBox:focus, QComboBox:on { + background-color: @combobox_focus_bg; + border: 2px solid @combobox_focus_border; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border: none; + background: transparent; +} + +QComboBox::down-arrow { + image: url(arrow_dropdown.svg); + width: 20px; + height: 20px; +} + +QComboBox QAbstractItemView { + padding: 2px; + border: 1px solid @combobox_view_border; + background: @combobox_bg; + selection-color: @combobox_view_selected_fg; + selection-background-color: @combobox_view_selected_bg; +} + +QComboBox QAbstractItemView::item { + background: transparent; + padding: 3px; +} + +QComboBox QAbstractItemView::item:hover { + color: @combobox_view_item_hover_fg; + background: @combobox_view_item_hover_bg; +} + +QComboBox#NotebookSelector { + border: none; + font-size: 13pt; + padding-top: 3px; + padding-bottom: 3px; + icon-size: 30px; +} + +QComboBox#NotebookSelector:focus, QComboBox#NotebookSelector:on { + border: none; + background: @combobox_bg +} + +QComboBox#NotebookSelector QListWidget { + border: 1px solid @combobox_view_border; + background-color: @combobox_bg; + font-size: 13pt; + icon-size: 30px; +} + +QComboBox#NotebookSelector QListWidget::item { + padding-top: 10px; + padding-bottom: 10px; +} + +QComboBox#NotebookSelector QListWidget::item:hover { + color: @combobox_view_item_hover_fg; + background-color: @combobox_view_item_hover_bg; +} +/* End QComboBox */ + +/* QLabel */ +QLabel { + border: none; + color: @label_fg; + background: transparent; +} + +QLabel[TitleLabel="true"] { + padding-top: 5px; + padding-bottom: 5px; + color: @label_titlelabel_fg; + background-color: @label_titlelabel_bg; +} + +QLabel[ColorRedLabel="true"] { + padding-left: 5px; + padding-right: 5px; + font: bold; + color: white; + border-radius: 2px; + background-color: #D32F2F; +} + +QLabel[ColorGreenLabel="true"] { + padding-left: 5px; + padding-right: 5px; + font: bold; + color: white; + border-radius: 2px; + background-color: #388E3C; +} + +QLabel[ColorGreyLabel="true"] { + padding-left: 5px; + padding-right: 5px; + font: bold; + color: white; + border-radius: 2px; + background-color: #616161; +} + +QLabel[ColorTealLabel="true"] { + padding-left: 5px; + padding-right: 5px; + font: bold; + color: white; + border-radius: 2px; + background-color: #00796B; +} + +QLabel[MenuSeparator="true"] { + padding-top: 5px; + padding-bottom: 5px; + margin-top: 3px; + font: italic; + border-top: 1px solid @menu_separator_bg +} + +VVimIndicator QLabel[VimIndicatorKeyLabel="true"] { + font: bold; + color: @vim_indicator_key_label_fg; + background: transparent; +} + +VVimIndicator QLabel[VimIndicatorModeLabel="true"] { + padding: 0px 2px 0px 2px; + font: bold; + color: @vim_indicator_mode_label_fg; + /* background color will be controlled by the code. */ +} + +VTabIndicator QLabel[TabIndicatorLabel="true"] { + color: @tab_indicator_label_fg; + background: transparent; +} +/* End QLabel */ + +/* QLineEdit */ +QLineEdit { + border: 1px solid @lineedit_border; + padding: 3px; + color: @lineedit_fg; + background: @lineedit_bg; + selection-color: @lineedit_selection_fg; + selection-background-color: @lineedit_selection_bg; +} + +QLineEdit:focus { + border: 2px solid @lineedit_focus_border; + background: @lineedit_focus_bg; +} + +QLineEdit[VimCommandLine="true"] { + padding: 0px; + margin: 0px; + border: none; + color: @lineedit_fg; + background: @lineedit_bg; +} +/* End QLineEdit */ + +/* QPlainTextEdit QTextEdit */ +QPlainTextEdit[LineEdit="true"], QTextEdit[LineEdit="true"] { + border: 1px solid @lineedit_border; + padding: 3px; + color: @lineedit_fg; + background: @lineedit_bg; + selection-color: @lineedit_selection_fg; + selection-background-color: @lineedit_selection_bg; +} + +QPlainTextEdit[LineEdit="true"]:focus, QTextEdit[LineEdit="true"]:focus { + border: 2px solid @lineedit_focus_border; + background: @lineedit_focus_bg; +} +/* End QPlainTextEdit QTextEdit */ + +/* QTabWidget */ +QTabWidget { + border: none; +} + +QTabWidget::pane { + border: none; +} +/* End QTabWidget */ + +/* QTabBar */ +QTabBar::tab { + color: @tabbar_fg; + background: @tabbar_bg; + border: 1px solid @tabbar_border; + border-bottom: none; + border-top: none; + padding: 2px; +} + +QTabBar::tab:selected { + color: @tabbar_selected_fg; + background: @tabbar_selected_bg; + border-bottom: 3px solid @master_bg; +} + +QTabBar::tab:hover { + color: @tabbar_hover_fg; + background: @tabbar_hover_bg; +} + +QTabBar::close-button { + image: url(close_grey.svg); +} + +QTabBar::close-button:hover { + image: url(close.svg); +} + +QTabBar::close-button:focus { + image: url(close.svg); +} + +QTabBar::scroller { + width: 20px; +} + +QTabBar QToolButton { + border: none; +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(right.svg); +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(left.svg); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(right_disabled.svg); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(left_disabled.svg); +} +/* End QTabBar */ + +VSelectorItemWidget QLabel[SelectorItemShortcutLabel="true"] { + font: bold; + border: 2px solid @selectoritem_border; + padding: 3px; + border-radius: 5px; + background-color: @selectoritem_bg; + color: @selectoritem_fg; +} + +VInsertSelector { + border: none; + background: @insertselector_bg; +} + +/* QTreeView */ +QTreeView { + color: @treeview_fg; + background: @treeview_bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QTreeView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QTreeView::item:hover { + color: @treeview_item_hover_fg; + background: @treeview_item_hover_bg; +} + +QTreeView::item:selected { + color: @treeview_item_selected_fg; + background: @treeview_item_selected_bg; +} + +QTreeView::item:selected:active { + color: @treeview_item_selected_active_fg; + background: @treeview_item_selected_active_bg; +} + +QTreeView::item:selected:!active { + color: @treeview_item_selected_inactive_fg; + background: @treeview_item_selected_inactive_bg; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(line.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(branch_more.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(branch_end.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + border-image: none; + image: url(branch_closed.svg); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + border-image: none; + image: url(branch_open.svg); +} +/* End QTreeView */ + +/* QListView */ +QListView { + color: @listview_fg; + background: @listview_bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QListView::item:hover { + color: @listview_item_hover_fg; + background: @listview_item_hover_bg; +} + +QListView::item:selected { + color: @listview_item_selected_fg; + background: @listview_item_selected_bg; +} + +QListView::item:selected:active { + color: @listview_item_selected_active_fg; + background: @listview_item_selected_active_bg; +} + +QListView::item:selected:!active { + color: @listview_item_selected_inactive_fg; + background: @listview_item_selected_inactive_bg; +} +/* End QListView */ + +/* QSplitter */ +QSplitter { + border: none; +} + +QSplitter::handle { + background-color: @splitter_handle_bg; +} + +QSplitter::handle:vertical { + height: 2px; +} + +QSplitter::handle:horizontal { + width: 2px; +} + +QSplitter#MainSplitter { + border: none; +} +/* End QSplitter */ + +/* QStatusBar */ +QStatusBar { + color: @statusbar_fg; + background: @statusbar_bg; +} +/* End QStatusBar */ + +QWidget[MainEditor="true"] { + border: none; +} + +QDialog { + color: @base_fg; + background: @base_bg; +} + +/* QScrollBar */ +QScrollBar::add-page, QScrollBar::sub-page { + background: @scrollbar_page_bg; +} + +QScrollBar:vertical { + background: @scrollbar_bg; + width: 16px; + margin: 16px 0px 16px 0px; + padding: 0px 2px 0px 2px; + border: none; +} + +QScrollBar::handle:vertical { + background: @scrollbar_handle_bg; + min-height: 16px; +} + +QScrollBar::handle:vertical:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::handle:vertical:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::add-line:vertical { + border: none; + background: @scrollbar_bg; + width: 16px; + height: 16px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::add-line:vertical:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::sub-line:vertical { + border: none; + background: @scrollbar_bg; + width: 16px; + height: 16px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::sub-line:vertical:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::down-arrow:vertical { + image: url(down.svg); + width: 16px; + height: 16px; +} + +QScrollBar::up-arrow:vertical { + image: url(up.svg); + width: 16px; + height: 16px; +} + +QScrollBar:horizontal { + background: @scrollbar_bg; + height: 16px; + margin: 0px 16px 0px 16px; + padding: 2px 0px 2px 0px; + border: none; +} + +QScrollBar::handle:horizontal { + background: @scrollbar_handle_bg; + min-width: 16px; +} + +QScrollBar::handle:horizontal:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::handle:horizontal:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::add-line:horizontal { + border: none; + background: @scrollbar_bg; + width: 16px; + height: 16px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::add-line:horizontal:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::sub-line:horizontal { + border: none; + background: @scrollbar_bg; + width: 16px; + height: 16px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover { + background: @scrollbar_handle_hover_bg; +} + +QScrollBar::sub-line:horizontal:pressed { + background: @scrollbar_handle_pressed_bg; +} + +QScrollBar::right-arrow:horizontal { + image: url(right.svg); + width: 16px; + height: 16px; +} + +QScrollBar::left-arrow:horizontal { + image: url(left.svg); + width: 16px; + height: 16px; +} +/* End QScrollBar */ + +/* QCheckBox */ +QCheckBox { + spacing: 5px; +} + +QCheckBox::indicator { + width: 20px; + height: 20px; +} + +QCheckBox::indicator:unchecked { + image: url(checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover { + background: @checkbox_indicator_hover_bg; +} + +QCheckBox::indicator:unchecked:pressed { + background: @checkbox_indicator_pressed_bg; +} + +QCheckBox::indicator:checked { + image: url(checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover { + background: @checkbox_indicator_hover_bg; +} + +QCheckBox::indicator:checked:pressed { + background: @checkbox_indicator_pressed_bg; +} + +QCheckBox::indicator:indeterminate:hover { + background: @checkbox_indicator_hover_bg; +} + +QCheckBox::indicator:indeterminate:pressed { + background: @checkbox_indicator_pressed_bg; +} +/* End QCheckBox */ + +/* QRadioButton */ +QRadioButton { + spacing: 5px; +} + +QRadioButton::indicator { + width: 20px; + height: 20px; +} + +QRadioButton::indicator:unchecked { + image: url(radiobutton_unchecked.svg); +} + +QRadioButton::indicator:unchecked:hover { + background: @radiobutton_indicator_hover_bg; +} + +QRadioButton::indicator:unchecked:pressed { + background: @radiobutton_indicator_pressed_bg; +} + +QRadioButton::indicator:checked { + image: url(radiobutton_checked.svg); +} + +QRadioButton::indicator:checked:hover { + background: @radiobutton_indicator_hover_bg; +} + +QRadioButton::indicator:checked:pressed { + background: @radiobutton_indicator_pressed_bg; +} +/* End QRadioButton */ + +/* QSpinBox */ +QSpinBox, QDoubleSpinBox { + border: 1px solid @spinbox_border; + color: @spinbox_fg; + background: @spinbox_bg; + padding-right: 25px; + min-height: 25px; + selection-color: @spinbox_selection_fg; + selection-background-color: @spinbox_selection_bg; +} + +QSpinBox:focus, QDoubleSpinBox::focus { + border: 2px solid @spinbox_focus_border; + background: @spinbox_focus_bg; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; /* position at the top right corner */ + width: 25px; + border: none; + background: transparent; +} + +QSpinBox::up-button:hover, QDoubleSpinBox::up-button:hover { + background: @spinbox_button_hover_bg; +} + +QSpinBox::up-button:pressed, QDoubleSpinBox::up-button:pressed { + background: @spinbox_button_pressed_bg; +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +QSpinBox::up-arrow:disabled, QSpinBox::up-arrow:off, QDoubleSpinBox::up-arrow:disabled, QDoubleSpinBox::up-arrow:off { + image: url(up_disabled.svg); +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; /* position at the top right corner */ + width: 25px; + border: none; + background: transparent; +} + +QSpinBox::down-button:hover, QDoubleSpinBox::down-button:hover { + background: @spinbox_button_hover_bg; +} + +QSpinBox::down-button:pressed, QDoubleSpinBox::down-button:pressed { + background: @spinbox_button_pressed_bg; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QSpinBox::down-arrow:disabled, QSpinBox::down-arrow:off, QDoubleSpinBox::down-arrow:disabled, QDoubleSpinBox::down-arrow:off { + image: url(down_disabled.svg); +} +/* End QSpinBox */ + +/* QHeaderView */ +QHeaderView::section { + background: @headerview_bg; + color: @headerview_fg; + padding-left: 4px; + border: none; + border-left: 1px solid @headerview_border; + border-bottom: 1px solid @headerview_border; +} + +QHeaderView::section:checked +{ + color: @headerview_checked_fg; + background: @headerview_checked_bg; +} + +/* style the sort indicator */ +QHeaderView::down-arrow { + image: url(down.svg); +} + +QHeaderView::up-arrow { + image: url(up.svg); +} +/* End QHeaderView */ diff --git a/src/resources/themes/v_white/v_white.palette b/src/resources/themes/v_white/v_white.palette index 929fa510..24d5ad49 100644 --- a/src/resources/themes/v_white/v_white.palette +++ b/src/resources/themes/v_white/v_white.palette @@ -267,3 +267,17 @@ checkbox_indicator_pressed_bg=@pressed_bg ; RadioButton. radiobutton_indicator_hover_bg=@hover_bg radiobutton_indicator_pressed_bg=@pressed_bg + +; SpinBox. +spinbox_fg=@content_fg +spinbox_bg=@content_bg +spinbox_border=@border_bg +spinbox_button_hover_bg=@hover_bg +spinbox_button_pressed_bg=@pressed_bg + +; HeaderView. +headerview_bg=@base_bg +headerview_fg=@base_fg +headerview_border=@border_bg +headerview_checked_fg=@selected_fg +headerview_checked_bg=@selected_bg diff --git a/src/resources/themes/v_white/v_white.qss b/src/resources/themes/v_white/v_white.qss index 2bda8f31..f0d2ab3b 100644 --- a/src/resources/themes/v_white/v_white.qss +++ b/src/resources/themes/v_white/v_white.qss @@ -3,7 +3,6 @@ QToolTip border: 1px solid @tooltip_border; background: @tooltip_bg; color: @tooltip_fg; - padding: 5px; } /* QWidget */ @@ -187,7 +186,7 @@ QPushButton:flat { border: none; } -QPushButton::default { +QPushButton:default { border-color: @pushbutton_default_border; } @@ -750,17 +749,21 @@ QDialog { } /* QScrollBar */ +QScrollBar::sub-page, QScrollBar::add-page { + background: transparent; +} + QScrollBar:vertical { background: @scrollbar_bg; - width: 20px; - margin: 20px 0px 20px 0px; + width: 16px; + margin: 16px 0px 16px 0px; padding: 0px 2px 0px 2px; border: none; } QScrollBar::handle:vertical { background: @scrollbar_handle_bg; - min-height: 20px; + min-height: 16px; } QScrollBar::handle:vertical:hover { @@ -774,8 +777,8 @@ QScrollBar::handle:vertical:pressed { QScrollBar::add-line:vertical { border: none; background: @scrollbar_bg; - width: 20px; - height: 20px; + width: 16px; + height: 16px; subcontrol-position: bottom; subcontrol-origin: margin; } @@ -791,8 +794,8 @@ QScrollBar::add-line:vertical:pressed { QScrollBar::sub-line:vertical { border: none; background: @scrollbar_bg; - width: 20px; - height: 20px; + width: 16px; + height: 16px; subcontrol-position: top; subcontrol-origin: margin; } @@ -807,27 +810,27 @@ QScrollBar::sub-line:vertical:pressed { QScrollBar::down-arrow:vertical { image: url(down.svg); - width: 20px; - height: 20px; + width: 16px; + height: 16px; } QScrollBar::up-arrow:vertical { image: url(up.svg); - width: 20px; - height: 20px; + width: 16px; + height: 16px; } QScrollBar:horizontal { background: @scrollbar_bg; - height: 20px; - margin: 0px 20px 0px 20px; + height: 16px; + margin: 0px 16px 0px 16px; padding: 2px 0px 2px 0px; border: none; } QScrollBar::handle:horizontal { background: @scrollbar_handle_bg; - min-width: 20px; + min-width: 16px; } QScrollBar::handle:horizontal:hover { @@ -841,8 +844,8 @@ QScrollBar::handle:horizontal:pressed { QScrollBar::add-line:horizontal { border: none; background: @scrollbar_bg; - width: 20px; - height: 20px; + width: 16px; + height: 16px; subcontrol-position: right; subcontrol-origin: margin; } @@ -858,8 +861,8 @@ QScrollBar::add-line:horizontal:pressed { QScrollBar::sub-line:horizontal { border: none; background: @scrollbar_bg; - width: 20px; - height: 20px; + width: 16px; + height: 16px; subcontrol-position: left; subcontrol-origin: margin; } @@ -874,14 +877,14 @@ QScrollBar::sub-line:horizontal:pressed { QScrollBar::right-arrow:horizontal { image: url(right.svg); - width: 20px; - height: 20px; + width: 16px; + height: 16px; } QScrollBar::left-arrow:horizontal { image: url(left.svg); - width: 20px; - height: 20px; + width: 16px; + height: 16px; } /* End QScrollBar */ @@ -962,3 +965,91 @@ QRadioButton::indicator:checked:pressed { background: @radiobutton_indicator_pressed_bg; } /* End QRadioButton */ + +/* QSpinBox */ +QSpinBox, QDoubleSpinBox { + border: 1px solid @spinbox_border; + color: @spinbox_fg; + background: @spinbox_bg; + padding-right: 25px; + min-height: 25px; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; /* position at the top right corner */ + width: 25px; + border: none; + background: transparent; +} + +QSpinBox::up-button:hover, QDoubleSpinBox::up-button:hover { + background: @spinbox_button_hover_bg; +} + +QSpinBox::up-button:pressed, QDoubleSpinBox::up-button:pressed { + background: @spinbox_button_pressed_bg; +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +QSpinBox::up-arrow:disabled, QSpinBox::up-arrow:off, QDoubleSpinBox::up-arrow:disabled, QDoubleSpinBox::up-arrow:off { + image: url(up_disabled.svg); +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; /* position at the top right corner */ + width: 25px; + border: none; + background: transparent; +} + +QSpinBox::down-button:hover, QDoubleSpinBox::down-button:hover { + background: @spinbox_button_hover_bg; +} + +QSpinBox::down-button:pressed, QDoubleSpinBox::down-button:pressed { + background: @spinbox_button_pressed_bg; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QSpinBox::down-arrow:disabled, QSpinBox::down-arrow:off, QDoubleSpinBox::down-arrow:disabled, QDoubleSpinBox::down-arrow:off { + image: url(down_disabled.svg); +} +/* End QSpinBox */ + +/* QHeaderView */ +QHeaderView::section { + background: @headerview_bg; + color: @headerview_fg; + padding-left: 4px; + border: none; + border-left: 1px solid @headerview_border; + border-bottom: 1px solid @headerview_border; +} + +QHeaderView::section:checked +{ + color: @headerview_checked_fg; + background: @headerview_checked_bg; +} + +/* style the sort indicator */ +QHeaderView::down-arrow { + image: url(down.svg); +} + +QHeaderView::up-arrow { + image: url(up.svg); +} +/* End QHeaderView */ diff --git a/src/utils/vutils.cpp b/src/utils/vutils.cpp index 20a428c1..c254144b 100644 --- a/src/utils/vutils.cpp +++ b/src/utils/vutils.cpp @@ -394,8 +394,13 @@ bool VUtils::copyDirectory(const QString &p_srcDirPath, const QString &p_destDir return true; } -int VUtils::showMessage(QMessageBox::Icon p_icon, const QString &p_title, const QString &p_text, const QString &p_infoText, - QMessageBox::StandardButtons p_buttons, QMessageBox::StandardButton p_defaultBtn, QWidget *p_parent, +int VUtils::showMessage(QMessageBox::Icon p_icon, + const QString &p_title, + const QString &p_text, + const QString &p_infoText, + QMessageBox::StandardButtons p_buttons, + QMessageBox::StandardButton p_defaultBtn, + QWidget *p_parent, MessageBoxType p_type) { QMessageBox msgBox(p_icon, p_title, p_text, p_buttons, p_parent); @@ -405,7 +410,9 @@ int VUtils::showMessage(QMessageBox::Icon p_icon, const QString &p_title, const if (p_type == MessageBoxType::Danger) { QPushButton *okBtn = dynamic_cast(msgBox.button(QMessageBox::Ok)); if (okBtn) { - okBtn->setStyleSheet(g_config->c_dangerBtnStyle); + okBtn->setProperty("DangerBtn", true); + okBtn->style()->unpolish(okBtn); + okBtn->style()->polish(okBtn); } } return msgBox.exec(); diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index ccb6d5e6..70f4122f 100644 --- a/src/vconfigmanager.cpp +++ b/src/vconfigmanager.cpp @@ -54,9 +54,6 @@ const QString VConfigManager::c_warningTextStyle = QString("color: red; font: bo const QString VConfigManager::c_dataTextStyle = QString("font: bold"); -const QString VConfigManager::c_dangerBtnStyle = QString("QPushButton {color: #fff; border-color: #d43f3a; background-color: #d9534f;}" - "QPushButton::hover {color: #fff; border-color: #ac2925; background-color: #c9302c;}"); - const QString VConfigManager::c_vnoteNotebookFolderName = QString("vnote_notebooks"); VConfigManager::VConfigManager(QObject *p_parent) @@ -1367,6 +1364,7 @@ void VConfigManager::initThemes() // Built-in. m_themes.insert(tr("v_white"), ":/resources/themes/v_white/v_white.palette"); + m_themes.insert(tr("v_pure"), ":/resources/themes/v_pure/v_pure.palette"); // User theme folder. QDir dir(getThemeConfigFolder()); diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index aa371df2..393245dd 100644 --- a/src/vconfigmanager.h +++ b/src/vconfigmanager.h @@ -85,9 +85,6 @@ public: // CSS style for data in label. static const QString c_dataTextStyle; - // QStylesheet for danger button. Should keep identical with DangerBtn in QSS. - static const QString c_dangerBtnStyle; - QFont getMdEditFont() const; QPalette getMdEditPalette() const; diff --git a/src/vexporter.cpp b/src/vexporter.cpp index 4e9edd78..4a76d8a3 100644 --- a/src/vexporter.cpp +++ b/src/vexporter.cpp @@ -81,6 +81,7 @@ void VExporter::setupUI() connect(m_openBtn, &QPushButton::clicked, this, &VExporter::openTargetPath); QPushButton *okBtn = m_btnBox->button(QDialogButtonBox::Ok); + okBtn->setProperty("SpecialBtn", true); m_pathEdit->setMinimumWidth(okBtn->sizeHint().width() * 3); QGridLayout *mainLayout = new QGridLayout(); diff --git a/src/vnote.qrc b/src/vnote.qrc index ec78be65..583672e2 100644 --- a/src/vnote.qrc +++ b/src/vnote.qrc @@ -163,5 +163,28 @@ resources/themes/v_white/checkbox_unchecked.svg resources/themes/v_white/radiobutton_checked.svg resources/themes/v_white/radiobutton_unchecked.svg + resources/themes/v_pure/arrow_dropdown.svg + resources/themes/v_pure/branch_closed.svg + resources/themes/v_pure/branch_end.svg + resources/themes/v_pure/branch_more.svg + resources/themes/v_pure/branch_open.svg + resources/themes/v_pure/checkbox_checked.svg + resources/themes/v_pure/checkbox_unchecked.svg + resources/themes/v_pure/close.svg + resources/themes/v_pure/close_grey.svg + resources/themes/v_pure/down.svg + resources/themes/v_pure/down_disabled.svg + resources/themes/v_pure/float.svg + resources/themes/v_pure/left.svg + resources/themes/v_pure/left_disabled.svg + resources/themes/v_pure/line.svg + resources/themes/v_pure/radiobutton_checked.svg + resources/themes/v_pure/radiobutton_unchecked.svg + resources/themes/v_pure/right.svg + resources/themes/v_pure/right_disabled.svg + resources/themes/v_pure/up.svg + resources/themes/v_pure/up_disabled.svg + resources/themes/v_pure/v_pure.palette + resources/themes/v_pure/v_pure.qss