func:添加删除多行的选项。
This commit is contained in:
parent
2a7af82b0b
commit
e4aec3b2e1
@ -16,7 +16,7 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
setWindowTitle(u8"OneLevelXmlOpr v1.2.10");
|
setWindowTitle(u8"OneLevelXmlOpr v1.2.11");
|
||||||
setWindowIcon(QIcon("://resource/xml.ico"));
|
setWindowIcon(QIcon("://resource/xml.ico"));
|
||||||
|
|
||||||
QScreen* primaryScreen = QGuiApplication::primaryScreen();
|
QScreen* primaryScreen = QGuiApplication::primaryScreen();
|
||||||
@ -170,7 +170,10 @@ void MainWidget::show_custom_menu()
|
|||||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||||
|
|
||||||
if (indexList.size() == 1) {
|
if (indexList.size() == 1) {
|
||||||
context_menu_->exec(QCursor::pos());
|
menu_simple_->exec(QCursor::pos());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
menu_multi_->exec(QCursor::pos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,16 +450,19 @@ void MainWidget::ele_update_gui(Element_t* target, int row)
|
|||||||
|
|
||||||
void MainWidget::init_menu()
|
void MainWidget::init_menu()
|
||||||
{
|
{
|
||||||
context_menu_ = new QMenu();
|
menu_simple_ = new QMenu();
|
||||||
|
menu_multi_ = new QMenu();
|
||||||
|
|
||||||
ac_edit_property_ = new QAction(u8"编辑");
|
ac_edit_property_ = new QAction(u8"编辑");
|
||||||
ac_copy_curline_ = new QAction(u8"复制此项");
|
ac_copy_curline_ = new QAction(u8"复制项");
|
||||||
ac_del_curline_ = new QAction(u8"删除此项");
|
ac_del_curline_ = new QAction(u8"删除项");
|
||||||
ac_copy_key_ = new QAction(u8"复制key");
|
ac_copy_key_ = new QAction(u8"复制key");
|
||||||
|
|
||||||
context_menu_->addAction(ac_edit_property_);
|
menu_simple_->addAction(ac_edit_property_);
|
||||||
context_menu_->addAction(ac_copy_curline_);
|
menu_simple_->addAction(ac_copy_curline_);
|
||||||
context_menu_->addAction(ac_del_curline_);
|
menu_simple_->addAction(ac_del_curline_);
|
||||||
context_menu_->addAction(ac_copy_key_);
|
menu_simple_->addAction(ac_copy_key_);
|
||||||
|
menu_multi_->addAction(ac_del_curline_);
|
||||||
|
|
||||||
connect(ac_edit_property_, &QAction::triggered, this, [&]() {
|
connect(ac_edit_property_, &QAction::triggered, this, [&]() {
|
||||||
QTableWidgetItem* cur_item = get_current_select_item();
|
QTableWidgetItem* cur_item = get_current_select_item();
|
||||||
@ -500,26 +506,30 @@ void MainWidget::del_select_line()
|
|||||||
if (!CUtil::affirm(this, u8"确认", u8"确认删除吗?")) {
|
if (!CUtil::affirm(this, u8"确认", u8"确认删除吗?")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QTableWidgetItem* item = get_current_select_item();
|
|
||||||
if (item == nullptr) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Element_t* target = get_element_by_key(item->text());
|
|
||||||
if (target == nullptr) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
xml_.del_element(target);
|
|
||||||
|
|
||||||
// TODO: 添加到界面
|
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||||
tab_widget_->removeRow(item->row());
|
int size = indexList.size();
|
||||||
|
std::vector<int> erase_row;
|
||||||
std::vector<Element_t*>::iterator it;
|
for (auto i = size - 1; i > -1; --i) {
|
||||||
for (it = vec_.begin(); it != vec_.end(); ++it) {
|
Element_t* target = get_element_by_row(indexList[i].row());
|
||||||
if (*it == target) {
|
if (target == nullptr) {
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
xml_.del_element(target);
|
||||||
|
tab_widget_->removeRow(indexList[i].row());
|
||||||
|
erase_row.push_back(indexList[i].row());
|
||||||
|
std::vector<Element_t*>::iterator it;
|
||||||
|
for (it = vec_.begin(); it != vec_.end(); ++it) {
|
||||||
|
if (*it == target) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vec_.erase(it);
|
||||||
}
|
}
|
||||||
vec_.erase(it);
|
// std::sort(erase_row.begin(), erase_row.end(), std::greater<int>());
|
||||||
|
// for (const auto& item : erase_row) {
|
||||||
|
// tab_widget_->removeRow(item);
|
||||||
|
// }
|
||||||
search(ui->edSearchKey->text());
|
search(ui->edSearchKey->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,8 @@ private:
|
|||||||
QTableWidgetItem* get_current_select_item();
|
QTableWidgetItem* get_current_select_item();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMenu* context_menu_{};
|
QMenu* menu_simple_{};
|
||||||
|
QMenu* menu_multi_{};
|
||||||
QAction* ac_edit_property_{};
|
QAction* ac_edit_property_{};
|
||||||
QAction* ac_copy_curline_{};
|
QAction* ac_copy_curline_{};
|
||||||
QAction* ac_del_curline_{};
|
QAction* ac_del_curline_{};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user