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 }