本文整理汇总了C++中AppConfig类的典型用法代码示例。如果您正苦于以下问题:C++ AppConfig类的具体用法?C++ AppConfig怎么用?C++ AppConfig使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AppConfig类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: apply_changes
// Метод должен возвращать уровень сложности сделанных изменений
// 0 - изменения не требуют перезапуска программы
// 1 - изменения требуют перезапуска программы
int AppConfigPage_Misc::apply_changes(void)
{
qDebug() << "Apply changes misc";
// Сохраняется настройка подтверждения для действия "cut" на ветке
if(mytetraconfig.get_cutbranchconfirm()!=cutBranchConfirm->isChecked())
mytetraconfig.set_cutbranchconfirm(cutBranchConfirm->isChecked());
// Сохраняется настройка отображения отладочных сообщений в консоли
if(mytetraconfig.get_printdebugmessages()!=printDebugMessages->isChecked())
mytetraconfig.set_printdebugmessages(printDebugMessages->isChecked());
// Сохраняется настройка режима запуска MyTetra - обычный или свернутый
if(mytetraconfig.get_runinminimizedwindow()!=runInMinimizedWindow->isChecked())
mytetraconfig.set_runinminimizedwindow(runInMinimizedWindow->isChecked());
// Сохраняется настройка нужно ли вспоминать позицию курсора при перемещении
// по истории
if(mytetraconfig.getRememberCursorAtHistoryNavigation()!=rememberAtHistoryNavigationCheckBox->isChecked())
mytetraconfig.setRememberCursorAtHistoryNavigation(rememberAtHistoryNavigationCheckBox->isChecked());
// Сохраняется настройка нужно ли пытаться вспоминать позицию курсора при
// обычном выборе записи
if(mytetraconfig.getRememberCursorAtOrdinarySelection()!=rememberAtOrdinarySelectionCheckBox->isChecked())
mytetraconfig.setRememberCursorAtOrdinarySelection(rememberAtOrdinarySelectionCheckBox->isChecked());
return 0;
}
示例2: Win32UIBinding
void UIModule::Start()
{
SharedKMethod api = this->host->GetGlobalObject()->GetNS("API.fire")->ToMethod();
api->Call("ti.UI.start", Value::Undefined);
#ifdef OS_WIN32
UIBinding* binding = new Win32UIBinding(host);
#elif OS_OSX
UIBinding* binding = new OSXUIBinding(host);
#elif OS_LINUX
UIBinding* binding = new GtkUIBinding(host);
#endif
AppConfig *config = AppConfig::Instance();
if (config == NULL)
{
std::string msg = "Error loading tiapp.xml. Your application "
"is not properly configured or packaged.";
binding->ErrorDialog(msg);
throw ValueException::FromString(msg.c_str());
return;
}
WindowConfig *main_window_config = config->GetMainWindow();
if (main_window_config == NULL)
{
std::string msg ="Error loading tiapp.xml. Your application "
"window is not properly configured or packaged.";
binding->ErrorDialog(msg);
throw ValueException::FromString(msg.c_str());
return;
}
binding->CreateMainWindow(main_window_config);
}
示例3: onCheckBoxShowAdvancedStateChanged
void CommandWidget::onCheckBoxShowAdvancedStateChanged(int state)
{
const bool showAdvanced = state == Qt::Checked;
AppConfig appConfig;
appConfig.setOption(Config::show_advanced_command_settings::name(), showAdvanced);
ui->tabWidget->setVisible(showAdvanced);
ui->labelDescription->setVisible(showAdvanced);
}
示例4: AppConfig
void Client::main(std::string args[])
{
//创建读取应用配置的对象
AppConfig *config = new AppConfig();
std::string paramA = config->getParameterA();
std::string paramB = config->getParameterB();
puts("paramA="+paramA+",paramB="+paramB);
}
示例5: if
void SDRDevicesDialog::OnUseSelected( wxMouseEvent& event ) {
if (dev != NULL) {
int i = 0;
SoapySDR::ArgInfoList::const_iterator args_i;
SoapySDR::ArgInfoList args = dev->getSettingsArgInfo();
SoapySDR::Kwargs settingArgs;
SoapySDR::Kwargs streamArgs;
for (args_i = args.begin(); args_i != args.end(); args_i++) {
SoapySDR::ArgInfo arg = (*args_i);
wxPGProperty *prop = props[i];
if (arg.type == SoapySDR::ArgInfo::STRING && arg.options.size()) {
settingArgs[arg.key] = arg.options[prop->GetChoiceSelection()];
} else if (arg.type == SoapySDR::ArgInfo::BOOL) {
settingArgs[arg.key] = (prop->GetValueAsString()=="True")?"true":"false";
} else {
settingArgs[arg.key] = prop->GetValueAsString();
}
i++;
}
if (dev->getRxChannel()) {
args = dev->getRxChannel()->getStreamArgsInfo();
if (args.size()) {
for (args_i = args.begin(); args_i != args.end(); args_i++) {
SoapySDR::ArgInfo arg = (*args_i);
wxPGProperty *prop = props[i];
if (arg.type == SoapySDR::ArgInfo::STRING && arg.options.size()) {
streamArgs[arg.key] = arg.options[prop->GetChoiceSelection()];
} else if (arg.type == SoapySDR::ArgInfo::BOOL) {
streamArgs[arg.key] = (prop->GetValueAsString()=="True")?"true":"false";
} else {
streamArgs[arg.key] = prop->GetValueAsString();
}
i++;
}
}
}
AppConfig *cfg = wxGetApp().getConfig();
DeviceConfig *devConfig = cfg->getDevice(dev->getDeviceId());
devConfig->setSettings(settingArgs);
devConfig->setStreamOpts(streamArgs);
wxGetApp().setDeviceArgs(settingArgs);
wxGetApp().setStreamArgs(streamArgs);
wxGetApp().setDevice(dev);
Close();
}
}
示例6: parse_options
static
void parse_options(int argc, char* argv[], AppConfig &conf)
{
static struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"config", required_argument, 0, 'c'},
{0, 0, 0, 0}
};
// Set default values TODO - make a member function?
conf.blynk_server = BLYNK_DEFAULT_DOMAIN;
conf.blynk_port = TOSTRING(BLYNK_DEFAULT_PORT);
conf.mqtt_port = 1883;
conf.mqtt_server = MQTT_DEFAULT_DOMAIN;
const char* usage =
"Usage: %s [options]\n"
"\n"
"Options:\n"
" -h, --help Print this help\n"
" -c config.json, --config=configfile.json JSON Configuration file.\n"
"\n"
"Defaults:\n"
" Unless specified in the config file, the following defaults are used:"
" blynk.server: " BLYNK_DEFAULT_DOMAIN "\n"
" blynk.port" TOSTRING(BLYNK_DEFAULT_PORT) "\n"
" mqtt.server: " MQTT_DEFAULT_DOMAIN "\n"
" outputs: empty list"
"\n";
int rez;
while (-1 != (rez = getopt_long(argc, argv, "hc:", long_options, NULL))) {
switch (rez) {
case 'c':
if (conf.parse(optarg)) {
printf("Config successfully loaded from: %s\n", optarg);
} else {
printf("Failed to parse config from: %s: %s\n", optarg, conf.failure());
}
break;
case 'h':
default:
printf(usage, argv[0]);
exit(0);
};
};
// Allowed to load extra settings here.
// Check mandatory options
if (!conf.is_valid()) {
printf("Final configuraton is invalid: %s\n", conf.failure());
exit(1);
}
conf.dump();
}
示例7: IsOkApplyPreset
//Behavior when unchecking 'Presets' is to keep the GUI settings at the last preset (even if not yet applied).
//
//Alternative possible behavior when unchecking 'Presets' (currently not implemented) is to set the GUI to
// the last applied settings. If such behavior is to be implemented, g_Conf->EnablePresets should be set to
// false before it's applied to the GUI and then restored to it's original state such that the GUI reflects
// g_Conf's settings as if it doesn't force presets. (if a settings which has presets enable is applied to the
// GUI then most of the GUI is disabled).
void Dialogs::SysConfigDialog::UpdateGuiForPreset ( int presetIndex, bool presetsEnabled )
{
if( !m_listbook )
return;
//Console.WriteLn("Applying config to Gui: preset #%d, presets enabled: %s", presetIndex, presetsEnabled?"true":"false");
AppConfig preset = *g_Conf;
preset.IsOkApplyPreset( presetIndex ); //apply a preset to a copy of g_Conf.
preset.EnablePresets = presetsEnabled; //override IsOkApplyPreset (which always applies/enabled) to actual required state
//update the config panels of SysConfigDialog to reflect the preset.
size_t pages = m_labels.GetCount();
for( size_t i=0; i<pages; ++i )
{
//NOTE: We should only apply the preset to panels of class BaseApplicableConfigPanel_SpecificConfig
// which supports it, and BaseApplicableConfigPanel implements IsSpecificConfig() as lame RTTI to detect it.
// However, the panels in general (m_listbook->GetPage(i)) are of type wxNotebookPage which doesn't
// support IsSpecificConfig(), so the panels (pages) that SysConfigDialog holds must be of class
// BaseApplicableConfigPanel or derived, and not of the parent class wxNotebookPage.
if ( ((BaseApplicableConfigPanel*)(m_listbook->GetPage(i)))->IsSpecificConfig() )
{
((BaseApplicableConfigPanel_SpecificConfig*)(m_listbook->GetPage(i)))
->ApplyConfigToGui( preset, AppConfig::APPLY_FLAG_FROM_PRESET | AppConfig::APPLY_FLAG_MANUALLY_PROPAGATE );
}
}
//Main menus behavior regarding presets and changes/cancel/apply from SysConfigDialog:
//1. As long as preset-related values were not changed at SysConfigDialog, menus behave normally.
//2. After the first preset-related change at SysConfigDialog (this function) and before Apply/Ok/Cancel:
// - The menus reflect the temporary pending values, but these preset-controlled items are grayed out even if temporarily presets is unchecked.
//3. When clicking Ok/Apply/Cancel at SysConfigDialog, the menus are re-alligned with g_Conf (including gray out or not as needed).
//NOTE: Enabling the presets and disabling them wihout clicking Apply leaves the pending menu config at last preset values
// (consistent with SysConfigDialog behavior). But unlike SysConfigDialog, the menu items stay grayed out.
// Clicking cancel will revert all pending changes, but clicking apply will commit them, and this includes the menus.
// E.g.:
// 1. Patches (menu) is disabled and presets (SysConfigDialog) is disabled.
// 2. Opening config and checking presets without apply --> patches are visually enabled and grayed out (not yet applied to g_Conf)
// 3. Unchecking presets, still without clicking apply --> patches are visually still enabled (last preset values) and grayed out.
// 4. Clicking Apply (presets still unchecked) --> patches will be enabled and not grayed out, presets are disabled.
// --> If clicking Cancel instead of Apply at 4., will revert everything to the state of 1 (preset disabled, patches disabled and not grayed out).
bool origEnable=preset.EnablePresets;
preset.EnablePresets=true; // will cause preset-related items to be grayed out at the menus regardless of their value.
if ( GetMainFramePtr() )
GetMainFramePtr()->ApplyConfigToGui( preset, AppConfig::APPLY_FLAG_FROM_PRESET | AppConfig::APPLY_FLAG_MANUALLY_PROPAGATE );
// Not really needed as 'preset' is local and dumped anyway. For the sake of future modifications of more GUI elements.
preset.EnablePresets=origEnable;
}
示例8: ConfigPage
AppConfigPage_Misc::AppConfigPage_Misc(QWidget *parent) : ConfigPage(parent)
{
qDebug() << "Create misc config page";
// Блок настройки подтверждения для действия "cut" на ветке
cutBranchConfirm=new QCheckBox(this);
cutBranchConfirm->setText(tr("Confirm item cut"));
cutBranchConfirm->setChecked(mytetraconfig.get_cutbranchconfirm());
// Блок настройки отображения отладочных сообщений в консоли
printDebugMessages=new QCheckBox(this);
printDebugMessages->setText(tr("Print debug messages to console"));
printDebugMessages->setChecked(mytetraconfig.get_printdebugmessages());
// Настройка запуска MyTetra в свернутом окне
runInMinimizedWindow=new QCheckBox(this);
runInMinimizedWindow->setText(tr("Run MyTetra in a minimized window"));
runInMinimizedWindow->setChecked(mytetraconfig.get_runinminimizedwindow());
// Группировщик виджетов для настройки автоматического старта синхронизации
historyBox=new QGroupBox(this);
historyBox->setTitle(tr("History of visited notes"));
rememberAtHistoryNavigationCheckBox=new QCheckBox(this);
rememberAtHistoryNavigationCheckBox->setText(tr("Remember cursor position at history navigation"));
rememberAtHistoryNavigationCheckBox->setChecked(mytetraconfig.getRememberCursorAtHistoryNavigation());
rememberAtOrdinarySelectionCheckBox=new QCheckBox(this);
rememberAtOrdinarySelectionCheckBox->setText(tr("Try remember cursor position at ordinary selection"));
rememberAtOrdinarySelectionCheckBox->setChecked(mytetraconfig.getRememberCursorAtOrdinarySelection());
// Виджеты вставляются в группировщик
QVBoxLayout *historyLayout = new QVBoxLayout;
historyLayout->addWidget(rememberAtHistoryNavigationCheckBox);
historyLayout->addWidget(rememberAtOrdinarySelectionCheckBox);
historyBox->setLayout(historyLayout);
// Собирается основной слой
QVBoxLayout *central_layout=new QVBoxLayout();
central_layout->addWidget(cutBranchConfirm);
central_layout->addWidget(printDebugMessages);
central_layout->addWidget(runInMinimizedWindow);
central_layout->addWidget(historyBox);
central_layout->addStretch();
// Основной слой устанавливается
setLayout(central_layout);
}
示例9: atoi
GC<Log> LogList::append(GC<Log> log) {
// Append to set
List<Log>::append(log);
// Try to match user name of log
if (log->getCache() && !log->getCache()->isFound()) {
AppConfig *cfg = AppConfig::getInstance();
const char *nick;
if ((nick = cfg->getString("username", NULL)) != NULL) {
if ((log->getType() == Log::T_FOUND_IT || log->getType() == Log::T_ATTENDED || log->getType() == Log::T_WEBCAM_PHOTO_TAKEN) && log->getFinder()->equals(nick)) {
int logtm = 0;
// Try to find time in log
const char *text = log->getText()->c_str();
size_t len = log->getText()->length();
for (size_t i = 0; i < len; i++) {
if (text[i] == ':' && i >= 1 && i < len - 1) {
// Try to find forward and backward numbers.
// Forward first
if (isdigit(text[i+1]) && (i == len - 2 || isdigit(text[i+2]))) {
int min = atoi(text + i + 1);
if (min >= 0 && min <= 59) {
// Found forward correct minute, search backwards.
size_t t = i - 1;
while (t > 0 && isdigit(text[t])) {
t--;
}
int hour = atoi(text + t);
if (hour >= 0 && hour <= 23) {
// Found correct time, set it and stop searching.
logtm = hour * 3600 + min * 60;
break;
}
}
}
}
}
log->getCache()->setDtFound(log->getTime() + logtm);
}
}
}
return log;
}
示例10: onClickedEditMyTetraConfigFile
void AppConfigPage_Misc::onClickedEditMyTetraConfigFile(void)
{
// Сбрасываются в файл конфига все возможные изменения, которые, возможно еще не были записаны
mytetraConfig.sync();
editConfigFile( globalParameters.getWorkDirectory()+"/conf.ini", 0.8 );
}
示例11: AddResult
bool ResultLog::AddResult(wxString resultname, StringValueList &row)
{
AppConfig *ac = AppConfig::GetInstance();
wxString maxrows;
ac->GetValue( wxString(wxT("HISTORY_COUNT")), maxrows );
long imax;
maxrows.ToLong( &imax );
Result *r = GetResults( resultname );
if( r->GetRowCount() > imax-1 )
{
r->DeleteRow( 0 );
}
r->AddRow( row );
return false;
}
示例12: main
int main(int argc, char* argv[])
{
// Create all the necessary objects (calls the default constructor for each)
TargetDetector detector;
TargetProcessor processor;
NetworkController networkController;
VideoDevice camera;
CmdLineInterface interface(argc, argv);
AppConfig config = interface.getConfig();
GUIManager gui;
if(config.getIsDevice())
{
camera.startCapture(config.getDeviceID());
if(config.getIsDebug())
std::cout << "Camera ready!\n";
}
//init networking
if(config.getIsNetworking())
networkController.startServer();
if(!config.getIsHeadless())
gui.init();
if(config.getIsDebug())
std::cout << "Im debugging! :D\n";
while(true)
{
networkController.waitForPing();
cv::Mat image = camera.getImage();
Target* target = detector.processImage(image);
bool foundTarget = (target == NULL ? false : true);
if(foundTarget)
{
processor.loadTarget(target);
double distance = processor.calculateDistance();
networkController.sendMessage("true;" +
boost::lexical_cast<std::string> (distance));
std::cout << "Target Found! Distance: " << distance;
}
else
{
networkController.sendMessage("false;");
}
}
return 0;
}
示例13: setupUI
void FindTableWidget::setupUI(void)
{
findTableView=new QTableView(this);
findTableView->setObjectName("findTableView");
findTableView->setMinimumSize(1,1);
findTableView->horizontalHeader()->hide();
// Установка высоты строки с принудительной стилизацией (если это необходимо),
// так как стилизация через QSS для элементов QTableView полноценно не работает
// У таблицы есть вертикальные заголовки, для каждой строки, в которых отображается номер строки.
// При задании высоты вертикального заголовка, высота применяется и для всех ячеек в строке.
findTableView->verticalHeader()->setDefaultSectionSize ( findTableView->verticalHeader()->minimumSectionSize () );
int height=mytetraConfig.getUglyQssReplaceHeightForTableView();
if(height!=0)
findTableView->verticalHeader()->setDefaultSectionSize( height );
if(mytetraConfig.getInterfaceMode()=="mobile")
findTableView->verticalHeader()->setDefaultSectionSize( getCalculateIconSizePx() );
// Устанавливается режим что могут выделяться только строки
// а не отдельный item таблицы
findTableView->setSelectionBehavior(QAbstractItemView::SelectRows);
// Устанавливается режим что редактирование невозможно
findTableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
// Настройка области виджета для кинетической прокрутки
setKineticScrollArea( qobject_cast<QAbstractItemView*>(findTableView) );
}
示例14: setupSignals
void TreeScreen::setupSignals(void)
{
// Соединение сигнал-слот чтобы показать контекстное меню по правому клику на ветке
connect(knowTreeView, SIGNAL(customContextMenuRequested(const QPoint &)),
this,SLOT(on_customContextMenuRequested(const QPoint &)));
// Соединение сигнал-слот чтобы показать контекстное меню по долгому нажатию
connect(knowTreeView, SIGNAL(tapAndHoldGestureFinished(const QPoint &)),
this, SLOT(on_customContextMenuRequested(const QPoint &)));
// Соединение сигнал-слот что ветка выбрана мышкой или стрелками на клавиатуре
if(mytetraConfig.getInterfaceMode()=="desktop")
connect(knowTreeView->selectionModel(), SIGNAL(currentRowChanged (const QModelIndex&, const QModelIndex&)),
this, SLOT(on_knowtree_clicked(const QModelIndex&)));
if(mytetraConfig.getInterfaceMode()=="mobile")
connect(knowTreeView, SIGNAL(clicked(const QModelIndex &)),
this, SLOT(on_knowtree_clicked(const QModelIndex &)));
// Сигнал чтобы открыть на редактирование параметры записи при двойном клике
// connect(knowTreeView, SIGNAL(doubleClicked(const QModelIndex &)),
// actionList["editBranch"], SLOT(trigger(void)));
// Сигнал что ветка выбрана мышкой
// connect(knowTreeView,SIGNAL(pressed(const QModelIndex &)),
// this,SLOT(on_knowTreeView_clicked(const QModelIndex &)));
// connect(knowTreeView, SIGNAL(clicked(const QModelIndex &)),
// this, SLOT(on_knowTreeView_clicked(const QModelIndex &)));
}
示例15: setupUI
void TreeScreen::setupUI(void)
{
toolsLine=new QToolBar(this);
/*
QSize tool_bar_icon_size(16,16);
toolsLine->setIconSize(tool_bar_icon_size);
*/
insertActionAsButton(toolsLine, actionList["insSubbranch"]);
insertActionAsButton(toolsLine, actionList["insBranch"]);
if(mytetraConfig.getInterfaceMode()=="desktop") {
insertActionAsButton(toolsLine, actionList["editBranch"]);
insertActionAsButton(toolsLine, actionList["delBranch"]);
}
toolsLine->addSeparator();
insertActionAsButton(toolsLine, actionList["expandAllSubbranch"]);
insertActionAsButton(toolsLine, actionList["collapseAllSubbranch"]);
toolsLine->addSeparator();
insertActionAsButton(toolsLine, actionList["moveUpBranch"]);
insertActionAsButton(toolsLine, actionList["moveDnBranch"]);
if(mytetraConfig.getInterfaceMode()=="mobile") {
toolsLine->addSeparator();
insertActionAsButton(toolsLine, actionList["findInBase"]); // Клик по этой кнопке связывается с действием в MainWindow
}
knowTreeView=new KnowTreeView(this);
knowTreeView->setObjectName("knowTreeView");
knowTreeView->setMinimumSize(150,250);
knowTreeView->setWordWrap(true);
// Временно сделан одинарный режим выбора пунктов
// todo: Множественный режим надо выставить тогда, когда
// станет ясно, как удалять несколько произвольных веток так, чтобы
// в процессе удаления QModelIndex нижестоящих еще не удаленных
// веток не менялся
// knowTreeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
knowTreeView->setSelectionMode(QAbstractItemView::SingleSelection);
knowTreeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
// Нужно установить правила показа контекстного самодельного меню
// чтобы оно могло вызываться
knowTreeView->setContextMenuPolicy(Qt::CustomContextMenu);
// Представление не должно позволять редактировать элементы обычным путем
knowTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
}