cf12defd28
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
128 lines
4.6 KiB
C++
128 lines
4.6 KiB
C++
#include "ktreewidgetsearchlinetest.h"
|
|
|
|
#include <QApplication>
|
|
#include <QBoxLayout>
|
|
#include <QDialogButtonBox>
|
|
#include <QHeaderView>
|
|
#include <QPushButton>
|
|
#include <QString>
|
|
#include <QTreeWidget>
|
|
|
|
#include <ktreewidgetsearchline.h>
|
|
#include <ktreewidgetsearchlinewidget.h>
|
|
|
|
KTreeWidgetSearchLineTest::KTreeWidgetSearchLineTest()
|
|
: QDialog()
|
|
{
|
|
// to test KWhatsThisManager too:
|
|
setWhatsThis(QStringLiteral("This is a test dialog for KTreeWidgetSearchLineTest"));
|
|
tw = new QTreeWidget(this);
|
|
tw->setColumnCount(4);
|
|
tw->setHeaderLabels(QStringList() << QStringLiteral("Item") << QStringLiteral("Price") << QStringLiteral("HIDDEN COLUMN") << QStringLiteral("Source"));
|
|
tw->hideColumn(2);
|
|
|
|
KTreeWidgetSearchLineWidget *searchWidget = new KTreeWidgetSearchLineWidget(this, tw);
|
|
m_searchLine = searchWidget->searchLine();
|
|
|
|
QTreeWidgetItem *red = new QTreeWidgetItem(tw, QStringList() << QStringLiteral("Red"));
|
|
red->setWhatsThis(0, QStringLiteral("This item is red"));
|
|
red->setWhatsThis(1, QStringLiteral("This item is pricy"));
|
|
tw->expandItem(red);
|
|
QTreeWidgetItem *blue = new QTreeWidgetItem(tw, QStringList() << QStringLiteral("Blue"));
|
|
tw->expandItem(blue);
|
|
QTreeWidgetItem *green = new QTreeWidgetItem(tw, QStringList() << QStringLiteral("Green"));
|
|
tw->expandItem(green);
|
|
QTreeWidgetItem *yellow = new QTreeWidgetItem(tw, QStringList() << QStringLiteral("Yellow"));
|
|
tw->expandItem(yellow);
|
|
|
|
create2ndLevel(red);
|
|
create2ndLevel(blue);
|
|
create2ndLevel(green);
|
|
create2ndLevel(yellow);
|
|
|
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
|
|
|
QHBoxLayout *hbox = new QHBoxLayout();
|
|
|
|
QPushButton *caseSensitive = new QPushButton(QStringLiteral("&Case Sensitive"), this);
|
|
hbox->addWidget(caseSensitive);
|
|
caseSensitive->setCheckable(true);
|
|
connect(caseSensitive, SIGNAL(toggled(bool)), SLOT(switchCaseSensitivity(bool)));
|
|
|
|
QPushButton *keepParentsVisible = new QPushButton(QStringLiteral("Keep &Parents Visible"), this);
|
|
hbox->addWidget(keepParentsVisible);
|
|
keepParentsVisible->setCheckable(true);
|
|
keepParentsVisible->setChecked(true);
|
|
connect(keepParentsVisible, SIGNAL(toggled(bool)), m_searchLine, SLOT(setKeepParentsVisible(bool)));
|
|
|
|
QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
|
|
buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
|
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
|
|
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
|
|
|
layout->addWidget(searchWidget);
|
|
layout->addWidget(tw);
|
|
layout->addLayout(hbox);
|
|
layout->addWidget(buttonBox);
|
|
|
|
m_searchLine->setFocus();
|
|
|
|
resize(350, 600);
|
|
}
|
|
|
|
void KTreeWidgetSearchLineTest::create3rdLevel(QTreeWidgetItem *item)
|
|
{
|
|
new QTreeWidgetItem(item, QStringList() << QStringLiteral("Growing") << QStringLiteral("$2.00") << QString("") << QStringLiteral("Farmer"));
|
|
new QTreeWidgetItem(item, QStringList() << QStringLiteral("Ripe") << QStringLiteral("$8.00") << QString("") << QStringLiteral("Market"));
|
|
new QTreeWidgetItem(item, QStringList() << QStringLiteral("Decaying") << QStringLiteral("$0.50") << QString("") << QStringLiteral("Ground"));
|
|
new QTreeWidgetItem(item, QStringList() << QStringLiteral("Pickled") << QStringLiteral("$4.00") << QString("") << QStringLiteral("Shop"));
|
|
}
|
|
|
|
void KTreeWidgetSearchLineTest::create2ndLevel(QTreeWidgetItem *item)
|
|
{
|
|
QTreeWidgetItem *beans = new QTreeWidgetItem(item, QStringList() << QStringLiteral("Beans"));
|
|
tw->expandItem(beans);
|
|
create3rdLevel(beans);
|
|
|
|
QTreeWidgetItem *grapes = new QTreeWidgetItem(item, QStringList() << QStringLiteral("Grapes"));
|
|
tw->expandItem(grapes);
|
|
create3rdLevel(grapes);
|
|
|
|
QTreeWidgetItem *plums = new QTreeWidgetItem(item, QStringList() << QStringLiteral("Plums"));
|
|
tw->expandItem(plums);
|
|
create3rdLevel(plums);
|
|
|
|
QTreeWidgetItem *bananas = new QTreeWidgetItem(item, QStringList() << QStringLiteral("Bananas"));
|
|
tw->expandItem(bananas);
|
|
create3rdLevel(bananas);
|
|
}
|
|
|
|
void KTreeWidgetSearchLineTest::switchCaseSensitivity(bool cs)
|
|
{
|
|
m_searchLine->setCaseSensitivity(cs ? Qt::CaseSensitive : Qt::CaseInsensitive);
|
|
}
|
|
|
|
void KTreeWidgetSearchLineTest::showEvent(QShowEvent *event)
|
|
{
|
|
QDialog::showEvent(event);
|
|
|
|
for (int i = 0; i < tw->header()->count(); ++i) {
|
|
if (!tw->header()->isSectionHidden(i)) {
|
|
tw->resizeColumnToContents(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
QApplication::setApplicationName(QStringLiteral("KTreeWidgetSearchLineTest"));
|
|
QApplication app(argc, argv);
|
|
KTreeWidgetSearchLineTest dialog;
|
|
|
|
dialog.exec();
|
|
|
|
return 0;
|
|
}
|
|
|
|
#include "moc_ktreewidgetsearchlinetest.cpp"
|