Ubuntu 21.04下编译Zeal并添加隐藏菜单栏快捷键

Zeal是个查API文档的利器,最近经常用到。不过我喜欢KDE下可以Ctrl+M隐藏菜单栏,于是就把Zeal的源码从github上clone了下来,路径是zealdocs/zeal. 加个快捷键的代码我发现很容易加进去,然后编译得到build/bin/zeal, 替换apt get zeal得到的/usr/bin/zeal即可。README.md里面提到了一些依赖包,我编译时发现我的Ubuntu 21.04系统缺了下面几个:

sudo apt install qtwebengine5-dev libarchive-dev libqt5x11extras5-dev libxcb-keysyms1-dev

Zeal是在 src/libs/ui/mainwindow.ui里面定义了menuBar, src/libs/ui/mainwindow.cpp里面第一个函数就是MainWindow的构造函数,一开始是建立UI和加快捷键。在

setupTabBar();

代码后添加一句:

// 默认隐藏菜单栏
ui->menuBar->hide();

然后在

auto shortcut = new QShortcut(QStringLiteral("Ctrl+K"), this);
connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); });

后面添加两句:

// 用Ctrl+M显示或隐藏菜单栏
shortcut = new QShortcut(QStringLiteral("Ctrl+M"), this);
connect(shortcut, &QShortcut::activated, this, [this]() { if (ui->menuBar->isVisible()) ui->menuBar->hide(); else ui->menuBar->show(); });

最后按照README.md里面的说明用cmake编译即可。

附上修改后的文件与原始文件diff -c的结果:

***************
*** 67,78 ****
--- 67,82 ----
      }
  
      setupTabBar();
+       ui->menuBar->hide();
  
      // Setup application wide shortcuts.
      // Focus search bar.
      auto shortcut = new QShortcut(QStringLiteral("Ctrl+K"), this);
      connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); });
  
+       shortcut = new QShortcut(QStringLiteral("Ctrl+M"), this);
+       connect(shortcut, &QShortcut::activated, this, [this]() { if (ui->menuBar->isVisible()) ui->menuBar->hide(); else ui->menuBar->show(); });
+ 
      shortcut = new QShortcut(QStringLiteral("Ctrl+L"), this);
      connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); });
  
上一篇:How to run a batch file each time the computer loads Windows


下一篇:Android Shortcut启动导致其他Activity销毁问题