File indexing completed on 2024-05-12 05:51:59

0001 /* This file is part of the KDE project
0002  *
0003  *  SPDX-FileCopyrightText: 2018 Gregor Mi <codestruct@posteo.org>
0004  *  SPDX-FileCopyrightText: 2019 Dominik Haumann <dhaumann@kde.org>
0005  *
0006  *  SPDX-License-Identifier: LGPL-2.0-or-later
0007  */
0008 #include "tstestapp.h"
0009 #include "../tabswitcherfilesmodel.h"
0010 
0011 #include <QApplication>
0012 #include <QListView>
0013 #include <QPushButton>
0014 #include <QTreeView>
0015 #include <QVBoxLayout>
0016 
0017 #include <KTextEditor/Document>
0018 #include <KTextEditor/Editor>
0019 
0020 static KTextEditor::Document *addDoc(const QString &path)
0021 {
0022     auto doc = KTextEditor::Editor::instance()->createDocument(nullptr);
0023     doc->openUrl(QUrl::fromLocalFile(path));
0024     return doc;
0025 }
0026 
0027 class TsTestApp::Impl
0028 {
0029 public:
0030     void insert_1_item()
0031     {
0032         model.insertDocument(0, addDoc(QStringLiteral("/home/user2/folder1/abc.d")));
0033         treeview1->resizeColumnToContents(0);
0034     }
0035 
0036     void remove_1_item()
0037     {
0038         model.removeRow(0);
0039         treeview1->resizeColumnToContents(0);
0040     }
0041 
0042     void set_items_cutoff_bug()
0043     {
0044         model.clear();
0045 
0046         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/logs/notifications/multimedia-system.log")));
0047         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/dev/src/kservicemenueditor-0.2a/servicemenueditor")));
0048         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/kde/src/kdesrc-build/kdesrc-build")));
0049         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/node_modules/autolinker/README.md")));
0050         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/node_modules/autolinker/package.json")));
0051         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/node_modules/autolinker/LICENSE")));
0052         model.insertDocument(model.rowCount(), addDoc(QStringLiteral("/home/gregor/node_modules/asynckit/package.json")));
0053 
0054         treeview1->resizeColumnToContents(0);
0055     }
0056 
0057 public:
0058     detail::TabswitcherFilesModel model;
0059     QTreeView *treeview1 = nullptr;
0060 };
0061 
0062 TsTestApp::TsTestApp(QWidget *parent)
0063     : QMainWindow(parent)
0064     , impl_(new TsTestApp::Impl)
0065 {
0066     setGeometry(0, 0, 1024, 800);
0067     setCentralWidget(new QWidget(this));
0068     auto l = new QVBoxLayout();
0069     centralWidget()->setLayout(l);
0070 
0071     auto hl = new QHBoxLayout();
0072     l->addLayout(hl);
0073 
0074     auto buttonInsert1 = new QPushButton(QStringLiteral("Ins 1 item"), this);
0075     connect(buttonInsert1, &QPushButton::clicked, this, [this] {
0076         impl_->insert_1_item();
0077     });
0078     hl->addWidget(buttonInsert1);
0079 
0080     auto buttonRemove1 = new QPushButton(QStringLiteral("Del 1 item"), this);
0081     connect(buttonRemove1, &QPushButton::clicked, this, [this] {
0082         impl_->remove_1_item();
0083     });
0084     hl->addWidget(buttonRemove1);
0085 
0086     auto buttonSetTestSet1 = new QPushButton(QStringLiteral("set_items_cutoff_bug"), this);
0087     connect(buttonSetTestSet1, &QPushButton::clicked, this, [this] {
0088         impl_->set_items_cutoff_bug();
0089     });
0090     hl->addWidget(buttonSetTestSet1);
0091 
0092     impl_->treeview1 = new QTreeView(this);
0093     l->addWidget(impl_->treeview1);
0094     impl_->treeview1->setHeaderHidden(true);
0095     impl_->treeview1->setRootIsDecorated(false);
0096 
0097     impl_->model.insertDocument(impl_->model.rowCount(), addDoc(QStringLiteral("/home/gm/projects/proj1/src/file1.h")));
0098     impl_->model.insertDocument(impl_->model.rowCount(), addDoc(QStringLiteral("/home/gm/projects/proj1/src/file2.cpp")));
0099     impl_->model.insertDocument(impl_->model.rowCount(), addDoc(QStringLiteral("/home/gm/dev/file3.py")));
0100     impl_->model.insertDocument(impl_->model.rowCount(), addDoc(QStringLiteral("/home/gm/dev/file3kjaskdfkljasdfklj089asdfkjklasdjf90asdfsdfkj.py")));
0101     impl_->model.insertDocument(impl_->model.rowCount(), addDoc(QStringLiteral("/home/gm/dev/proj2/asldfkjasdfk/asdlfkjasd;faf/;ajsdkfgjaskdfgasdf/file3.py")));
0102     // impl_->insert_a_item();
0103     // impl_->remove_a_item();
0104 
0105     impl_->model.rowCount();
0106     impl_->model.item(0);
0107     impl_->model.index(0, 0);
0108 
0109     impl_->treeview1->setModel(&impl_->model);
0110     impl_->treeview1->resizeColumnToContents(0);
0111     impl_->treeview1->resizeColumnToContents(1);
0112 
0113     auto listview1 = new QListView(this);
0114     l->addWidget(listview1);
0115     listview1->setModel(&impl_->model);
0116 
0117     auto treeview2 = new QTreeView(this);
0118     l->addWidget(treeview2);
0119 }
0120 
0121 TsTestApp::~TsTestApp()
0122 {
0123 }
0124 
0125 int main(int argc, char *argv[])
0126 {
0127     QApplication app(argc, argv);
0128     TsTestApp w;
0129     w.show();
0130 
0131     return app.exec();
0132 }
0133 
0134 #include "moc_tstestapp.cpp"