| 601 | }; |
| 602 | |
| 603 | ServersPage::ServersPage(InstancePtr inst, QWidget* parent) |
| 604 | : QMainWindow(parent), ui(new Ui::ServersPage) |
| 605 | { |
| 606 | ui->setupUi(this); |
| 607 | m_inst = inst; |
| 608 | m_model = new ServersModel(inst->gameRoot(), this); |
| 609 | ui->serversView->setIconSize(QSize(64,64)); |
| 610 | ui->serversView->setModel(m_model); |
| 611 | ui->serversView->setContextMenuPolicy(Qt::CustomContextMenu); |
| 612 | connect(ui->serversView, &QTreeView::customContextMenuRequested, this, &ServersPage::ShowContextMenu); |
| 613 | |
| 614 | auto head = ui->serversView->header(); |
| 615 | if(head->count()) |
| 616 | { |
| 617 | head->setSectionResizeMode(0, QHeaderView::Stretch); |
| 618 | for(int i = 1; i < head->count(); i++) |
| 619 | { |
| 620 | head->setSectionResizeMode(i, QHeaderView::ResizeToContents); |
| 621 | } |
| 622 | } |
| 623 | |
| 624 | auto selectionModel = ui->serversView->selectionModel(); |
| 625 | connect(selectionModel, &QItemSelectionModel::currentChanged, this, &ServersPage::currentChanged); |
| 626 | connect(m_inst.get(), &MinecraftInstance::runningStatusChanged, this, &ServersPage::runningStateChanged); |
| 627 | connect(ui->nameLine, &QLineEdit::textEdited, this, &ServersPage::nameEdited); |
| 628 | connect(ui->addressLine, &QLineEdit::textEdited, this, &ServersPage::addressEdited); |
| 629 | connect(ui->resourceComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(resourceIndexChanged(int))); |
| 630 | connect(m_model, &QAbstractItemModel::rowsRemoved, this, &ServersPage::rowsRemoved); |
| 631 | |
| 632 | m_locked = m_inst->isRunning(); |
| 633 | if(m_locked) |
| 634 | { |
| 635 | m_model->lock(); |
| 636 | } |
| 637 | |
| 638 | updateState(); |
| 639 | } |
| 640 | |
| 641 | ServersPage::~ServersPage() |
| 642 | { |