/Velocity/titleidfinderdialog.cpp

https://bitbucket.org/SteffenAL/velocity · C++ · 72 lines · 58 code · 14 blank · 0 comment · 11 complexity · 486c5005f0e817d7325b159afc9b8b96 MD5 · raw file

  1. #include "titleidfinderdialog.h"
  2. #include "ui_titleidfinderdialog.h"
  3. TitleIdFinderDialog::TitleIdFinderDialog(QStatusBar *statusBar, QWidget *parent) :
  4. QDialog(parent), ui(new Ui::TitleIdFinderDialog), statusBar(statusBar)
  5. {
  6. ui->setupUi(this);
  7. finder = new TitleIdFinder("", this);
  8. connect(finder, SIGNAL(SearchFinished(QList<TitleData>)), this, SLOT(onRequestFinished(QList<TitleData>)));
  9. ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
  10. ui->treeWidget->header()->resizeSection(0, 300);
  11. connect(ui->treeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint)));
  12. connect(ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(on_pushButton_clicked()));
  13. }
  14. TitleIdFinderDialog::~TitleIdFinderDialog()
  15. {
  16. delete ui;
  17. }
  18. void TitleIdFinderDialog::on_pushButton_clicked()
  19. {
  20. finder->SetGameName(ui->lineEdit->text());
  21. finder->StartSearch();
  22. statusBar->showMessage("Searching...", 0x7FFFFFFF);
  23. }
  24. void TitleIdFinderDialog::onRequestFinished(QList<TitleData> matches)
  25. {
  26. ui->treeWidget->clear();
  27. statusBar->showMessage("Search returned " + QString::number(matches.length()) + " result(s)", 3000);
  28. for (int i = 0; i < matches.length(); i++)
  29. {
  30. QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget);
  31. QString newStr = ((QString*)&matches.at(i).titleName)->replace("&#174;", "®").replace("&#39;", "'").replace("&amp;","&").replace("&gt;",">").replace("&lt;","<").replace("â", "").replace("¢", "");
  32. item->setText(0, newStr);
  33. item->setText(1, QString::number(matches.at(i).titleID, 16).toUpper());
  34. ui->treeWidget->addTopLevelItem(item);
  35. }
  36. }
  37. void TitleIdFinderDialog::showContextMenu(QPoint p)
  38. {
  39. if (ui->treeWidget->selectedItems().count() == 0)
  40. return;
  41. QPoint globalPos = ui->treeWidget->mapToGlobal(p);
  42. QMenu contextMenu;
  43. contextMenu.addAction(QPixmap(":/Images/id.png"), "Copy Title ID");
  44. contextMenu.addAction(QPixmap(":/Images/xbox.png"), "View on Xbox.com");
  45. QAction *selectedItem = contextMenu.exec(globalPos);
  46. if (selectedItem == NULL)
  47. return;
  48. else if (selectedItem->text() == "Copy Title ID")
  49. {
  50. QClipboard *clipboard = QApplication::clipboard();
  51. clipboard->setText(ui->treeWidget->selectedItems().at(0)->text(1));
  52. statusBar->showMessage("Copied Successfully", 3000);
  53. }
  54. else if (selectedItem->text() == "View on Xbox.com")
  55. {
  56. QDesktopServices::openUrl(QUrl("http://marketplace.xbox.com/Product/66acd000-77fe-1000-9115-d802" + ui->treeWidget->selectedItems().at(0)->text(1).toLower()));
  57. }
  58. }