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"