int main(int argc, char *argv[]) { if(argc != 5){ printf("Usage: gregions mode distance regionsfile.prof \n"); printf("\t mode = 0 -> ASCII candidates \n"); printf("\t mode = 1 -> Reference Candidates \n"); printf("example: bin/gregions 1 1.2 input/regions-score.1M.prof input/human_genome.fasta \n"); exit(0); } regions_t *regions; sequences_t *genome; seq_format_t candidatesMode = SEQ_ASCII, queriesMode = SEQ_ASCII; uint32_t mode = atof(argv[1]); float distance = atof(argv[2]); char *profileFile = argv[3], *genomeFile = argv[4]; char regionsFile[512]; FILE *fp = NULL; const uint32_t numGenomes = 1; uint32_t *h_genomePositionCandidates = NULL, *h_regionsProfiledScores = NULL; uint32_t numQueries = 0, totalSizeQueries = 0, numCandidates = 0, totalSizeCandidates = 0; if(mode == 1) candidatesMode |= SEQ_REF_POS; fp = fopen(profileFile, "rb"); if (fp == NULL) return(E_OPENING_FILE); PSA_ERROR(countRegionsProfile(fp, distance, &numQueries, &totalSizeQueries, &numCandidates, &totalSizeCandidates)); PSA_ERROR(initRegions(®ions, numQueries, numCandidates, numCandidates)); PSA_ERROR(allocateRegions(regions, distance, totalSizeQueries, queriesMode, totalSizeCandidates, candidatesMode)); h_genomePositionCandidates = (uint32_t *) malloc(numCandidates * sizeof(uint32_t)); if (h_genomePositionCandidates == NULL) PSA_ERROR(E_ALLOCATE_MEM); h_regionsProfiledScores = (uint32_t *) malloc(numCandidates * sizeof(uint32_t)); if (h_regionsProfiledScores == NULL) PSA_ERROR(E_ALLOCATE_MEM); rewind(fp); if(mode == 1) PSA_ERROR(loadRegionsProfile(fp, regions->queries->h_ASCII, regions->queries->h_size, regions->queries->h_ASCIIposition, regions->candidates->h_refPosition, regions->alignments->h_info, h_regionsProfiledScores)); else PSA_ERROR(loadRegionsProfile(fp, regions->queries->h_ASCII, regions->queries->h_size, regions->queries->h_ASCIIposition, h_genomePositionCandidates, regions->alignments->h_info, h_regionsProfiledScores)); regions->queries->formats |= queriesMode; fclose(fp); fp = fopen(genomeFile, "rb"); if (fp == NULL) return(E_OPENING_FILE); PSA_ERROR(initSequences(&genome, numGenomes)); PSA_ERROR(loadSequenceMFASTA(fp, &genome->h_size, &genome->h_ASCII, &genome->h_ASCIIposition, &genome->formats)); fclose(fp); /* recover the candidates from genome in ASCII rep */ if (mode == 1) PSA_ERROR(gatherCandidatesASCIIReference(regions, genome)); else PSA_ERROR(gatherCandidatesASCIIStream(regions, h_genomePositionCandidates, genome)); regions->candidates->formats |= candidatesMode; /* DEBUG REGIONS*/ #if defined(DEBUG) PSA_ERROR(printRegions(regions, 4, 1)); #endif if (mode == 1) sprintf(regionsFile, "%s.%u.%u.%u.ref.regions", profileFile, regions->queries->num, regions->averageSizeQuery, regions->averageCandidatesPerQuery);\ else sprintf(regionsFile, "%s.%u.%u.%u.regions", profileFile, regions->queries->num, regions->averageSizeQuery, regions->averageCandidatesPerQuery); fp = fopen(regionsFile, "wb"); if (fp == NULL) return(E_OPENING_FILE); PSA_ERROR(saveRegions(fp, regions)); fclose(fp); PSA_ERROR(freeRegions(®ions)); free(h_genomePositionCandidates); free(h_regionsProfiledScores); return (SUCCESS); }
void PreferencesDialog::init() { setWindowFlags( Qt::Window ); setModal( true ); tab = new QTabWidget(); quizPage = new QWidget(); quizLengthOptionsPanel = new QGroupBox( tr( "Length" ) ); quizLengthOptionsPanelLayout = new QVBoxLayout(); quizLengthOptionsPanel->setLayout( quizLengthOptionsPanelLayout ); revealingOptionsPanel = new QGroupBox( tr( "RevealingOrders" ) ); revealingOptionsPanel->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Maximum ) ); revealingOptionsPanelLayout = new QHBoxLayout(); revealingOptionsPanel->setLayout( revealingOptionsPanelLayout ); sequencesViewPanel = new QWidget(); sequencesViewPanelLayout = new QVBoxLayout(); sequencesViewPanelLayout->setContentsMargins( 0, 10, 0, 0 ); sequencesViewPanel->setLayout( sequencesViewPanelLayout ); revealingOptionsPanelLayout->addWidget( sequencesViewPanel ); sequencesView = new QTreeWidget(); sequencesView->headerItem()->setHidden( true ); sequencesViewPanelLayout->addWidget( sequencesView ); sequencesViewButtons = new QWidget(); sequencesViewButtonsLayout = new QHBoxLayout(); sequencesViewButtonsLayout->setContentsMargins( 0, 0, 0, 0 ); sequencesViewButtons->setLayout( sequencesViewButtonsLayout ); sequencesViewPanelLayout->addWidget( sequencesViewButtons ); addSequenceButton = new QPushButton( "+" ); //sequencesViewButtonsLayout->addStretch(); sequencesViewButtonsLayout->addWidget( addSequenceButton ); addSequenceButton->setToolTip( tr( "Add revealing sequence" ) ); connect( addSequenceButton, SIGNAL( clicked() ), this, SLOT( addSequence() ) ); removeSequenceButton = new QPushButton( "-" ); sequencesViewButtonsLayout->addWidget( removeSequenceButton ); removeSequenceButton->setToolTip( tr( "Remove revealing sequence" ) ); connect( removeSequenceButton, SIGNAL( clicked() ), this, SLOT( removeSequence() ) ); initSequences(); connect( sequencesView, SIGNAL( itemSelectionChanged() ), this, SLOT( updateUi() ) ); sequencesLabelBox = new QGroupBox( tr( "QuizWindow" ) ); sequencesLabelBoxLayout = new QVBoxLayout(); sequencesLabelBox->setLayout( sequencesLabelBoxLayout ); revealingOptionsPanelLayout->addWidget( sequencesLabelBox ); sequencesLabel = new QLabel(); sequencesLabelBoxLayout->addWidget( sequencesLabel ); sequencesLabel->setPixmap( QPixmap( ":/pics/SequenceMapLandscape.png" ) ); quizLengthSlider = new QSlider( Qt::Horizontal ); quizLengthSlider->setMinimum( 0 ); quizLengthSlider->setMaximum( TermScheduler::poolCount - 1 ); quizLengthSlider->setTickInterval( 1 ); quizLengthSlider->setTickPosition( QSlider::TicksBothSides ); quizLengthSlider->setFocusPolicy( Qt::StrongFocus ); quizLengthOptionsPanelLayout->addWidget( quizLengthSlider ); quizLengthLabelsPanel = new QWidget(); quizLengthLabelsPanelLayout = new QHBoxLayout(); quizLengthLabelsPanelLayout->setContentsMargins( 0, 0, 0, 0 ); quizLengthLabelsPanel->setLayout( quizLengthLabelsPanelLayout ); quizLengthOptionsPanelLayout->addWidget( quizLengthLabelsPanel ); quizLengthShortestLabel = new QLabel( tr( "QuizLengthShortest" ) ); quizLengthMediumLabel = new QLabel( tr( "QuizLengthMedium" ) ); quizLengthMediumLabel->setAlignment( Qt::AlignCenter ); quizLengthLongestLabel = new QLabel( tr( "QuizLengthLongest" ) ); quizLengthLongestLabel->setAlignment( Qt::AlignRight ); quizLengthLabelsPanelLayout->addWidget( quizLengthShortestLabel ); quizLengthLabelsPanelLayout->addWidget( quizLengthMediumLabel ); quizLengthLabelsPanelLayout->addWidget( quizLengthLongestLabel ); quizLengthSlider->setValue( prefs->getQuizLength() ); quizLayout = new QVBoxLayout(); quizPage->setLayout( quizLayout ); quizLayout->addWidget( quizLengthOptionsPanel ); quizLayout->addWidget( revealingOptionsPanel ); quizLayout->addStretch(); fontPage = new QWidget(); fontsPanel = new QWidget(); fontsPanelLayout = new QVBoxLayout(); fontsPanelLayout->setContentsMargins( 0, 0, 0, 0 ); fontsPanel->setLayout( fontsPanelLayout ); labelsFontPanel = new QWidget(); labelsFontPanelLayout = new QHBoxLayout(); labelsFontPanelLayout->setContentsMargins( 0, 0, 0, 0 ); labelsFontPanel->setLayout( labelsFontPanelLayout ); fontsPanelLayout->addWidget( labelsFontPanel ); labelsFontLabel = new QLabel( tr( "LabelsFont" ) ); labelsFontFamilyComboBox = new QComboBox(); labelsFontSizeComboBox = new QComboBox(); resetDefaultLabelsFontButton = new QPushButton( tr( "ResetDefaultValue" ) ); connect( resetDefaultLabelsFontButton, SIGNAL( clicked() ), this, SLOT( resetDefaultLabelsFont() ) ); labelsFontPanelLayout->addWidget( labelsFontLabel ); labelsFontPanelLayout->addWidget( labelsFontFamilyComboBox ); labelsFontPanelLayout->addWidget( labelsFontSizeComboBox ); labelsFontPanelLayout->addWidget( resetDefaultLabelsFontButton ); initFontFamilyValues( labelsFontFamilyComboBox ); selectFontFamily( labelsFontFamilyComboBox, prefs->getLabelsFontFamily() ); initFontSizeValues( labelsFontSizeComboBox ); selectFontSize( labelsFontSizeComboBox, prefs->getLabelsFontSizeModifier() ); fontPanel = new QWidget(); fontPanelLayout = new QHBoxLayout(); fontPanelLayout->setContentsMargins( 0, 0, 0, 0 ); fontPanel->setLayout( fontPanelLayout ); fontsPanelLayout->addWidget( fontPanel ); fontLabel = new QLabel( tr( "FieldsFont" ) ); fontFamilyComboBox = new QComboBox(); fontSizeComboBox = new QComboBox(); resetDefaultFontButton = new QPushButton( tr( "ResetDefaultValue" ) ); connect( resetDefaultFontButton, SIGNAL( clicked() ), this, SLOT( resetDefaultFont() ) ); fontPanelLayout->addWidget( fontLabel ); fontPanelLayout->addWidget( fontFamilyComboBox); fontPanelLayout->addWidget( fontSizeComboBox); fontPanelLayout->addWidget( resetDefaultFontButton ); initFontFamilyValues( fontFamilyComboBox ); selectFontFamily( fontFamilyComboBox, prefs->getFontFamily() ); initFontSizeValues( fontSizeComboBox ); selectFontSize( fontSizeComboBox, prefs->getFontSizeModifier() ); fontOverridesPanel = new QGroupBox( tr( "LanguageFontOverrides" ) ); fontOverridesPanelLayout = new QVBoxLayout(); fontOverridesPanel->setLayout( fontOverridesPanelLayout ); fontsPanelLayout->addWidget( fontOverridesPanel ); fontOverridesScrollView = new QScrollArea(); fontOverridesScrollView->setWidgetResizable( true ); fontOverridesPanelLayout->addWidget( fontOverridesScrollView ); fontOverridesBox = new QWidget(); fontOverridesBoxLayout = new QVBoxLayout(); fontOverridesBox->setLayout( fontOverridesBoxLayout ); initFontOverrides(); fontOverridesScrollView->setWidget( fontOverridesBox ); fontPageLayout = new QVBoxLayout(); fontPageLayout->addWidget( fontsPanel ); fontPageLayout->addStretch(); fontPage->setLayout( fontPageLayout ); #if defined(Q_WS_HILDON) interfacePage = new QScrollArea(); //interfacePage->setWidgetResizable( true ); interfacePageBox = new QWidget(); #else interfacePage = new QWidget(); #endif miscInterfaceOptionsPanel = new QWidget(); miscInterfaceOptionsPanelLayout = new QGridLayout(); miscInterfaceOptionsPanelLayout->setContentsMargins( 0, 0, 0, 0 ); miscInterfaceOptionsPanel->setLayout( miscInterfaceOptionsPanelLayout ); digraphPanel = new QGroupBox( tr( "BuiltInSupportForAccents" ) ); digraphPanelLayout = new QVBoxLayout(); digraphPanel->setLayout( digraphPanelLayout ); digraphCheckBox = new QCheckBox( tr( "DigraphesEnabled" ) ); digraphCheckBox->setCheckState( prefs->isDigraphEnabled() ? Qt::Checked : Qt::Unchecked ); digraphPanelLayout->addWidget( digraphCheckBox ); hideQuizButtonPanel = new QGroupBox( tr( "QuizOptions" ) ); hideQuizButtonPanelLayout = new QVBoxLayout(); hideQuizButtonPanel->setLayout( hideQuizButtonPanelLayout ); hideQuizButtonCheckBox = new QCheckBox( tr( "hideQuizButtons" ) ); hideQuizButtonCheckBox->setCheckState( prefs->areQuizButtonsHidden() ? Qt::Checked : Qt::Unchecked ); hideQuizButtonPanelLayout->addWidget( hideQuizButtonCheckBox ); showAltTextInTermListPanel = new QGroupBox( tr( "GlossaryManagerOptions" ) ); showAltTextInTermListPanelLayout = new QVBoxLayout(); showAltTextInTermListPanel->setLayout( showAltTextInTermListPanelLayout ); showAltTextInTermListCheckBox = new QCheckBox( tr( "ShowAltInTermList" ) ); showAltTextInTermListCheckBox->setChecked( prefs->isAltInTermListShown() ? Qt::Checked : Qt::Unchecked ); showAltTextInTermListPanelLayout->addWidget( showAltTextInTermListCheckBox ); miscInterfaceOptionsPanelLayout->addWidget( digraphPanel, 0, 0 ); miscInterfaceOptionsPanelLayout->addWidget( hideQuizButtonPanel, 1, 0 ); miscInterfaceOptionsPanelLayout->addWidget( showAltTextInTermListPanel, 2, 0 ); keyboardAccelPanel = new QGroupBox( tr( "Keyboard Accelerators" ) ); keyboardAccelPanelLayout = new QVBoxLayout(); keyboardAccelPanel->setLayout( keyboardAccelPanelLayout ); keyboardAccelListView = new QTreeWidget(); keyboardAccelListView->setColumnCount( 2 ); keyboardAccelListView->setMinimumWidth( 700 ); QStringList headerLabels; headerLabels << tr( "Action" ) << tr( "Key" ); keyboardAccelListView->setHeaderLabels( headerLabels ); keyboardAccelListView->header()->setResizeMode( 0, QHeaderView::Stretch ); keyboardAccelListView->setIconSize( QSize( 24, 24 ) ); int actionCount = sizeof( action ) / sizeof( QAction* ); for( int i = actionCount - 1; i >= 0; i-- ) { KeyActionListViewItem* actionItem = new KeyActionListViewItem( keyboardAccelListView, action[ i ], (Action)i ); actionItem->setText( 0, action[ i ]->text() ); actionItem->setIcon( 0, action[ i ]->icon() ); keyboardAccelListView->addTopLevelItem( actionItem ); } connect( keyboardAccelListView, SIGNAL( currentItemChanged( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT( cancelSetAccelKey() ) ); connect( tab, SIGNAL( currentChanged( int ) ), this, SLOT( cancelSetAccelKey() ) ); keyboardAccelPanelLayout->addWidget( keyboardAccelListView ); keyboardAccelButtonPanel = new QWidget(); keyboardAccelPanelLayout->addWidget( keyboardAccelButtonPanel ); clearAccelKeyButton = new QPushButton( tr( "Clear key" ) ); setAccelKeyButton = new QPushButton( tr( "Set key" ) ); resetAccelKeyButton = new QPushButton( tr( "Reset key" ) ); keyboardAccelButtonPanelLayout = new QHBoxLayout( keyboardAccelButtonPanel ); keyboardAccelButtonPanelLayout->setContentsMargins( 0, 0, 0, 0 ); keyboardAccelButtonPanelLayout->addStretch(); keyboardAccelButtonPanelLayout->addWidget( clearAccelKeyButton ); keyboardAccelButtonPanelLayout->addWidget( setAccelKeyButton ); keyboardAccelButtonPanelLayout->addWidget( resetAccelKeyButton ); connect( clearAccelKeyButton, SIGNAL( clicked() ), this, SLOT( clearAccelKey() ) ); connect( setAccelKeyButton, SIGNAL( clicked() ), this, SLOT( setAccelKey() ) ); connect( resetAccelKeyButton, SIGNAL( clicked() ), this, SLOT( resetAccelKey() ) ); interfacePageLayout = new QVBoxLayout(); interfacePageLayout->addWidget( miscInterfaceOptionsPanel ); interfacePageLayout->addWidget( keyboardAccelPanel, 1 ); #if defined(Q_WS_HILDON) interfacePageBox->setLayout( interfacePageLayout ); interfacePage->setWidget( interfacePageBox ); #else interfacePage->setLayout( interfacePageLayout ); #endif languagePage = new QWidget(); languagesPanel = new QWidget(); languagesPanelLayout = new QVBoxLayout(); languagesPanelLayout->setContentsMargins( 0, 0, 0, 0 ); languagesPanel->setLayout( languagesPanelLayout ); studyLanguagesListView = new QTreeWidget(); studyLanguagesListView->setColumnCount( 1 ); languagesPanelLayout->addWidget( studyLanguagesListView ); studyLanguagesListView->setHeaderLabel( tr( "StudyLanguages" ) ); initStudyLanguageValues(); connect( studyLanguagesListView, SIGNAL( itemChanged( QTreeWidgetItem*, int ) ), this, SLOT( updateFontOverride( QTreeWidgetItem*, int ) ) ); languageLayout = new QVBoxLayout(); languagePage->setLayout( languageLayout ); languageLayout->addWidget( languagesPanel, 1 ); tab->addTab( quizPage, tr( "Quiz" ) ); tab->addTab( languagePage, tr( "Languages" ) ); tab->addTab( fontPage, tr( "Fonts" ) ); tab->addTab( interfacePage, tr( "Interface" ) ); bottomButtonsPanel = new QWidget(); bottomButtonsPanelLayout = new QHBoxLayout(); bottomButtonsPanelLayout->setContentsMargins( 0, 0, 0, 0 ); bottomButtonsPanel->setLayout( bottomButtonsPanelLayout ); acceptButton = new QPushButton( tr( "Ok" ) ); connect( acceptButton, SIGNAL( clicked() ), this, SLOT( accept() ) ); cancelButton = new QPushButton( tr( "Cancel" ) ); connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) ); bottomButtonsPanelLayout->addStretch(); bottomButtonsPanelLayout->addWidget( acceptButton ); bottomButtonsPanelLayout->addWidget( cancelButton ); mainLayout = new QVBoxLayout(); mainLayout->addWidget( tab, 1 ); mainLayout->addWidget( bottomButtonsPanel ); setLayout( mainLayout ); setWindowTitle( tr( "Preferences..." ) ); updateUi(); }
void PreferencesDialog::init() { tab = new QTabWidget( this, "Tab" ); quizPage = new QScrollView( tab, "QuizPage" ); quizPage->setResizePolicy( QScrollView::AutoOneFit ); quizPageBox = new QWidget( quizPage->viewport(), "QuizPage" ); quizPage->addChild( quizPageBox ); quizAlgorithmsPanel = new QWidget( quizPageBox, "QuizAlgorithmsPanel" ); quizAlgorithmsPanelLayout = new QHBoxLayout( quizAlgorithmsPanel ); quizAlgorithmOptionsPanel = new QVButtonGroup( tr( "Algorithm" ), quizAlgorithmsPanel, "QuizAlgorithmOptionsPanel" ); quizLengthOptionsPanel = new QVGroupBox( tr( "Length" ), quizAlgorithmsPanel, "QuizLengthOptionsPanel" ); quizAlgorithmsPanelLayout->addWidget( quizAlgorithmOptionsPanel ); quizAlgorithmsPanelLayout->addWidget( quizLengthOptionsPanel, 1 ); quizCharacterImageOptionsPanel = new QHGroupBox( tr( "Images associated to characters" ), quizPageBox, "QuizCharacterImageOptions" ); quizCharacterImageLocationLabel = new QLabel( tr( "CharacterImageLocation" ), quizCharacterImageOptionsPanel ); quizCharacterImageLocationField = new QLineEdit( quizCharacterImageOptionsPanel ); quizCharacterImageLocationField->setText( prefs->getQuizCharacterImageLocation() ); quizCharacterImageLocationSetButton = new QPushButton( tr( "SetCharacterImageLocation" ), quizCharacterImageOptionsPanel ); connect( quizCharacterImageLocationSetButton, SIGNAL( clicked() ), this, SLOT( setCharacterImageLocation() ) ); quizCharacterImageLocationClearButton = new QPushButton( tr( "ClearCharacterImageLocation" ), quizCharacterImageOptionsPanel ); connect( quizCharacterImageLocationClearButton, SIGNAL( clicked() ), this, SLOT( clearCharacterImageLocation() ) ); quizCharacterImageOptionsPanel->addSpace( 10 ); quizCharacterImageTypeCheckbox = new QCheckBox( tr( "IsCharacterImageAnimated" ), quizCharacterImageOptionsPanel ); quizCharacterImageTypeCheckbox->setChecked( prefs->isQuizCharacterImagesAnimated() ); revealingOptionsPanel = new QHGroupBox( tr( "RevealingOrders" ), quizPageBox, "RevealingOptionsPanel" ); sequencesViewPanel = new QVBox( revealingOptionsPanel ); sequencesViewPanel->setSpacing( 2 ); sequencesView = new SmartListView( sequencesViewPanel, "SequencesView" ); sequencesView->addColumn( QString::null ); sequencesView->header()->hide(); sequencesViewButtons = new QHBox( sequencesViewPanel ); sequencesViewButtons->setSpacing( 2 ); //sequencesViewButtonsFiller = new QWidget( sequencesViewButtons, "SequenceViewButtonsFiller" ); addSequenceButton = new QPushButton( "+", sequencesViewButtons, "AddSequenceButton" ); QToolTip::add( addSequenceButton, tr( "Add revealing sequence" ) ); connect( addSequenceButton, SIGNAL( clicked() ), this, SLOT( addSequence() ) ); removeSequenceButton = new QPushButton( "-", sequencesViewButtons, "RemoveSequenceButton" ); QToolTip::add( removeSequenceButton, tr( "Remove revealing sequence" ) ); connect( removeSequenceButton, SIGNAL( clicked() ), this, SLOT( removeSequence() ) ); //sequencesViewButtons->setStretchFactor( sequencesViewButtonsFiller, 1 ); initSequences(); connect( sequencesView, SIGNAL( selectionChanged( QListViewItem* ) ), this, SLOT( updateUi() ) ); revealingOptionsPanel->addSpace( 6 ); sequencesLabelBox = new QVGroupBox( tr( "QuizWindow" ), revealingOptionsPanel, "SequencesLabelBox" ); sequencesLabel = new QLabel( sequencesLabelBox ); sequencesLabel->setPixmap( Resource::loadPixmap( "SequenceMapLandscape" ) ); sequencesViewPanel->setMaximumHeight( sequencesLabelBox->sizeHint().height() ); quizAlgoOriginalRadioButton = new QRadioButton( tr( "OriginalQuizAlgorithm" ), quizAlgorithmOptionsPanel ); quizAlgoSuperMemo2RadioButton = new QRadioButton( tr( "SuperMemo2Algorithm" ), quizAlgorithmOptionsPanel ); if( prefs->getQuizAlgorithm() == Preferences::ORIGINAL ) quizAlgoOriginalRadioButton->setChecked( true ); else if( prefs->getQuizAlgorithm() == Preferences::SUPERMEMO2 ) quizAlgoSuperMemo2RadioButton->setChecked( true ); quizLengthSlider = new QSlider( 0, OriginalQuiz::poolCount - 1, 1, 1, QSlider::Horizontal, quizLengthOptionsPanel, "QuizLengthSlider" ); quizLengthLabelsPanel = new QHBox( quizLengthOptionsPanel, "QuizLengthLabelsPanel" ); quizLengthShortestLabel = new QLabel( tr( "QuizLengthShortest" ), quizLengthLabelsPanel, "QuizLengthShortestLabel" ); quizLengthMediumLabel = new QLabel( tr( "QuizLengthMedium" ), quizLengthLabelsPanel, "QuizLengthMediumLabel" ); quizLengthMediumLabel->setAlignment( QLabel::AlignCenter ); quizLengthLongestLabel = new QLabel( tr( "QuizLengthLongest" ), quizLengthLabelsPanel, "QuizLengthLongestLabel" ); quizLengthLongestLabel->setAlignment( QLabel::AlignRight ); quizLengthSlider->setValue( prefs->getQuizLength() ); quizPageFiller = new QWidget( quizPageBox, "QuizPageFiller" ); quizLayout = new QVBoxLayout( quizPageBox ); quizLayout->addWidget( quizAlgorithmsPanel ); quizLayout->addWidget( quizCharacterImageOptionsPanel ); quizLayout->addWidget( revealingOptionsPanel ); quizLayout->addWidget( quizPageFiller, 1 ); fontPage = new QWidget( tab, "FontPage" ); //fontsPanel = new QVGroupBox( tr( "Fonts" ), fontPage, "FontsPanel" ); fontsPanel = new QVBox( fontPage, "FontsPanel" ); fontsPanel->setSpacing( 2 ); labelsFontPanel = new QHBox( fontsPanel, "LabelsFontPanel" ); labelsFontPanel->setSpacing( 2 ); labelsFontLabel = new QLabel( tr( "LabelsFont" ), labelsFontPanel, "LabelsFontLabel" ); labelsFontFamilyComboBox = new QComboBox( labelsFontPanel, "LabelsFontFamilyComboBox" ); labelsFontSizeComboBox = new QComboBox( labelsFontPanel, "LabelsFontSizeComboBox" ); resetDefaultLabelsFontButton = new QPushButton( tr( "ResetDefaultValue" ), labelsFontPanel, "ResetDefaultLabelsFontButton" ); connect( resetDefaultLabelsFontButton, SIGNAL( clicked() ), this, SLOT( resetDefaultLabelsFont() ) ); initFontFamilyValues( labelsFontFamilyComboBox ); selectFontFamily( labelsFontFamilyComboBox, prefs->getLabelsFontFamily() ); initFontSizeValues( labelsFontSizeComboBox ); selectFontSize( labelsFontSizeComboBox, prefs->getLabelsFontSizeModifier() ); fontPanel = new QHBox( fontsPanel, "FontPanel" ); fontPanel->setSpacing( 2 ); fontLabel = new QLabel( tr( "FieldsFont" ), fontPanel, "FontLabel" ); fontFamilyComboBox = new QComboBox( fontPanel, "FontFamilyComboBox" ); fontSizeComboBox = new QComboBox( fontPanel, "FontSizeComboBox" ); resetDefaultFontButton = new QPushButton( tr( "ResetDefaultValue" ), fontPanel, "ResetDefaultFontButton" ); connect( resetDefaultFontButton, SIGNAL( clicked() ), this, SLOT( resetDefaultFont() ) ); initFontFamilyValues( fontFamilyComboBox ); selectFontFamily( fontFamilyComboBox, prefs->getFontFamily() ); initFontSizeValues( fontSizeComboBox ); selectFontSize( fontSizeComboBox, prefs->getFontSizeModifier() ); fontOverridesPanel = new QVGroupBox( tr( "LanguageFontOverrides" ), fontsPanel, "LanguageFontsPanel" ); fontOverridesScrollView = new QScrollView( fontOverridesPanel, "FontOverridesScrollView" ); fontOverridesScrollView->setResizePolicy( QScrollView::AutoOneFit ); fontOverridesBox = new QWidget( fontOverridesScrollView->viewport() ); fontOverridesBoxLayout = new QVBoxLayout( fontOverridesBox ); fontOverridesScrollView->addChild( fontOverridesBox ); initFontOverrides(); fontPageFiller = new QWidget( fontPage, "FontPageFiller" ); fontPageLayout = new QVBoxLayout( fontPage ); fontPageLayout->setSpacing( 2 ); fontPageLayout->addWidget( fontsPanel ); fontPageLayout->addWidget( fontPageFiller, 1 ); interfacePage = new QWidget( tab, "InterfacePage" ); miscInterfaceOptionsPanel = new QGrid( 2, interfacePage, "MiscInterfaceOptionsPanel" ); digraphPanel = new QVGroupBox( tr( "BuiltInSupportForAccents" ), miscInterfaceOptionsPanel, "DigraphPanel" ); digraphCheckBox = new QCheckBox( tr( "DigraphesEnabled" ), digraphPanel, "DigraphCheckBox" ); digraphCheckBox->setChecked( prefs->isDigraphEnabled() ); hideQuizButtonPanel = new QVGroupBox( tr( "QuizOptions" ), miscInterfaceOptionsPanel, "HideQuizButtonPanel" ); hideQuizButtonCheckBox = new QCheckBox( tr( "hideQuizButtons" ), hideQuizButtonPanel, "HideQuizButtonCheckBox" ); hideQuizButtonCheckBox->setChecked( prefs->areQuizButtonsHidden() ); showAltTextInTermListPanel = new QVGroupBox( tr( "GlossaryManagerOptions" ), miscInterfaceOptionsPanel, "ShowAltTextInTermListPanel" ); showAltTextInTermListCheckBox = new QCheckBox( tr( "ShowAltInTermList" ), showAltTextInTermListPanel, "ShowAltInTermListCheckBox" ); showAltTextInTermListCheckBox->setChecked( prefs->isAltInTermListShown() ); keyboardAccelPanel = new QVGroupBox( tr( "Keyboard Accelerators" ), interfacePage, "KeyboardAccelPanel" ); keyboardAccelListView = new SmartListView( keyboardAccelPanel, "KeyboardAccelListView" ); keyboardAccelListView->addColumn( tr( "Action" ), 280 ); keyboardAccelListView->addColumn( tr( "Key" ), 140 ); keyboardAccelListView->setSorting( -1 ); keyboardAccelListView->setAllColumnsShowFocus( true ); keyboardAccelListView->setStretchColumn( 0 ); int actionCount = sizeof( action ) / sizeof( QAction* ); for( int i = actionCount - 1; i >= 0; i-- ) { KeyActionListViewItem* actionItem = new KeyActionListViewItem( keyboardAccelListView, action[ i ], (Action)i ); actionItem->setText( 0, action[ i ]->text() ); actionItem->setPixmap( 0, action[ i ]->iconSet().pixmap() ); keyboardAccelListView->insertItem( actionItem ); } connect( keyboardAccelListView, SIGNAL( returnPressed( QListViewItem* ) ), this, SLOT( keyActionClicked( QListViewItem* ) ) ); connect( keyboardAccelListView, SIGNAL( currentChanged( QListViewItem* ) ), this, SLOT( cancelSetAccelKey() ) ); connect( tab, SIGNAL( selected( const QString& ) ), this, SLOT( cancelSetAccelKey() ) ); keyboardAccelButtonPanel = new QWidget( keyboardAccelPanel, "KeyboardAccelButtonPanel" ); keyboardAccelButtonPanelFiller = new QWidget( keyboardAccelButtonPanel, "KeyboardAccelButtonPanelFiller" ); clearAccelKeyButton = new QPushButton( tr( "Clear key" ), keyboardAccelButtonPanel ); setAccelKeyButton = new QPushButton( tr( "Set key" ), keyboardAccelButtonPanel ); resetAccelKeyButton = new QPushButton( tr( "Reset key" ), keyboardAccelButtonPanel ); keyboardAccelButtonPanelLayout = new QHBoxLayout( keyboardAccelButtonPanel ); keyboardAccelButtonPanelLayout->setSpacing( 2 ); keyboardAccelButtonPanelLayout->addWidget( keyboardAccelButtonPanelFiller, 1 ); keyboardAccelButtonPanelLayout->addWidget( clearAccelKeyButton ); keyboardAccelButtonPanelLayout->addWidget( setAccelKeyButton ); keyboardAccelButtonPanelLayout->addWidget( resetAccelKeyButton ); connect( clearAccelKeyButton, SIGNAL( clicked() ), this, SLOT( clearAccelKey() ) ); connect( setAccelKeyButton, SIGNAL( clicked() ), this, SLOT( setAccelKey() ) ); connect( resetAccelKeyButton, SIGNAL( clicked() ), this, SLOT( resetAccelKey() ) ); interfacePageFiller = new QWidget( interfacePage, "InterfacePageFiller" ); interfacePageLayout = new QVBoxLayout( interfacePage ); interfacePageLayout->setSpacing( 2 ); interfacePageLayout->addWidget( miscInterfaceOptionsPanel ); interfacePageLayout->addWidget( keyboardAccelPanel ); interfacePageLayout->addWidget( interfacePageFiller, 1 ); languagePage = new QWidget( tab, "LanguagePage" ); languagesPanel = new QVBox( languagePage, "LanguagesPanel" ); languagesPanel->setSpacing( 2 ); studyLanguagesListView = new SmartListView( languagesPanel, "StudyLanguagesListView" ); studyLanguagesListView->setAllColumnsShowFocus( true ); studyLanguagesListView->addColumn( tr( "StudyLanguages" ) ); studyLanguagesListView->setStretchColumn( 0 ); languagesPanel->setStretchFactor( studyLanguagesListView, 1 ); languageUpdateNotifier = new LanguageUpdateNotifier(); connect( languageUpdateNotifier, SIGNAL( languageAdded( const QString& ) ), this, SLOT( addFontOverride( const QString& ) ) ); connect( languageUpdateNotifier, SIGNAL( languageRemoved( const QString& ) ), this, SLOT( removeFontOverride( const QString& ) ) ); initStudyLanguageValues(); languagesRightPanel = new QWidget( languagesPanel, "LanguagesRightPanel" ); languagesRightPanelLayout = new QVBoxLayout( languagesRightPanel ); languagesRightPanelFiller = new QWidget( languagesRightPanel, "LanguageRightPanelFiller" ); languagesRightPanelLayout->addWidget( languagesRightPanelFiller, 1 ); languageLayout = new QVBoxLayout( languagePage ); languageLayout->setSpacing( 2 ); languageLayout->addWidget( languagesPanel, 1 ); tab->addTab( quizPage, tr( "Quiz" ) ); tab->addTab( languagePage, tr( "Languages" ) ); tab->addTab( fontPage, tr( "Fonts" ) ); tab->addTab( interfacePage, tr( "Interface" ) ); mainLayout = new QVBoxLayout( this ); mainLayout->addWidget( tab, 1 ); setCaption( tr( "Preferences..." ) ); updateUi(); }