Example #1
0
BanlistDialog::BanlistDialog(QWidget *parent, bool view)
    :QDialog(parent),add2nd(NULL)
{
    setWindowTitle(tr("Select generals that are excluded"));

    if(ban_list.isEmpty())
        ban_list << "Roles" << "1v1" << "Basara" << "Hegemony" << "Pairs";
    QVBoxLayout *layout = new QVBoxLayout;

    QTabWidget *tab = new QTabWidget;
    layout->addWidget(tab);
    connect(tab,SIGNAL(currentChanged(int)),this,SLOT(switchTo(int)));

    foreach(QString item, ban_list)
    {
        if(item == "Pairs") continue;
        QWidget *apage = new QWidget;

        list = new QListWidget;
        list->setObjectName(item);

        QStringList banlist = Config.value(QString("Banlist/%1").arg(item)).toStringList();
        foreach(QString name, banlist){
            addGeneral(name);
        }

        lists << list;

        QVBoxLayout * vlay = new QVBoxLayout;
        vlay->addWidget(list);
        //vlay->addLayout(hlayout);
        apage->setLayout(vlay);

        tab->addTab(apage,Sanguosha->translate(item));
    }
Example #2
0
KOFBanlistDialog::KOFBanlistDialog(QDialog *parent)
    :QDialog(parent)
{
    setWindowTitle(tr("Select generals that are excluded in 1v1 mode"));

    QVBoxLayout *layout = new QVBoxLayout;

    list = new QListWidget;
    list->setIconSize(General::TinyIconSize);
    list->setViewMode(QListView::IconMode);
    list->setDragDropMode(QListView::NoDragDrop);

    QStringList banlist = Config.value("1v1/Banlist").toStringList();
    foreach(QString name, banlist){
        addGeneral(name);
    }
Example #3
0
void BanlistDialog::doAddButton() {
    FreeChooseDialog *chooser = new FreeChooseDialog(this, (list->objectName() == "Pairs"));
    connect(chooser, SIGNAL(general_chosen(QString)), this, SLOT(addGeneral(QString)));
    connect(chooser, SIGNAL(pair_chosen(QString, QString)), this, SLOT(addPair(QString, QString)));
    chooser->exec();
}
Example #4
0
BanlistDialog::BanlistDialog(QWidget *parent, bool view)
    : QDialog(parent), add2nd(NULL)
{
    setWindowTitle(tr("Select generals that are excluded"));

    if (ban_list.isEmpty())
        ban_list << "Roles" << "1v1" << "HulaoPass" << "XMode" << "Basara" << "Hegemony" << "Pairs";
    QVBoxLayout *layout = new QVBoxLayout;

    QTabWidget *tab = new QTabWidget;
    layout->addWidget(tab);
    connect(tab, SIGNAL(currentChanged(int)), this, SLOT(switchTo(int)));

    foreach (QString item, ban_list) {
        if (item == "Pairs") continue;
        QWidget *apage = new QWidget;

        list = new QListWidget;
        list->setObjectName(item);

        QStringList banlist = Config.value(QString("Banlist/%1").arg(item)).toStringList();
        foreach (QString name, banlist)
            addGeneral(name);

        lists << list;

        QVBoxLayout *vlay = new QVBoxLayout;
        vlay->addWidget(list);
        apage->setLayout(vlay);

        tab->addTab(apage, Sanguosha->translate(item));
    }

    QWidget *apage = new QWidget;

    list = new QListWidget;
    list->setObjectName("Pairs");
    this->list = list;
    foreach (QString banned, BanPair::getAllBanSet().toList())
        addGeneral(banned);
    foreach (QString banned, BanPair::getSecondBanSet().toList())
        add2ndGeneral(banned);
    foreach (BanPair pair, BanPair::getBanPairSet().toList())
        addPair(pair.first, pair.second);

    QVBoxLayout *vlay = new QVBoxLayout;
    vlay->addWidget(list);
    apage->setLayout(vlay);
    tab->addTab(apage, Sanguosha->translate("Pairs"));
    lists << list;

    QPushButton *add = new QPushButton(tr("Add ..."));
    QPushButton *remove = new QPushButton(tr("Remove"));
    if (!view) add2nd = new QPushButton(tr("Add 2nd general ..."));
    QPushButton *ok = new QPushButton(tr("OK"));

    connect(ok, SIGNAL(clicked()), this, SLOT(accept()));
    connect(this, SIGNAL(accepted()), this, SLOT(saveAll()));
    connect(remove, SIGNAL(clicked()), this, SLOT(doRemoveButton()));
    connect(add, SIGNAL(clicked()), this, SLOT(doAddButton()));
    if (!view) connect(add2nd, SIGNAL(clicked()), this, SLOT(doAdd2ndButton()));

    QHBoxLayout *hlayout = new QHBoxLayout;
    hlayout->addStretch();
    if (!view) {
        hlayout->addWidget(add2nd);
        add2nd->hide();
        hlayout->addWidget(add);
        hlayout->addWidget(remove);
        list = lists.first();
    }

    hlayout->addWidget(ok);
    layout->addLayout(hlayout);

    setLayout(layout);

    foreach (QListWidget *alist, lists) {
        if (alist->objectName() == "Pairs") continue;
        alist->setViewMode(QListView::IconMode);
        alist->setDragDropMode(QListView::NoDragDrop);
    }
}
Example #5
0
    connect(ok, SIGNAL(clicked()), this, SLOT(accept()));
    connect(this, SIGNAL(accepted()), this, SLOT(save()));

    QHBoxLayout *hlayout = new QHBoxLayout;
    hlayout->addStretch();
    hlayout->addWidget(add);
    hlayout->addWidget(remove);
    hlayout->addWidget(ok);

    layout->addWidget(list);
    layout->addLayout(hlayout);
    setLayout(layout);

    FreeChooseDialog *chooser = new FreeChooseDialog(this, false);
    connect(add, SIGNAL(clicked()), chooser, SLOT(exec()));
    connect(chooser, SIGNAL(general_chosen(QString)), this, SLOT(addGeneral(QString)));
}

void KOFBanlistDialog::addGeneral(const QString &name){
    const General *general = Sanguosha->getGeneral(name);
    QIcon icon(general->getPixmapPath("tiny"));
    QString text = Sanguosha->translate(name);
    QListWidgetItem *item = new QListWidgetItem(icon, text, list);
    item->setData(Qt::UserRole, name);
}

void KOFBanlistDialog::removeGeneral(){
    int row = list->currentRow();
    if(row != -1)
        delete list->takeItem(row);
}