fix: v0.12.1 —— 最近文件 / 最近目录放进菜单栏,去掉多余工具栏

- 删掉上一版单独加的工具栏,不再多占一行
- 「最近文件」「最近目录」改为菜单栏里的顶级菜单,顺序是
  文件 / 编辑 / 视图 / 格式 / 最近文件 / 最近目录 / 帮助
- 文件菜单里不再重复放这两个子菜单
- 去掉工具栏相关的 QSS、成员与英文翻译,截图重新生成
This commit is contained in:
2026-10-23 11:28:28 +08:00
parent 505063a2e7
commit 830ae8c4e3
10 changed files with 180 additions and 240 deletions
+4 -43
View File
@@ -44,7 +44,6 @@
#include <QTextCursor>
#include <QTextDocument>
#include <QTimer>
#include <QToolBar>
#include <QToolButton>
#include <QVBoxLayout>
#include <QWidget>
@@ -179,7 +178,6 @@ MainWindow::MainWindow(QWidget *parent)
createActions();
createMenus();
createToolBar();
createSidebar();
createStatusBar();
loadSettings();
@@ -210,37 +208,6 @@ MainWindow::MainWindow(QWidget *parent)
m_editor->setFocus();
}
void MainWindow::createToolBar()
{
m_toolBar = addToolBar(tr("常用"));
m_toolBar->setObjectName(QStringLiteral("mainToolBar"));
m_toolBar->setMovable(false);
m_toolBar->setToolButtonStyle(Qt::ToolButtonTextOnly);
m_toolBar->setIconSize(QSize(16, 16));
m_toolBar->addAction(m_newAction);
m_toolBar->addAction(m_openAction);
m_toolBar->addAction(m_saveAction);
m_toolBar->addSeparator();
const auto makeMenuButton = [this](const QString &text, QMenu **target) {
QToolButton *button = new QToolButton(m_toolBar);
button->setText(text);
button->setPopupMode(QToolButton::InstantPopup);
button->setToolButtonStyle(Qt::ToolButtonTextOnly);
button->setCursor(Qt::PointingHandCursor);
QMenu *menu = new QMenu(button);
button->setMenu(menu);
m_toolBar->addWidget(button);
*target = menu;
return button;
};
m_toolRecentFilesButton = makeMenuButton(tr("最近文件"), &m_toolRecentFilesMenu);
m_toolRecentFoldersButton = makeMenuButton(tr("最近目录"), &m_toolRecentFoldersMenu);
}
void MainWindow::createActions()
{
m_newAction = new QAction(tr("新建"), this);
@@ -485,8 +452,6 @@ void MainWindow::createMenus()
m_fileMenu->addAction(m_newAction);
m_fileMenu->addAction(m_openAction);
m_fileMenu->addAction(m_openFolderAction);
m_recentMenu = m_fileMenu->addMenu(tr("最近文件"));
m_recentFolderMenu = m_fileMenu->addMenu(tr("最近目录"));
m_fileMenu->addSeparator();
m_fileMenu->addAction(m_saveAction);
m_fileMenu->addAction(m_saveAsAction);
@@ -566,6 +531,10 @@ void MainWindow::createMenus()
}
m_formatMenu->addAction(m_codeBlockAction);
// 「最近文件」「最近目录」直接排进菜单栏,「帮助」固定在最后
m_recentMenu = menuBar()->addMenu(tr("最近文件"));
m_recentFolderMenu = menuBar()->addMenu(tr("最近目录"));
m_helpMenu = menuBar()->addMenu(tr("帮助"));
m_aboutAction = m_helpMenu->addAction(tr("关于 VoiletMark"), this, &MainWindow::showAbout);
}
@@ -1004,12 +973,6 @@ void MainWindow::retranslateUi()
m_helpMenu->setTitle(tr("帮助"));
m_recentMenu->setTitle(tr("最近文件"));
m_recentFolderMenu->setTitle(tr("最近目录"));
if (m_toolBar)
m_toolBar->setWindowTitle(tr("常用"));
if (m_toolRecentFilesButton)
m_toolRecentFilesButton->setText(tr("最近文件"));
if (m_toolRecentFoldersButton)
m_toolRecentFoldersButton->setText(tr("最近目录"));
m_themeMenu->setTitle(tr("主题"));
m_headingMenu->setTitle(tr("标题"));
m_languageMenu->setTitle(tr("语言"));
@@ -1120,9 +1083,7 @@ void MainWindow::loadRecentFiles()
void MainWindow::refreshRecentMenu()
{
fillRecentFilesMenu(m_recentMenu);
fillRecentFilesMenu(m_toolRecentFilesMenu);
fillRecentFoldersMenu(m_recentFolderMenu);
fillRecentFoldersMenu(m_toolRecentFoldersMenu);
}
void MainWindow::fillRecentFilesMenu(QMenu *menu)
-7
View File
@@ -10,7 +10,6 @@ class QDockWidget;
class QLabel;
class QPushButton;
class QStackedWidget;
class QToolBar;
class QToolButton;
class GitRunner;
class QListWidget;
@@ -36,7 +35,6 @@ private:
enum class Eol { Lf, Crlf };
void createActions();
void createToolBar();
void createSidebar();
void createMenus();
void createStatusBar();
@@ -180,11 +178,6 @@ private:
QMenu *m_recentMenu = nullptr;
QMenu *m_recentFolderMenu = nullptr;
QMenu *m_toolRecentFilesMenu = nullptr;
QMenu *m_toolRecentFoldersMenu = nullptr;
QToolButton *m_toolRecentFilesButton = nullptr;
QToolButton *m_toolRecentFoldersButton = nullptr;
QToolBar *m_toolBar = nullptr;
QMenu *m_fileMenu = nullptr;
QMenu *m_editMenu = nullptr;
QMenu *m_viewMenu = nullptr;
+1 -4
View File
@@ -284,9 +284,6 @@ QMenu::item { padding: 6px 28px 6px 22px; border-radius: 5px; }
QMenu::item:selected { background-color: @highlight; color: @highlightedText; }
QMenu::item:disabled { color: @disabled; }
QMenu::separator { height: 1px; background-color: @border; margin: 5px 8px; }
QToolBar { background-color: @window; border: none; border-bottom: 1px solid @border;
spacing: 2px; padding: 2px 6px; }
QToolBar::separator { width: 1px; background-color: @border; margin: 4px 6px; }
QStatusBar { background-color: @window; color: @placeholder; border-top: 1px solid @border; }
QStatusBar::item { border: none; }
QPlainTextEdit { background-color: @editorBase; color: @editorText; border: none;
@@ -308,7 +305,7 @@ QPushButton { background-color: @button; color: @buttonText; border: 1px solid @
QPushButton:hover { background-color: @highlight; color: @highlightedText; }
QPushButton:default { background-color: @accent; color: #ffffff; border-color: @accent; }
QToolTip { background-color: @menuBackground; color: @text; border: 1px solid @border; padding: 4px; }
QToolButton { border: none; border-radius: 5px; padding: 2px 8px; color: @text; background: transparent; }
QToolButton { border: none; border-radius: 5px; padding: 3px 8px; color: @text; background: transparent; }
QToolButton:hover { background-color: @hoverBackground; }
QToolButton:checked { background-color: @highlight; color: @highlightedText; }
QDockWidget { color: @text; }