MCPcopy Create free account
hub / github.com/MrBeanCpp/Dr-Folder / Widget

Method Widget

widget.cpp:16–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14#include <QMessageBox>
15
16Widget::Widget(QWidget *parent)
17 : QWidget(parent)
18 , ui(new Ui::Widget)
19{
20 ui->setupUi(this);
21 this->lw = ui->listWidget;
22 setWindowFlag(Qt::WindowMaximizeButtonHint, false);
23 setWindowTitle("Dr.Folder - MrBeanCpp");
24 this->setAcceptDrops(true);
25
26 // 创建状态栏
27 statusBar = new QStatusBar(this);
28 statusBar->setFixedHeight(15);
29 this->layout()->addWidget(statusBar);
30
31 lw->setAlternatingRowColors(true);
32 lw->hide();
33
34 ui->placeholder->setCursor(Qt::PointingHandCursor);
35 connect(ui->placeholder, &QPushButton::clicked, ui->btn_select, &QToolButton::click);
36
37 connect(ui->lineEdit, &QLineEdit::returnPressed, this, [=]{
38 ui->btn_subdir->click();
39 });
40
41 connect(ui->btn_applyall, &QToolButton::clicked, this, [=]{
42 if (lw->count() == 0 || lw->isHidden()) return;
43
44 auto btn = QMessageBox::question(this, "Apply All", "Are you sure to apply all folder icons?", QMessageBox::Yes | QMessageBox::No);
45 if (btn == QMessageBox::Yes) {
46 int count = lw->count();
47 for (int i = 0; i < count; ++i) {
48 QListWidgetItem *item = lw->item(i);
49 FolderIconSelector *widget = qobject_cast<FolderIconSelector*>(lw->itemWidget(item));
50 if (widget) {
51 widget->applySelectedIcon();
52 }
53 }
54 }
55 });
56
57 connect(ui->btn_select, &QToolButton::clicked, this, [=]{
58 QString path = QFileDialog::getExistingDirectory(this, "Select a folder");
59 if (path.isEmpty()) return;
60 ui->lineEdit->setText(QDir::toNativeSeparators(path));
61 });
62
63 connect(ui->btn_subdir, &QToolButton::clicked, this, [=]{
64 listFolders(ui->lineEdit->text());
65 });
66
67 ui->btn_subdir->setPopupMode(QToolButton::MenuButtonPopup);
68
69 QMenu *menu = new QMenu(ui->btn_subdir);
70 menu->addAction("Only Self", this, [=]{ listFolders(ui->lineEdit->text(), true); });
71
72 ui->btn_subdir->setMenu(menu);
73}

Callers

nothing calls this directly

Calls 1

applySelectedIconMethod · 0.80

Tested by

no test coverage detected