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);
|
||||
|
||||
setWindowTitle(u8"OneLevelXmlOpr v1.2.10");
|
||||
setWindowTitle(u8"OneLevelXmlOpr v1.2.11");
|
||||
setWindowIcon(QIcon("://resource/xml.ico"));
|
||||
|
||||
QScreen* primaryScreen = QGuiApplication::primaryScreen();
|
||||
@ -170,7 +170,10 @@ void MainWidget::show_custom_menu()
|
||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||
|
||||
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()
|
||||
{
|
||||
context_menu_ = new QMenu();
|
||||
menu_simple_ = new QMenu();
|
||||
menu_multi_ = new QMenu();
|
||||
|
||||
ac_edit_property_ = new QAction(u8"编辑");
|
||||
ac_copy_curline_ = new QAction(u8"复制此项");
|
||||
ac_del_curline_ = new QAction(u8"删除此项");
|
||||
ac_copy_curline_ = new QAction(u8"复制项");
|
||||
ac_del_curline_ = new QAction(u8"删除项");
|
||||
ac_copy_key_ = new QAction(u8"复制key");
|
||||
|
||||
context_menu_->addAction(ac_edit_property_);
|
||||
context_menu_->addAction(ac_copy_curline_);
|
||||
context_menu_->addAction(ac_del_curline_);
|
||||
context_menu_->addAction(ac_copy_key_);
|
||||
menu_simple_->addAction(ac_edit_property_);
|
||||
menu_simple_->addAction(ac_copy_curline_);
|
||||
menu_simple_->addAction(ac_del_curline_);
|
||||
menu_simple_->addAction(ac_copy_key_);
|
||||
menu_multi_->addAction(ac_del_curline_);
|
||||
|
||||
connect(ac_edit_property_, &QAction::triggered, this, [&]() {
|
||||
QTableWidgetItem* cur_item = get_current_select_item();
|
||||
@ -500,26 +506,30 @@ void MainWidget::del_select_line()
|
||||
if (!CUtil::affirm(this, u8"确认", u8"确认删除吗?")) {
|
||||
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: 添加到界面
|
||||
tab_widget_->removeRow(item->row());
|
||||
|
||||
std::vector<Element_t*>::iterator it;
|
||||
for (it = vec_.begin(); it != vec_.end(); ++it) {
|
||||
if (*it == target) {
|
||||
break;
|
||||
QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows();
|
||||
int size = indexList.size();
|
||||
std::vector<int> erase_row;
|
||||
for (auto i = size - 1; i > -1; --i) {
|
||||
Element_t* target = get_element_by_row(indexList[i].row());
|
||||
if (target == nullptr) {
|
||||
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());
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,8 @@ private:
|
||||
QTableWidgetItem* get_current_select_item();
|
||||
|
||||
private:
|
||||
QMenu* context_menu_{};
|
||||
QMenu* menu_simple_{};
|
||||
QMenu* menu_multi_{};
|
||||
QAction* ac_edit_property_{};
|
||||
QAction* ac_copy_curline_{};
|
||||
QAction* ac_del_curline_{};
|
||||
|
Loading…
x
Reference in New Issue
Block a user