int main( int argc, char *argv[] ) { if (!argc) { printf("Missing input argument!\n"); return 1; } if (wiringPiSetup() == -1) { printf("wiringPiSetup returned -1!\n"); return 1; } if (strcmp(argv[1], "w") == 0) { onTemp = atoi(argv[2]); offTemp = atoi(argv[3]); highTemp = atoi(argv[4]); onHum = atoi(argv[5]); offHum = atoi(argv[6]); webOR = atoi(argv[7]); tempState = atoi(argv[8]); humState = atoi(argv[9]); writeCfg(); } else if (strcmp(argv[1], "r") == 0) { readCfg(); printf("%i %i %i %i %i %i %i %i\n", onTemp, offTemp, highTemp, onHum, offHum, webOR, tempState, humState); } else { year = atoi(argv[1]); month = atoi(argv[2]); day = atoi(argv[3]); hour = atoi(argv[4]); min = atoi(argv[5]); sec = atoi(argv[6]); timestampL = atoi(argv[7]); hum = atof(argv[8]); temp = atof(argv[10]); printf("\n%s:%s:%s %i Read config file %s", argv[4], argv[5], argv[6], timestampL, config_file_name); readCfg(); printf("\nonTemp: %i, offTemp: %i, highTemp: %i, onHum: %i, offHum: %i, webOR: %i, tempState: %i, humState: %i", onTemp, offTemp, highTemp, onHum, offHum, webOR, tempState, humState); printf("\n%s:%s:%s %i Read sensors", argv[4], argv[5], argv[6], timestampL); printf("\nTemperature: %.1f Range: (%i - %i) %.1f degrees from offTemp. ", temp, onTemp, offTemp, offTemp - temp); CheckTemp(); printf("\nHumidity: %.1f Range: (%i - %i) %.1f percent from offHum. ", hum, onHum, offHum, offHum - hum); CheckHum(); if (!webOR) { ChangeRelays ( offTemp - temp, offHum - hum ); } else { printf("WebOverride activated - No relay change!\n"); } } return 0; }
void ReConfigure(Mdigen& mdigen, const string& cfg, bool& ok, int& max_frames) { Cfg config; try { readCfg(config, cfg); } catch(const char* e) { cerr << e << endl; cerr.flush(); ok = false; } catch(string e) { cerr << e << endl; cerr.flush(); ok = false; } try { mdigen.utco = config.utco; if(config.initial_reconfiguration_index == -1) mdigen.initial_reconfiguration_index = 7; // needed if changes during run - can't rely on constructor else mdigen.initial_reconfiguration_index = config.initial_reconfiguration_index; mdigen.ReConfigure(config.config_file); max_frames = config.max_frames; } catch(string e){ cerr << e << endl; cerr.flush(); ok = false; } catch(char const* e) { cerr << e << endl; cerr.flush(); ok = false; } reconfiguration_requested = false; }
bool Day::readHeader() { bool ret = readCfg(); if (ret) { ret = readStages(); if (ret) { readShortDescription(); } } return ret; }
__attribute__((section(".text.start"), noreturn)) void _start() { static const TCHAR fontPath[] = _T("") SYS_PATH "/" FONT_NAME; void *fontBuf; UINT btr, br; int r; FIL f; // Enable TMIO IRQ *(volatile uint32_t *)0x10001000 = 0x00010000; preloadStringsA(); if (!FSInit()) { DrawString(BOT_SCREEN, strings[STR_FAILED], BOT_SCREEN_WIDTH / 2, SCREEN_HEIGHT - FONT_HEIGHT, RED, BLACK); while (1); } set_loglevel(ll_info); log(ll_info, "Initializing rxTools..."); setConsole(); fontIsLoaded = 0; r = f_open(&f, fontPath, FA_READ); if (r == FR_OK) { btr = f_size(&f); fontBuf = __builtin_alloca(btr); r = f_read(&f, fontBuf, btr, &br); if (r == FR_OK) fontIsLoaded = 1; f_close(&f); fontaddr = fontBuf; } if (fontIsLoaded) preloadStringsU(); else warn(L"Failed to load " FONT_NAME ": %d\n", r); if (getMpInfo() == MPINFO_KTR) { r = initN3DSKeys(); if (r != FR_OK) { warn(L"Failed to load keys for N3DS\n" " Code: %d\n" " RxMode will not boot. Please\n" " include key_0x16.bin and\n" " key_0x1B.bin at the root of your\n" " SD card.\n", r); InputWait(); goto postinstall; } } install(); postinstall: readCfg(); log(ll_info, "Done..."); r = loadStrings(); if (r) warn(L"Failed to load strings: %d\n", r); drawTop(); //Default boot check if (cfgs[CFG_DEFAULT].val.i && HID_STATE & BUTTON_L1) { if(cfgs[CFG_DEFAULT].val.i == 3) PastaMode(); else rxMode(cfgs[CFG_DEFAULT].val.i - 1); } if (sysver < 7) { r = initKeyX(); if (r != FR_OK) warn(L"Failed to load key X for slot 0x25\n" " Code: %d\n" " If your firmware version is less\n" " than 7.X, some titles decryption\n" " will fail, and some EmuNANDs\n" " will not boot.\n", r); } if (warned) { warn(strings[STR_PRESS_BUTTON_ACTION], strings[STR_BUTTON_A], strings[STR_CONTINUE]); WaitForButton(BUTTON_A); } OpenAnimation(); mainLoop(); }
int main(int argc, char *argv[]) { if( argc < 3 ) { printf( "%s", useMsg ); return 0; } char * t; if(NULL!=(t = getenv("TERM_ROOT"))){ term_root = strdup(t); }else{ fprintf( stderr, "Переменная TERM_ROOT не установлена, будет использован текущий путь.\n" ); } strcpy( exeFileName, argv[0] ); strcpy( inputFileName, argv[argc-1] ); strcpy( cfgName, argv[argc-2] ); TFiltrParams filtrParams; TCfg *cfg = 0; TAutoPtr<TCfg> pcfg(cfg); try { readCfg( cfg, filtrParams ); parseCommandString( argc, argv, filtrParams ); } catch (TException e) { fprintf( stderr, "%s\n", e.what() ); exit(-1); } logfile = new CLog("filtr.exe"); if(useStdOut) { //logfile.addAppender(new ConsoleLogAppender(logLevel,"%s | %e | %m")); //logfile->addAppender(new CConsoleLogAppender(logLevel, "%e | %m")); logfile->addAppender(new CConsoleLogAppender(logLevel, LOG_FORMAT)); } if(useStdErr) { //logfile.addAppender(new EConsoleLogAppender(logLevel,"%s | %e | %m")); //logfile->addAppender(new EConsoleLogAppender(logLevel, "%e | %m")); logfile->addAppender(new EConsoleLogAppender(logLevel, LOG_FORMAT)); } if(!logFileName.empty()) { try { //logfile->addAppender(new CFileLogAppender(logLevel, logFileName, append, "%s | %e | %m")); logfile->addAppender(new CFileLogAppender(logLevel, logFileName, append, LOG_FORMAT)); } catch(string e) { fprintf(stderr,"%s\n",e.c_str()); exit(1); } } logfile->info( string("filtr.exe - ") + inputFileName ); { // Для того, чтобы был вызван деструктор logfile TAutoPtr<CLog> aLogFile( logfile ); logfile->info( "чтение входных файлов" ); construct_file_names(); if( read_and_verify_Blk0s(filtrParams) != 0 ) { return 1; } int length = in_blk0.totalFrameNum * in_blk0.totalPixNum; if( readData(filtrParams, length ) != 0 ) { return 1; } readFiltrParams( *cfg, filtrParams, in4_blk0.b0.satId ); // для автоматического удаления данных по окончанию работы TAutoPtr<short> a_in_data(in_data); TAutoPtr<short> a_in2_data(in2_data); TAutoPtr<short> a_in3_data(in3_data); TAutoPtr<short> a_in4_data(in4_data); TAutoPtr<short> a_in5_data(in5_data); // для результата out_data = new short[length]; TAutoPtr<short> a_out_data(out_data); out_blk0 = in_blk0; int *filtr_stat = new int[N_MASK_VALUE]; TAutoPtr<int> a_filtr_stat(filtr_stat); for( int i = 0; i < N_MASK_VALUE; i++ ) { filtr_stat[i] = 0; } logfile->info( "фильтрация облачности" ); try { // собственно фильтрация int res = TFiltr::filtr_processing( filtrParams, in_blk0, in_data, in2_blk0, in2_data, in3_blk0, in3_data, in4_blk0, in4_data, in5_blk0, in5_data, out_blk0, out_data, filtr_stat); if( res != 0 ) { return 1; } // фильтрация завершена } catch (TRequestExc& e) { logfile->error( e.text() ); return 1; } if( filtrParams.stat_flag ) { printStats( filtr_stat ); } logfile->info( "коррекция нулевого блока" ); if( correctData( out_data, out_blk0 ) != 0 ) { return 1; } logfile->info( "запись результатов фильтрации" ); if( writeFileNOAA( outputFileName, out_blk0, out_data, out_blk0.totalFrameNum * out_blk0.totalPixNum ) != 0 ) { return 1; } logfile->info( "" ); logfile->info( "работа программы завершена успешно !" ); } // Для того, чтобы был вызван деструктор logfile return 0; }
int Initialize() { char str[100]; char strl[100]; char strr[100]; char tmp[256]; wchar_t wtmp[256]; int r; preloadStringsA(); DrawString(BOT_SCREEN, strings[STR_INITIALIZING], FONT_WIDTH, SCREEN_HEIGHT-FONT_HEIGHT, WHITE, BLACK); if(FSInit()){ DrawString(BOT_SCREEN, strings[STR_LOADING], BOT_SCREEN_WIDTH/2, SCREEN_HEIGHT-FONT_HEIGHT, WHITE, BLACK); }else{ DrawString(BOT_SCREEN, strings[STR_FAILED], BOT_SCREEN_WIDTH/2, SCREEN_HEIGHT-FONT_HEIGHT, RED, BLACK); return 1; } LoadFont(); if (fontLoaded){ swprintf(wtmp, sizeof(wtmp)/sizeof(wtmp[0]), strings[STR_ERROR_OPENING], fontpath); DrawString(BOT_SCREEN, wtmp, FONT_WIDTH, SCREEN_HEIGHT-FONT_HEIGHT*2, RED, BLACK); }else{ preloadStringsU(); } //Console Stuff ConsoleSetXY(15, 20); ConsoleSetWH(BOT_SCREEN_WIDTH-30, SCREEN_HEIGHT-80); ConsoleSetBorderColor(BLUE); ConsoleSetTextColor(RGB(0, 141, 197)); ConsoleSetBackgroundColor(TRANSPARENT); ConsoleSetSpecialColor(BLUE); ConsoleSetSpacing(2); ConsoleSetBorderWidth(3); //Check that the data is installed f_mkdir("rxTools"); f_mkdir("rxTools/nand"); InstallConfigData(); readCfg(); if (fontLoaded) cfgs[CFG_LANG].val.s = cfgLang; r = loadStrings(); if (r) { sprintf(tmp, "%s/%s", langPath, cfgs[CFG_LANG].val.s); swprintf(wtmp, sizeof(wtmp)/sizeof(wtmp[0]), strings[STR_ERROR_OPENING], tmp); DrawString(BOT_SCREEN, wtmp, FONT_WIDTH, SCREEN_HEIGHT-FONT_HEIGHT*3, RED, BLACK); } sprintf(str, "/rxTools/Theme/%u/TOP.bin", cfgs[CFG_THEME].val.i); sprintf(strl, "/rxTools/Theme/%u/TOPL.bin", cfgs[CFG_THEME].val.i); sprintf(strr, "/rxTools/Theme/%u/TOPR.bin", cfgs[CFG_THEME].val.i); if (cfgs[CFG_3D].val.i) DrawTopSplash(str, strl, strr); else DrawTopSplash(str, str, str); if (!cfgs[CFG_GUI].val.i) { if(cfgs[CFG_SILENT].val.i) { sprintf(str, "/rxTools/Theme/%u/boot.bin", cfgs[CFG_THEME].val.i); DrawBottomSplash(str); for (int i = 0; i < 0x333333 * 2; i++){ uint32_t pad = GetInput(); if (pad & BUTTON_R1 && i > 0x333333) goto rxTools_boot; } } else { ConsoleInit(); ConsoleSetTitle(strings[STR_AUTOBOOT]); print(strings[STR_HOLD_BUTTON_ACTION], strings[STR_BUTTON_R], strings[STR_OPEN_MENU]); ConsoleShow(); for (int i = 0; i < 0x333333 * 6; i++){ uint32_t pad = GetInput(); if (pad & BUTTON_R1 && i > 0x333333) goto rxTools_boot; } } rxMode(1); } rxTools_boot: sprintf(str, "/rxTools/Theme/%u/TOP.bin", cfgs[CFG_THEME].val.i); sprintf(strl, "/rxTools/Theme/%u/TOPL.bin", cfgs[CFG_THEME].val.i); sprintf(strr, "/rxTools/Theme/%u/TOPR.bin", cfgs[CFG_THEME].val.i); if (cfgs[CFG_3D].val.i) DrawTopSplash(str, strl, strr); else DrawTopSplash(str, str, str); return 0; }
connectDialog::connectDialog(QWidget *parent) : QWidget(parent) { readCfg(); setUi(); connect(cancelBtn,SIGNAL(clicked(bool)),this,SLOT(close())); }
__attribute__((section(".text.start"), noreturn)) void _start() { static const TCHAR fontPath[] = _T("") SYS_PATH "/" FONT_NAME; void *fontBuf; UINT btr, br; int r; FIL f; // Enable TMIO IRQ *(volatile uint32_t *)0x10001000 = 0x00010000; preloadStringsA(); if (!FSInit()) { DrawString(BOT_SCREEN, strings[STR_FAILED], BOT_SCREEN_WIDTH / 2, SCREEN_HEIGHT - FONT_HEIGHT, RED, BLACK); while (1); } /* set_loglevel(ll_info); log(ll_info, "Initializing rxTools..."); */ setConsole(); fontIsLoaded = 0; r = f_open(&f, fontPath, FA_READ); if (r == FR_OK) { btr = f_size(&f); fontBuf = __builtin_alloca(btr); r = f_read(&f, fontBuf, btr, &br); if (r == FR_OK) fontIsLoaded = 1; f_close(&f); fontaddr = fontBuf; } if (fontIsLoaded) preloadStringsU(); else warn(L"Failed to load " FONT_NAME ": %d\n", r); install(); readCfg(); r = loadStrings(); if (r) warn(L"Failed to load strings: %d\n", r); drawTop(); if (!cfgs[CFG_GUI].val.i && HID_STATE & BUTTON_L1) rxMode(cfgs[CFG_ABSYSN].val.i ? 0 : 1); if (sysver < 7) { r = initKeyX(); if (r != FR_OK) warn(L"Failed to load key X for slot 0x25\n" " Code: %d\n" " If your firmware version is less\n" " than 7.X, some titles decryption\n" " will fail, and some EmuNANDs\n" " will not boot.\n", r); } if (warned) { warn(strings[STR_PRESS_BUTTON_ACTION], strings[STR_BUTTON_A], strings[STR_CONTINUE]); WaitForButton(BUTTON_A); } OpenAnimation(); MenuInit(&MainMenu); MenuShow(); mainLoop(); }
int Initialize() { char str[100]; char strl[100]; char strr[100]; char tmp[256]; wchar_t wtmp[256]; int r; preloadStringsA(); //Show error if FSInit is not successfull if (!FSInit()){ DrawString(BOT_SCREEN, strings[STR_FAILED], BOT_SCREEN_WIDTH / 2, SCREEN_HEIGHT - FONT_HEIGHT, RED, BLACK); return 1; } /* Set log level here for code debug/trace */ /* set_loglevel(ll_info); log(ll_info, "Initializing rxTools..."); */ //Load the font LoadFont(); if (fontLoaded){ swprintf(wtmp, sizeof(wtmp) / sizeof(wtmp[0]), strings[STR_ERROR_OPENING], fontpath); DrawString(BOT_SCREEN, wtmp, FONT_WIDTH, SCREEN_HEIGHT - FONT_HEIGHT * 2, RED, BLACK); } else{ preloadStringsU(); } //Console Stuff ConsoleSetXY(15, 20); ConsoleSetWH(BOT_SCREEN_WIDTH - 30, SCREEN_HEIGHT - 80); ConsoleSetBorderColor(BLUE); ConsoleSetTextColor(RGB(0, 141, 197)); ConsoleSetBackgroundColor(TRANSPARENT); ConsoleSetSpecialColor(BLUE); ConsoleSetSpacing(2); ConsoleSetBorderWidth(3); //Check that the data is installed f_mkdir("rxTools"); f_mkdir("rxTools/nand"); InstallConfigData(); readCfg(); //Load strings if (fontLoaded) cfgs[CFG_LANG].val.s = cfgLang; r = loadStrings(); if (r) { sprintf(tmp, "%s/%s", langPath, cfgs[CFG_LANG].val.s); swprintf(wtmp, sizeof(wtmp) / sizeof(wtmp[0]), strings[STR_ERROR_OPENING], tmp); DrawString(BOT_SCREEN, wtmp, FONT_WIDTH, SCREEN_HEIGHT - FONT_HEIGHT * 3, RED, BLACK); } //Draw the top screen splash sprintf(str, "/rxTools/Theme/%u/TOP.bin", cfgs[CFG_THEME].val.i); sprintf(strl, "/rxTools/Theme/%u/TOPL.bin", cfgs[CFG_THEME].val.i); sprintf(strr, "/rxTools/Theme/%u/TOPR.bin", cfgs[CFG_THEME].val.i); if (cfgs[CFG_3D].val.i) DrawTopSplash(str, strl, strr); else DrawTopSplash(str, str, str); //If the GUI is not forced, show it only if L is hold, else directly boot rxMode (sys or emu) if (!cfgs[CFG_GUI].val.i) { if ((~HID_STATE) & BUTTON_L1) return 0; if (cfgs[CFG_ABSYSN].val.i) rxMode(0); else rxMode(1); } return 0; //Boot rxTools menu }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), mSettings(new QSettings(this)), mSavePath(""), mProgressBar(new QProgressBar(this)), mStatusBar(new QStatusBar(this)), mToolBar(new QToolBar(this)), mMenuBar(new QMenuBar(this)), mTabWidget(new QTabWidget(this)), // Menus mFileMenu(new QMenu(tr("File"), this)), mEditMenu(new QMenu(tr("Edit"), this)), mToolsMenu(new QMenu(tr("Tools"), this)), mHelpMenu(new QMenu(tr("Help"), this)), //Actions mActionExit(new QAction(QP_ICON("application-exit"), tr("Exit"), this)), mActionOpen(new QAction(QP_ICON("document-open"),tr("Open"), this)), mActionSave(new QAction(QP_ICON("document-save"),tr("Save"), this)), mActionSaveAs(new QAction(QP_ICON("document-save-as"),tr("Save As"), this)), mActionPrint(new QAction(QP_ICON("document-print"),tr("Print"), this)), mActionClear(new QAction(QP_ICON("edit-clear"), tr("Clear"), this)), mActionUndo(new QAction(QP_ICON("edit-undo"),tr("Undo"), this)), mActionRedo(new QAction(QP_ICON("edit-redo"),tr("Redo"), this)), mActionSwap(new QAction(QP_ICON("system-switch-user"), tr("Swap"), this)), mActionOptions(new QAction(QP_ICON("configure"), tr("Options"), this)), mActionAbout(new QAction(QIcon::fromTheme("help-about"), tr("About"), this)), mActionAboutQt(new QAction(tr("About Qt"), this)), mTranslationWidget(new QPTranslationWidget(this)), mDictionaryWidget(new DictionaryWidget(this)), mSettingsDialog(new Config(this)), mPluginsConfig(new PluginsConfig), mTranslatorsConfig(new QPTranslatorsConfig(this)), mLanguageConfig(new LanguageConfig(this)), mDictionaryConfig(new DictionaryConfig(this)), mCommonConfig(new CommonConfig(this)) { setWindowTitle(qApp->applicationName()); mActionOpen->setShortcut(QKeySequence("Ctrl+O")); mActionSave->setShortcut(QKeySequence("Ctrl+S")); mActionSaveAs->setShortcut(QKeySequence("Ctrl+Shift+S")); mActionPrint->setShortcut(QKeySequence("Ctrl+P")); mActionExit->setShortcut(QKeySequence("Ctrl+Q")); mActionUndo->setShortcut(QKeySequence("Ctrl+U")); mActionRedo->setShortcut(QKeySequence("Ctrl+R")); mActionSwap->setShortcut(QKeySequence("Ctrl+Alt+S")); mFileMenu->addAction(mActionOpen); mFileMenu->addSeparator(); mFileMenu->addAction(mActionSave); mFileMenu->addAction(mActionSaveAs); mFileMenu->addAction(mActionPrint); mFileMenu->addSeparator(); mFileMenu->addAction(mActionExit); mEditMenu->addAction(mActionClear); mEditMenu->addSeparator(); mEditMenu->addAction(mActionUndo); mEditMenu->addAction(mActionRedo); mEditMenu->addAction(mActionSwap); mEditMenu->addSeparator(); mEditMenu->addAction(mActionOptions); mHelpMenu->addAction(mActionAbout); mHelpMenu->addAction(mActionAboutQt); mMenuBar->addMenu(mFileMenu); mMenuBar->addMenu(mEditMenu); mMenuBar->addMenu(mHelpMenu); mToolBar->addAction(mActionOpen); mToolBar->addAction(mActionSave); mToolBar->addAction(mActionSaveAs); mToolBar->addSeparator(); mToolBar->addAction(mActionClear); mToolBar->addAction(mActionUndo); mToolBar->addAction(mActionRedo); mToolBar->setMovable(false); mTabWidget->setTabPosition(QTabWidget::West); this->setCentralWidget(mTabWidget); this->setStatusBar(mStatusBar); this->setMenuBar(mMenuBar); mProgressBar->setMaximum(0); mProgressBar->setMinimum(0); mProgressBar->setValue(0); mStatusBar->addPermanentWidget(mProgressBar); mProgressBar->setFormat(""); mProgressBar->setFixedWidth(200); stopProgressBar(); this->addToolBar(mToolBar); this->addToolBar(mDictionaryWidget->getToolBar()); this->addToolBar(mTranslationWidget->mainToolBar()); mTabWidget->insertTab(mTabWidget->count(), mTranslationWidget, QP_ICON("translator"), tr("Translator")); mTabWidget->insertTab(mTabWidget->count(), mDictionaryWidget, QP_ICON("dictionary"), tr("Dictionary")); if(mTabWidget->count() > 1) mTabWidget->setCurrentIndex(0); // Configuring settings pages mSettingsDialog->addPage(mTranslatorsConfig, "Translators"); mSettingsDialog->addPage(mDictionaryConfig, "Dictionaries"); mSettingsDialog->addPage(mLanguageConfig, "Languages"); mSettingsDialog->addPage(mPluginsConfig, "Plugins"); mSettingsDialog->addPage(mCommonConfig, "Generic"); connect(mActionOpen, SIGNAL(triggered()), this, SLOT(open())); connect(mActionPrint, SIGNAL(triggered()), this, SLOT(print())); connect(mActionSave, SIGNAL(triggered()), this, SLOT(save())); connect(mActionSaveAs, SIGNAL(triggered()), this, SLOT(saveAs())); connect(mActionExit, SIGNAL(triggered()), this, SLOT(exit())); connect(mActionClear, SIGNAL(triggered()), this, SLOT(clear())); connect(mActionUndo, SIGNAL(triggered()), this, SLOT(undo())); connect(mActionRedo, SIGNAL(triggered()), this, SLOT(redo())); connect(mActionSwap, SIGNAL(triggered()), mTranslationWidget, SLOT(swap())); connect(mActionOptions, SIGNAL(triggered()), mSettingsDialog, SLOT(show())); connect(mActionAboutQt, SIGNAL(triggered()), qApp, SLOT(aboutQt())); connect(mActionAbout, SIGNAL(triggered()), this, SLOT(about())); // Widgets , Dialogs, etc connect(mSettingsDialog, SIGNAL(accepted()), this, SLOT(onConfigAccept())); connect(mTabWidget, SIGNAL(currentChanged(int)), this, SLOT(onIndexChange(int))); connect(mTranslatorsConfig, SIGNAL(translatorIndexChanged(int)), mTranslationWidget, SLOT(setTranslatorIndex(int))); connect(mTranslationWidget, SIGNAL(translatorIndexChanged(int)), mTranslatorsConfig, SLOT(setTranslatorIndex(int))); connect(mTranslationWidget, SIGNAL(translatorIndexChanged(int)), this, SLOT(updateTranslatorConfig())); connect(mTranslationWidget, SIGNAL(message(QString)), this, SLOT(setStatusBarMessage(QString))); connect(mDictionaryWidget, SIGNAL(message(QString)), this, SLOT(setStatusBarMessage(QString))); connect(mTranslationWidget, SIGNAL(started()), this, SLOT(startProgressBar())); connect(mDictionaryWidget, SIGNAL(started()), this, SLOT(startProgressBar())); connect(mTranslationWidget, SIGNAL(finished()), this, SLOT(stopProgressBar())); connect(mDictionaryWidget, SIGNAL(finished()), this, SLOT(stopProgressBar())); mSettings->beginGroup(QP_MAINWINDOW_CONFIG_GROUP); // Read configs updateTranslatorConfig(); onConfigAccept(); mTranslationWidget->setTranslatorsNames(mTranslatorsConfig->getTranslatorsNames()); mTranslatorsConfig->read(); readCfg(); }