MCPcopy Create free account
hub / github.com/KDE/kate / KateFileTreePluginView

Method KateFileTreePluginView

addons/filetree/katefiletreeplugin.cpp:125–227  ·  view source on GitHub ↗

BEGIN KateFileTreePluginView

Source from the content-addressed store, hash-verified

123
124// BEGIN KateFileTreePluginView
125KateFileTreePluginView::KateFileTreePluginView(KTextEditor::MainWindow *mainWindow, KateFileTreePlugin *plug)
126 : QObject(mainWindow)
127 , m_plug(plug)
128 , m_mainWindow(mainWindow)
129{
130 KXMLGUIClient::setComponentName(QStringLiteral("katefiletree"), i18n("Documents"));
131 setXMLFile(QStringLiteral("ui.rc"));
132
133 m_toolView = mainWindow->createToolView(plug,
134 QStringLiteral("kate_private_plugin_katefiletreeplugin"),
135 KTextEditor::MainWindow::Left,
136 QIcon::fromTheme(QStringLiteral("folder-documents-symbolic")),
137 i18n("Documents"));
138
139 // create toolbar
140 m_toolbar = new QToolBar(m_toolView);
141 m_toolbar->setMovable(false);
142 m_toolbar->setToolButtonStyle(Qt::ToolButtonIconOnly);
143 m_toolbar->setContextMenuPolicy(Qt::NoContextMenu);
144 m_toolbar->layout()->setContentsMargins(0, 0, 0, 0);
145
146 // ensure reasonable icons sizes, like e.g. the quick-open and co. icons
147 // the normal toolbar sizes are TOO large, e.g. for scaled stuff even more!
148 const int iconSize = m_toolView->style()->pixelMetric(QStyle::PM_ButtonIconSize, nullptr, m_toolView);
149 m_toolbar->setIconSize(QSize(iconSize, iconSize));
150
151 // create filetree
152 m_fileTree = new KateFileTree(m_mainWindow, m_toolView);
153 m_fileTree->setSortingEnabled(true);
154 m_fileTree->setShowCloseButton(m_plug->settings().showCloseButton());
155 m_fileTree->setMiddleClickToClose(m_plug->settings().middleClickToClose);
156 m_fileTree->setProperty("_breeze_borders_sides", QVariant::fromValue(QFlags{Qt::TopEdge}));
157
158 connect(m_fileTree, &KateFileTree::viewModeChanged, this, &KateFileTreePluginView::viewModeChanged);
159 connect(m_fileTree, &KateFileTree::sortRoleChanged, this, &KateFileTreePluginView::sortRoleChanged);
160
161 m_documentModel = new KateFileTreeModel(m_mainWindow, this);
162 m_proxyModel = new KateFileTreeProxyModel(this);
163 m_proxyModel->setSourceModel(m_documentModel);
164 m_proxyModel->setDynamicSortFilter(true);
165 m_proxyModel->setRecursiveFilteringEnabled(true);
166
167 m_documentModel->setShowFullPathOnRoots(m_plug->settings().showFullPathOnRoots());
168 m_documentModel->setShadingEnabled(m_plug->settings().shadingEnabled());
169 m_documentModel->setViewShade(m_plug->settings().viewShade());
170 m_documentModel->setEditShade(m_plug->settings().editShade());
171
172 m_filter = new QLineEdit(m_toolView);
173 m_filter->setPlaceholderText(i18n("Filter…"));
174 m_filter->setClearButtonEnabled(true);
175 m_filter->setProperty("_breeze_borders_sides", QVariant::fromValue(QFlags{Qt::TopEdge}));
176 connect(m_filter, &QLineEdit::textChanged, this, [this](const QString &text) {
177 m_proxyModel->setFilterRegularExpression(QRegularExpression(text, QRegularExpression::CaseInsensitiveOption));
178 if (!text.isEmpty()) {
179 QTimer::singleShot(100, m_fileTree, &QTreeView::expandAll);
180 }
181 });
182

Callers

nothing calls this directly

Calls 15

showCloseButtonMethod · 0.80
setMiddleClickToCloseMethod · 0.80
setSourceModelMethod · 0.80
showToolbarMethod · 0.80
setSortRoleMethod · 0.80
createToolViewMethod · 0.45
setShowCloseButtonMethod · 0.45
showFullPathOnRootsMethod · 0.45
setShadingEnabledMethod · 0.45
shadingEnabledMethod · 0.45
setViewShadeMethod · 0.45

Tested by

no test coverage detected