#include #include #include #include #include #include #include "qmpmainwindow.hpp" #include "qmpcustomizewindow.hpp" #include "ui_qmpcustomizewindow.h" qmpCustomizeWindow::qmpCustomizeWindow(QWidget *parent): QDialog(parent), ui(new Ui::qmpCustomizeWindow) { ui->setupUi(this); } qmpCustomizeWindow::~qmpCustomizeWindow() { delete ui; } void qmpCustomizeWindow::load(void *data) { ui->lwAvail->clear(); ui->lwEnabled->clear(); QList list=static_cast(data)->toList(); std::vector v; for(auto i:list) v.push_back(i.toString().toStdString()); std::map& m=qmpMainWindow::getInstance()->getFunc(); std::set s; for(auto i=v.begin();i!=v.end();++i) { if(m.find(*i)==m.end())continue; s.insert(*i); QListWidgetItem* it=new QListWidgetItem( m[*i].icon(), QString(m[*i].desc().c_str()) ); it->setToolTip(i->c_str()); ui->lwEnabled->addItem(it); } for(auto i=m.begin();i!=m.end();++i) { if(s.find(i->first)==s.end()) { QListWidgetItem* it=new QListWidgetItem( i->second.icon(), QString(i->second.desc().c_str()) ); it->setToolTip(i->first.c_str()); ui->lwAvail->addItem(it); } } } void *qmpCustomizeWindow::save() { QList ret; for(int i=0;ilwEnabled->count();++i) { ret.push_back(QVariant(ui->lwEnabled->item(i)->toolTip())); } return new QVariant(ret); } void qmpCustomizeWindow::on_tbAdd_clicked() { if(!ui->lwAvail->currentItem())return; ui->lwEnabled->addItem(ui->lwAvail->takeItem(ui->lwAvail->currentRow())); ui->lwAvail->removeItemWidget(ui->lwAvail->currentItem()); } void qmpCustomizeWindow::on_tbRemove_clicked() { if(!ui->lwEnabled->currentItem())return; ui->lwAvail->addItem(ui->lwEnabled->takeItem(ui->lwEnabled->currentRow())); } void qmpCustomizeWindow::on_buttonBox_accepted() { accept(); close(); } void qmpCustomizeWindow::on_buttonBox_rejected() { reject(); close(); }