File indexing completed on 2024-05-12 04:38:23

0001 /*
0002     SPDX-FileCopyrightText: David Nolden <david.nolden.kdevelop@art-master.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "workingsethelpers.h"
0008 
0009 #include <interfaces/iuicontroller.h>
0010 
0011 #include <sublime/view.h>
0012 #include <sublime/area.h>
0013 
0014 #include <shell/core.h>
0015 
0016 #include "partdocument.h"
0017 #include "mainwindow.h"
0018 
0019 namespace KDevelop {
0020 
0021 MainWindow* mainWindow() {
0022     auto* window = qobject_cast<MainWindow*>(Core::self()->uiController()->activeMainWindow());
0023     Q_ASSERT(window);
0024     return window;
0025 }
0026 
0027 void filterViews(const QSet< QString >& keepFiles)
0028 {
0029     MainWindow* window = mainWindow();
0030 
0031     const auto views = window->area()->views();
0032     for (Sublime::View* view : views) {
0033 
0034         auto* partDoc = qobject_cast<PartDocument*>(view->document());
0035         if(partDoc && !keepFiles.contains(partDoc->documentSpecifier())) {
0036             if(view->document()->views().count() == 1) {
0037                 partDoc->close();
0038                 continue;
0039             }
0040 
0041             window->area()->closeView(view);
0042         }
0043     }
0044 }
0045 
0046 }