From d776d67c0436bdd17f8f9b530cb52e122aaabbcf Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Sun, 5 Jan 2025 22:18:04 +0100 Subject: [PATCH] Start: remove close button of start tab, and remove name. --- src/Gui/MainWindow.cpp | 10 +++++++++- src/Gui/MainWindow.h | 2 +- src/Mod/Start/Gui/Manipulator.cpp | 2 +- src/Mod/Start/Gui/StartView.cpp | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index d18df5473afc5..30361dc237e79 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1376,7 +1376,7 @@ bool MainWindow::eventFilter(QObject* o, QEvent* e) return QMainWindow::eventFilter(o, e); } -void MainWindow::addWindow(MDIView* view) +void MainWindow::addWindow(MDIView* view, bool closeButton) { // make workspace parent of view bool isempty = d->mdiArea->subWindowList().isEmpty(); @@ -1400,6 +1400,14 @@ void MainWindow::addWindow(MDIView* view) QAction* action = menu->addAction(tr("Close All")); connect(action, &QAction::triggered, d->mdiArea, &QMdiArea::closeAllSubWindows); d->mdiArea->addSubWindow(child); + + if (!closeButton) { + QTabBar* tabBar = d->mdiArea->findChild(); + if (tabBar) { + int index = tabBar->count() - 1; + tabBar->setTabButton(index, QTabBar::RightSide, nullptr); + } + } } connect(view, &MDIView::message, this, &MainWindow::showMessage); diff --git a/src/Gui/MainWindow.h b/src/Gui/MainWindow.h index 1c01ea0cbd6ad..cd7d35b243bcc 100644 --- a/src/Gui/MainWindow.h +++ b/src/Gui/MainWindow.h @@ -125,7 +125,7 @@ class GuiExport MainWindow : public QMainWindow * Adds an MDI window \a view to the main window's workspace and adds a new tab * to the tab bar. */ - void addWindow(MDIView* view); + void addWindow(MDIView* view, bool closeButton = true); /** * Removes an MDI window from the main window's workspace and its associated tab without * deleting the widget. If the main windows does not have such a window nothing happens. diff --git a/src/Mod/Start/Gui/Manipulator.cpp b/src/Mod/Start/Gui/Manipulator.cpp index f49af09e509eb..443e9ed9798c0 100644 --- a/src/Mod/Start/Gui/Manipulator.cpp +++ b/src/Mod/Start/Gui/Manipulator.cpp @@ -59,7 +59,7 @@ void CmdStart::activated(int iMsg) auto existingView = mw->findChild(QLatin1String("StartView")); if (!existingView) { existingView = gsl::owner(new StartGui::StartView(mw)); - mw->addWindow(existingView); // Transfers ownership + mw->addWindow(existingView, false); // Transfers ownership } Gui::getMainWindow()->setActiveWindow(existingView); existingView->show(); diff --git a/src/Mod/Start/Gui/StartView.cpp b/src/Mod/Start/Gui/StartView.cpp index ebdc9dfdd10e9..1ace7fcf918a3 100644 --- a/src/Mod/Start/Gui/StartView.cpp +++ b/src/Mod/Start/Gui/StartView.cpp @@ -518,7 +518,7 @@ void StartView::changeEvent(QEvent* event) void StartView::retranslateUi() { - QString title = QCoreApplication::translate("Workbench", "Start"); + QString title = QString::fromLatin1(" "); setWindowTitle(title); const QLatin1String h1Start("

");