コード例 #1
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::init_cvar_table()
{
    delegate_cvar.set_cvar = [this](const QString& name, const QString& value)
    {
        /// \todo Maybe option to choose set or seta
        rcon_command("set "+name+' '+value);
        auto cvar = model_cvar.cvar(name);
        cvar.value = value;
        model_cvar.set_cvar(cvar);
    };
    table_cvars->setModel(&proxy_cvar);
    table_cvars->setItemDelegate(&delegate_cvar);
    proxy_cvar.setSourceModel(&model_cvar);
    connect(&log_parser, &xonotic::LogParser::cvar,
            &model_cvar, &CvarModel::set_cvar);
    connect(&log_parser, &xonotic::LogParser::cvarlist_begin,
            &model_cvar, &CvarModel::block_updates);
    connect(&log_parser, &xonotic::LogParser::cvarlist_end,
            &model_cvar, &CvarModel::unblock_updates);
    auto header_view = table_cvars->horizontalHeader();
    header_view->setSectionResizeMode(CvarModel::Name, QHeaderView::ResizeToContents);
    header_view->setSectionResizeMode(CvarModel::Value, QHeaderView::Stretch);
    table_cvars->hideColumn(CvarModel::Default);
    table_cvars->hideColumn(CvarModel::Description);
    for ( int i = 0; i < model_cvar.columnCount(); i++ )
        input_cvar_filter_section->addItem(
            model_cvar.headerData(i,Qt::Horizontal).toString());
}
コード例 #2
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::detach_log()
{
    if ( log_dest_set )
    {
        QString cmd = settings().console_detach_command;
        QString ip = QString::fromStdString(connection.local_endpoint().name());
        rcon_command(cmd.replace("$ip",ip));
        log_dest_set = false;
    }
}
コード例 #3
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::attach_log()
{
    if ( connection.xonotic_connected() )
    {
        QString cmd = settings().console_attach_command;
        QString ip = QString::fromStdString(connection.local_endpoint().name());
        rcon_command(cmd.replace("$ip",ip));
        log_dest_set = true;
    }
}
コード例 #4
0
ファイル: mcrcon.c プロジェクト: starlis/mcrcon
int run_commands(int argc, char *argv[])
{
    int i, ok = 1, ret = 0;

    for(i = optind; i < argc && ok; i++) {
        ok = rcon_command(rsock, argv[i]);
        ret += ok;
    }

    return ret;
}
コード例 #5
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::init_status_table()
{
    auto header_view = table_server_status->verticalHeader();
    QFont header_font = header_view->font();
    header_font.setBold(true);
    header_view->setFont(header_font);
    table_server_status->setModel(&model_server);
    table_server_status->setItemDelegate(&delegate_server);
    delegate_server.g_maplist = [this] {
        return model_cvar.cvar_value("g_maplist");
    };
    delegate_server.chmap = [this](const QString& map) {
        QString cmd = settings().cmd_chmap;
        rcon_command(cmd.replace("$map",map));
        model_server.set_server_property("map", map);
    };
    delegate_server.set_hostname = [this](const QString& name) {
        rcon_command("set hostname "+name);
        model_server.set_server_property("host", name);
    };
    connect(&log_parser, &xonotic::LogParser::server_property_changed,
            &model_server, &ServerModel::set_server_property);
}
コード例 #6
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::on_table_cvars_customContextMenuRequested(const QPoint& pos)
{
    auto index = proxy_cvar.mapToSource(table_cvars->indexAt(pos));

    QMenu menu;

    QAction action_cvar_desc(QIcon::fromTheme("help-contextual"), tr("&Description"), this);
    connect(&action_cvar_desc, &QAction::triggered, [this, index]{
        QWhatsThis::showText(QCursor::pos(),
                             index.data(Qt::WhatsThisRole).toString(),
                             this);
    });
    menu.addAction(&action_cvar_desc);

    menu.addSeparator();

    QAction action_cvar_unset(QIcon::fromTheme("list-remove"), tr("&Unset"), this);
    connect(&action_cvar_unset, &QAction::triggered, [this, index]{
        rcon_command("unset "+index.data(Qt::UserRole).toString());
        model_cvar.removeRows(index.row(), 1);
    });
    menu.addAction(&action_cvar_unset);

    QAction action_cvar_reset(QIcon::fromTheme("edit-clear"), tr("&Reset to Default"), this);
    connect(&action_cvar_reset, &QAction::triggered, [this, index]{
        xonotic::Cvar cvar = model_cvar.cvar_at(index.row());
        QString def = cvar.default_value;
        if ( def.isEmpty() )
            def = "\"\"";
        rcon_command("set "+cvar.name+" "+def);
        cvar.value = cvar.default_value;
        model_cvar.set_cvar(cvar);
    });
    menu.addAction(&action_cvar_reset);

    menu.exec(table_cvars->mapToGlobal(pos));
}
コード例 #7
0
ファイル: mcrcon.c プロジェクト: starlis/mcrcon
/* interactive terminal mode */
int run_terminal_mode(int rsock)
{
    int ret = 0;
    char command[DATA_BUFFSIZE] = {0x00};

    puts("Logged in. Type \"Q\" to quit!");

    while(connection_alive) {

        int len = get_line(command, DATA_BUFFSIZE);
        if(command[0] == 'Q' && command[1] == 0) break;

        if(len > 0 && connection_alive) ret += rcon_command(rsock, command);

        command[0] = len = 0;
    }

    return ret;
}
コード例 #8
0
ファイル: server_widget.cpp プロジェクト: mbasaglia/RconGui
void ServerWidget::request_cvars()
{
    for ( const auto& cmd : settings().cmd_cvarlist )
        rcon_command(cmd);
    label_refresh_cvar->setText(QTime::currentTime().toString("hh:mm:ss"));
}