searchandreplacedialog.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "searchandreplacedialog.h"
  2. #include "ui_searchandreplacedialog.h"
  3. SearchAndReplaceDialog::SearchAndReplaceDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SearchAndReplaceDialog)
  4. {
  5. ui->setupUi(this);
  6. setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
  7. }
  8. SearchAndReplaceDialog::~SearchAndReplaceDialog()
  9. {
  10. delete ui;
  11. }
  12. void SearchAndReplaceDialog::setMindMapWidget(MindMapWidget *mindmapwidget)
  13. {
  14. m_mindmapwidget = mindmapwidget;
  15. }
  16. void SearchAndReplaceDialog::on_btnSearch_clicked()
  17. {
  18. if (ui->edtSearch->text().trimmed() == "") {
  19. return;
  20. }
  21. ui->lvData->clear();
  22. for (int i = 0; i < m_mindmapwidget->mindMapObjects().count(); i++) {
  23. MindMapObject *obj = m_mindmapwidget->mindMapObjects().at(i);
  24. if (obj->name().indexOf(ui->edtSearch->text()) >= 0) {
  25. QListWidgetItem *item = new QListWidgetItem();
  26. item->setText(obj->name());
  27. item->setData(Qt::UserRole, m_mindmapwidget->mindMapObjects().indexOf(obj));
  28. ui->lvData->addItem(item);
  29. }
  30. }
  31. }
  32. void SearchAndReplaceDialog::on_lvData_itemClicked(QListWidgetItem *item)
  33. {
  34. int i = item->data(Qt::UserRole).toInt();
  35. MindMapObject *obj = m_mindmapwidget->mindMapObjects().at(i);
  36. m_mindmapwidget->setSelObject(obj);
  37. }
  38. void SearchAndReplaceDialog::on_btnReplace_clicked()
  39. {
  40. if (ui->edtSearch->text().trimmed() == "") {
  41. return;
  42. }
  43. ui->lvData->clear();
  44. for (int i = 0; i < m_mindmapwidget->mindMapObjects().count(); i++) {
  45. MindMapObject *obj = m_mindmapwidget->mindMapObjects().at(i);
  46. if (obj->name().indexOf(ui->edtSearch->text()) >= 0) {
  47. QListWidgetItem *item = new QListWidgetItem();
  48. QString s0 = obj->name();
  49. QString s1 = s0;
  50. s1.replace(ui->edtSearch->text(), ui->edtReplace->text());
  51. obj->setName(s1);
  52. m_mindmapwidget->myDao()->editNode(obj->id(), s1);
  53. item->setText("\"" + s0 + "\"替换为\"" + obj->name() + "\"");
  54. item->setData(Qt::UserRole, m_mindmapwidget->mindMapObjects().indexOf(obj));
  55. ui->lvData->addItem(item);
  56. }
  57. }
  58. m_mindmapwidget->update();
  59. }