diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 469b9381d..269903455 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -764,42 +764,10 @@ void MainWindow::applyKonsoleSettings() removeMenuAccelerators(); } - _viewManager->setNavigationPosition(KonsoleSettings::tabBarPosition()); - - if (KonsoleSettings::tabBarUseUserStyleSheet()) { - setNavigationStyleSheetFromFile(KonsoleSettings::tabBarUserStyleSheetFile()); - } else { - // Apply default values - _viewManager->setNavigationStyleSheet(KonsoleSettings::tabBarStyleSheet()); - } - setAutoSaveSettings(QStringLiteral("MainWindow"), KonsoleSettings::saveGeometryOnExit()); updateWindowCaption(); } - -void MainWindow::setNavigationStyleSheetFromFile(const QUrl &styleSheetFile) -{ - // Let's only deal w/ local files for now - if (!styleSheetFile.isLocalFile()) { - _viewManager->setNavigationStyleSheet(KonsoleSettings::tabBarStyleSheet()); - } - - QFile file(styleSheetFile.toLocalFile()); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - _viewManager->setNavigationStyleSheet(KonsoleSettings::tabBarStyleSheet()); - } - - QString styleSheetText; - QTextStream in(&file); - while (!in.atEnd()) { - styleSheetText.append(in.readLine()); - } - - // Replace current style sheet w/ loaded file - _viewManager->setNavigationStyleSheet(styleSheetText); -} - void MainWindow::activateMenuBar() { const QList menuActions = menuBar()->actions(); diff --git a/src/MainWindow.h b/src/MainWindow.h index 6ad0c3d74..11e65a25e 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -97,8 +97,6 @@ public: */ void setMenuBarInitialVisibility(bool visible); - void setNavigationStyleSheetFromFile(const QUrl &styleSheetFile); - Q_SIGNALS: /** diff --git a/src/ViewContainer.cpp b/src/ViewContainer.cpp index 7848ded0b..ebe40b910 100644 --- a/src/ViewContainer.cpp +++ b/src/ViewContainer.cpp @@ -26,6 +26,7 @@ // Qt #include #include +#include // KDE #include @@ -49,17 +50,8 @@ TabbedViewContainer::TabbedViewContainer(ViewManager *connectedViewManager, QWid QTabWidget(parent), _connectedViewManager(connectedViewManager) { - - setTabBarAutoHide((bool) KonsoleSettings::tabBarVisibility()); - setTabPosition((QTabWidget::TabPosition) KonsoleSettings::tabBarPosition()); - tabBar()->setContextMenuPolicy(Qt::CustomContextMenu); - connect(KonsoleSettings::self(), &KonsoleSettings::configChanged, this, [this] { - setTabBarAutoHide((bool) KonsoleSettings::tabBarVisibility()); - setTabPosition((QTabWidget::TabPosition) KonsoleSettings::tabBarPosition()); - }); - connect(tabBar(), &QTabBar::tabBarDoubleClicked, this, &Konsole::TabbedViewContainer::tabDoubleClicked); connect(tabBar(), &QTabBar::customContextMenuRequested, this, @@ -95,6 +87,9 @@ TabbedViewContainer::TabbedViewContainer(ViewManager *connectedViewManager, QWid connect(profileList, &Konsole::ProfileList::profileSelected, this, static_cast(&Konsole::TabbedViewContainer::newViewRequest)); // setNewViewMenu(profileMenu); + + konsoleConfigChanged(); + connect(KonsoleSettings::self(), &KonsoleSettings::configChanged, this, &TabbedViewContainer::konsoleConfigChanged); } TabbedViewContainer::~TabbedViewContainer() @@ -107,6 +102,37 @@ TabbedViewContainer::~TabbedViewContainer() emit destroyed(this); } +void TabbedViewContainer::konsoleConfigChanged() +{ + setTabBarAutoHide((bool) KonsoleSettings::tabBarVisibility()); + setTabPosition((QTabWidget::TabPosition) KonsoleSettings::tabBarPosition()); + setTabsClosable(KonsoleSettings::showQuickButtons()); + + if (KonsoleSettings::tabBarUseUserStyleSheet()) { + setCssFromFile(KonsoleSettings::tabBarUserStyleSheetFile()); + } +} + +void TabbedViewContainer::setCssFromFile(const QUrl &url) +{ + // Let's only deal w/ local files for now + if (!url.isLocalFile()) { + setStyleSheet(KonsoleSettings::tabBarStyleSheet()); + } + + QFile file(url.toLocalFile()); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + setStyleSheet(KonsoleSettings::tabBarStyleSheet()); + } + + QString styleSheetText; + QTextStream in(&file); + while (!in.atEnd()) { + styleSheetText.append(in.readLine()); + } + setStyleSheet(styleSheetText); +} + void TabbedViewContainer::moveActiveView(MoveDirection direction) { const int currentIndex = indexOf(currentWidget()); diff --git a/src/ViewContainer.h b/src/ViewContainer.h index 95f140f35..a57f7c4f6 100644 --- a/src/ViewContainer.h +++ b/src/ViewContainer.h @@ -97,6 +97,7 @@ public: /** Changes the active view to the last view */ void activateLastView(); + void setCssFromFile(const QUrl& url); /** * This enum describes the directions * in which views can be re-arranged within the container @@ -193,6 +194,7 @@ protected: private Q_SLOTS: void viewDestroyed(QObject *view); + void konsoleConfigChanged(); private: void forgetView(QWidget *view); diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp index 667fe4853..2f9099027 100644 --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -1109,25 +1109,3 @@ void ViewManager::closeTabFromContainer(TabbedViewContainer *container, QWidget controller->closeSession(); } } - -void ViewManager::setTabbarAutoHide(bool autoHide) -{ - foreach (TabbedViewContainer *container, _viewSplitter->containers()) { - container->setTabBarAutoHide(autoHide); - } -} - -void ViewManager::setNavigationPosition(int position) -{ - auto navigationPosition = static_cast(position); - foreach (TabbedViewContainer *container, _viewSplitter->containers()) { - container->setTabPosition(navigationPosition); - } -} - -void ViewManager::setNavigationStyleSheet(const QString &styleSheet) -{ - foreach (TabbedViewContainer *container, _viewSplitter->containers()) { - container->setStyleSheet(styleSheet); - } -} diff --git a/src/ViewManager.h b/src/ViewManager.h index c7605d5ca..b217e9534 100644 --- a/src/ViewManager.h +++ b/src/ViewManager.h @@ -157,10 +157,6 @@ public: void saveSessions(KConfigGroup &group); void restoreSessions(const KConfigGroup &group); - void setTabbarAutoHide(bool autoHide); - void setNavigationPosition(int position); - void setNavigationStyleSheet(const QString &styleSheet); - int managerId() const; /** Returns a list of sessions in this ViewManager */