diff --git a/README.md b/README.md index 82b743f..c7684fc 100644 --- a/README.md +++ b/README.md @@ -44,4 +44,9 @@ deploy目录下为生成的程序,可以直接使用 ![](./assets/img_1.png) +## 更改日志 +### 20220620 v1.0.1 +- [x] 新增打开文件目录功能(右下角listwidget支持) +- [x] 新增删除文件功能(右下角listwidget支持) + diff --git a/src/Rename.cpp b/src/Rename.cpp index d185025..5ce35f4 100644 --- a/src/Rename.cpp +++ b/src/Rename.cpp @@ -3,6 +3,7 @@ // #include #include "Rename.h" +#include Rename::Rename(QObject *) { @@ -121,3 +122,24 @@ void Rename::comboxStateChangedSlot(const QString & text) { qDebug()<< renameMethodFlag; } +void Rename::getTextSlot(const QString &text) { + qDebug()<<"widget当前的text为:"<< text; + currentText = text; +} + +void Rename::openDirSlot() { + QFileInfo fileInfo(currentText); + QString filePath = fileInfo.absolutePath(); + qDebug()<<"filePath"<btnConfirm, SIGNAL(clicked()), this, SLOT(btnConfirmClickedSlot())); + + ui->listWidget_2->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->listWidget_2, SIGNAL(customContextMenuRequested(const QPoint &)), + this, SLOT(on_listWidget_customContextMenuRequested(const QPoint &))); + + delAction = new QAction(); + delAction->setText("删除文件"); + openAction = new QAction(); + openAction->setText("打开文件目录"); + + connect(delAction, SIGNAL(triggered(bool)), + renameFile, SLOT(delActionTriggeredSlot())); + connect(ui->listWidget_2, SIGNAL(currentTextChanged(const QString &)), + renameFile, SLOT(getTextSlot(const QString &))); + connect(openAction, SIGNAL(triggered(bool)), + renameFile, SLOT(openDirSlot())); + connect(renameFile, SIGNAL(delActionFeedbackSignal(bool)), + this, SLOT(delActionFeedbackSlot(bool))); } Widget::~Widget() @@ -74,6 +92,8 @@ Widget::~Widget() renameFile->deleteLater(); myThread->exit(); myThread->wait(10 * 1000); + openAction->deleteLater(); + delAction->deleteLater(); delete ui; } @@ -194,6 +214,38 @@ void Widget::btnConfirmClickedSlot() { confirmFlag = true; } +void Widget::on_listWidget_customContextMenuRequested(const QPoint &pos) +{ +// ui->listWidget_2->currentTextChanged() + QMenu *menu = new QMenu(this); +// menu->addAction(ui->actionAdd); +// menu->addAction(ui->actionClear); +// menu->addAction(ui->actionDelete); +// menu->addAction(ui->actionInsert); + + menu->addAction(this->openAction); + menu->addAction(this->delAction); +// menu->addSeparator(); + +// menu->addAction(ui->actionInit); +// menu->addSeparator(); +// menu->addAction(ui->actionSelAll); +// menu->addAction(ui->actionSelInv); +// menu->addAction(ui->actionSelNone); +// menu->addAction(ui->actionSelPopMenu); + menu->exec(QCursor::pos()); + delete menu; +} + +void Widget::delActionFeedbackSlot(bool flag) { + if(flag){ + qDebug()<<"remove item"; + QListWidgetItem * item = ui->listWidget_2->currentItem(); + qDebug()<listWidget_2->removeItemWidget(item); + delete item; + } +} diff --git a/src/widget.h b/src/widget.h index 949a258..bace91d 100644 --- a/src/widget.h +++ b/src/widget.h @@ -15,6 +15,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE namespace Ui { class Widget; } @@ -45,6 +46,8 @@ public slots: void oldFileNameSlot(const QString & oldName); void newFileNameSlot(const QString & newName); + void delActionFeedbackSlot(bool flag); + private slots: void btnMaxClickedSlot(); void btnMinClickedSlot(); @@ -53,6 +56,8 @@ private slots: void selectDirClickedSlot(); void btnConfirmClickedSlot(); + void on_listWidget_customContextMenuRequested(const QPoint &pos); + private: Ui::Widget *ui; Rename * renameFile; @@ -61,6 +66,9 @@ private: QPoint mousePosInWindow = QPoint(); bool confirmFlag = false; + QAction *delAction; + QAction *openAction; + }; diff --git a/src/widget.ui b/src/widget.ui index 37b3db9..70ed4ee 100644 --- a/src/widget.ui +++ b/src/widget.ui @@ -6,8 +6,8 @@ 0 0 - 800 - 600 + 950 + 668 @@ -508,10 +508,21 @@ QPushButton:pressed - + + + true + + - + + + true + + + Qt::CustomContextMenu + + diff --git a/windeploy/FileRename.exe b/windeploy/FileRename.exe deleted file mode 100644 index e79ede0..0000000 Binary files a/windeploy/FileRename.exe and /dev/null differ