void AP_Dialog_EpubExportOptions::saveDefaults() { UT_ASSERT(m_app); if (m_app == NULL) return; XAP_Prefs * pPrefs = m_app->getPrefs(); if (pPrefs == NULL) return; XAP_PrefsScheme * pPScheme = pPrefs->getCurrentScheme(); if (pPScheme == NULL) return; UT_UTF8String pref; if (m_exp_opt->bEpub2) { if (pref.byteLength()) pref += ","; pref += "EPUB2"; } if (m_exp_opt->bSplitDocument) { if (pref.byteLength()) pref += ","; pref += "split-document"; } if (m_exp_opt->bRenderMathMLToPNG) { if (pref.byteLength()) pref += ","; pref += "mathml-to-png"; } const gchar * szValue = (const gchar *) pref.utf8_str(); pPScheme->setValue(EPUB_EXPORT_SCHEME_NAME, szValue); }
/*! * This method saves the current toolbar layouts in the current preference * scheme. There are 3 generic keys. * The Number of entries ((Base Key for Nr entries)+(TB name)) * The ith ID ((Base Key for id)+(TB name)+(i)) * The ith Flag ((Base Key for flag)+(TB name)+(i)) */ bool XAP_Toolbar_Factory::saveToolbarsInCurrentScheme(void) { XAP_Prefs *pPrefs = m_pApp->getPrefs(); XAP_PrefsScheme *pScheme = pPrefs->getCurrentScheme(true); char buf[100]; XAP_Toolbar_Factory_vec * pVec = NULL; UT_uint32 numTB = m_vecTT.getItemCount(); // NO toolabrs UT_uint32 iTB,iLay; for(iTB=0; iTB< numTB;iTB++) { UT_String sTBBase = XAP_PREF_KEY_ToolbarNumEntries; pVec = (XAP_Toolbar_Factory_vec *) m_vecTT.getNthItem(iTB); const char * szCurName = pVec->getToolbarName(); // // Save Number of entries in contructed key // sTBBase +=szCurName; UT_uint32 NrEntries = pVec->getNrEntries(); UT_DEBUGMSG(("SEVIOR: Number of entries in TB %d \n",NrEntries)); sprintf(buf,"%d",NrEntries); pScheme->setValue((const gchar *)sTBBase.c_str(),(const gchar *) buf ); // // Loop through this toolbar definition and save it in the preferences // for(iLay =0; iLay< NrEntries;iLay++) { XAP_Toolbar_Factory_lt * plt = pVec->getNth_lt(iLay); sTBBase = XAP_PREF_KEY_ToolbarID; sTBBase += szCurName; // // Save id in contructed key // XAP_Toolbar_Id curId = plt->m_id; EV_Toolbar_LayoutFlags curFlag = plt->m_flags; sprintf(buf,"%d",iLay); sTBBase += buf; sprintf(buf,"%d",curId); pScheme->setValue((const gchar *) sTBBase.c_str(),(const gchar *) buf ); // // Save flags in contructed key // sTBBase = XAP_PREF_KEY_ToolbarFlag; sTBBase += szCurName; sprintf(buf,"%d",iLay); sTBBase += buf; sprintf(buf,"%d",curFlag); pScheme->setValue((const gchar *) sTBBase.c_str(),(const gchar *) buf ); } } return true; }
void XAP_App::setDefaultGraphicsId(UT_uint32 i) { if(i == GRID_UNKNOWN) return; m_iDefaultGraphicsId = i; if(i < GRID_LAST_BUILT_IN && i > GRID_LAST_DEFAULT) { // change the preference settings UT_return_if_fail(m_prefs) XAP_PrefsScheme *pPrefsScheme = m_prefs->getCurrentScheme(); UT_return_if_fail(pPrefsScheme); UT_String s; UT_String_sprintf(s, "%d", i); pPrefsScheme->setValue(XAP_PREF_KEY_DefaultGraphics, s.c_str()); } }
/*! * This method restores the toolbar layouts from the current preference * scheme. There are 3 generic keys. * The Number of entries ((Base Key for Nr entries)+(TB name)) * The ith ID ((Base Key for id)+(TB name)+(i)) * The ith Flag ((Base Key for flag)+(TB name)+(i)) */ bool XAP_Toolbar_Factory::restoreToolbarsFromCurrentScheme(void) { // // First delete the current layouts. // UT_VECTOR_PURGEALL(XAP_Toolbar_Factory_vec *,m_vecTT); m_vecTT.clear(); // // Get the current scheme // XAP_Prefs *pPrefs = m_pApp->getPrefs(); XAP_PrefsScheme *pScheme = pPrefs->getCurrentScheme(true); char buf[100]; XAP_Toolbar_Factory_vec * pVec = NULL; // // Get number of toolbars hardwired into abiword. // UT_uint32 numTB = G_N_ELEMENTS(s_ttTable); // NO toolabrs UT_uint32 iTB,iLay; for(iTB=0; iTB< numTB;iTB++) { UT_String sTBBase = XAP_PREF_KEY_ToolbarNumEntries; const char * szCurName = s_ttTable[iTB].m_name; sTBBase +=szCurName; const gchar * szNrEntries = NULL; UT_uint32 NrEntries = 0; // // Get Number of entries if the correct key exists. Otherwise use defaults. // pScheme->getValue((const gchar *)sTBBase.c_str(),&szNrEntries); if(szNrEntries && *szNrEntries) { pVec = new XAP_Toolbar_Factory_vec(szCurName); m_vecTT.addItem((void *) pVec); NrEntries = atoi(szNrEntries); // // Loop through this toolbar definition and restore it from the preferences // for(iLay =0; iLay< NrEntries;iLay++) { // // Restore id from the contructed key // sTBBase = XAP_PREF_KEY_ToolbarID; sTBBase += szCurName; sprintf(buf,"%d",iLay); sTBBase += buf; const gchar * szCurId = NULL; pScheme->getValue((const gchar *)sTBBase.c_str(),&szCurId); if(szCurId == NULL) { continue; } UT_return_val_if_fail (szCurId && *szCurId, false); XAP_Toolbar_Id curId = (XAP_Toolbar_Id) atoi(szCurId); // // Here we should check whether the ID exists or not // EV_Toolbar_Action * pAction = m_pApp->getToolbarActionSet()->getAction(curId); if (pAction == NULL) { UT_DEBUGMSG (("Found an unknown toolbar item in prefs. Ignoring.\n")); continue; } // // Restore flags from the constructed key // sTBBase = XAP_PREF_KEY_ToolbarFlag; sTBBase += szCurName; sprintf(buf,"%d",iLay); sTBBase += buf; const gchar * szCurFlag = NULL; pScheme->getValue((const gchar *)sTBBase.c_str(),&szCurFlag); if(szCurFlag != NULL) { EV_Toolbar_LayoutFlags curFlag = (EV_Toolbar_LayoutFlags) atoi(szCurFlag); // // Build element and add it into the Toolbar layout // XAP_Toolbar_Factory_lt * plt = new XAP_Toolbar_Factory_lt; plt->m_id = curId; plt->m_flags = curFlag; pVec->add_lt(plt); } } } // // Use default hardwired layout // else { pVec = new XAP_Toolbar_Factory_vec(&s_ttTable[iTB]); m_vecTT.addItem((void *) pVec); } } return true; }
void AP_Dialog_Options::_storeWindowData(void) { XAP_Prefs *pPrefs = m_pApp->getPrefs(); UT_return_if_fail (pPrefs); AP_FrameData *pFrameData = NULL; if(m_pFrame) { pFrameData = (AP_FrameData *)m_pFrame->getFrameData(); UT_return_if_fail (pFrameData); } XAP_PrefsScheme *pPrefsScheme = pPrefs->getCurrentScheme(); UT_return_if_fail (pPrefsScheme); // turn off all notification to PrefListeners via XAP_Prefs pPrefs->startBlockChange(); // before we continue to remember all the changed values, check to see if // we have turned OFF PrefsAutoSave. If so, toggle that value, then force // a prefs save, then update everything else // [email protected] if ( pPrefs->getAutoSavePrefs() == true && _gatherPrefsAutoSave() == false ) { pPrefs->setAutoSavePrefs( false ); pPrefs->savePrefsFile(); // TODO: check the results } else { // otherwise, just set the value pPrefs->setAutoSavePrefs( _gatherPrefsAutoSave() ); } // try again to make sure we've got an updatable scheme pPrefsScheme = pPrefs->getCurrentScheme(true); UT_return_if_fail (pPrefsScheme); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // save the values to the Prefs classes Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_AutoSpellCheck, _gatherSpellCheckAsType() ); Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_AutoGrammarCheck, _gatherGrammarCheck() ); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_SmartQuotesEnable, _gatherSmartQuotes() ); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_CustomSmartQuotes, _gatherCustomSmartQuotes() ); Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_SpellCheckCaps, _gatherSpellUppercase() ); Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_SpellCheckNumbers, _gatherSpellNumbers() ); Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_CursorBlink, _gatherViewCursorBlink() ); // Not implemented for UNIX or Win32. No need for it. #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_RulerVisible, _gatherViewShowRuler() ); UT_uint32 i; for (i = 0; i < m_pApp->getToolbarFactory()->countToolbars(); i++) { Save_Pref_Bool( pPrefsScheme, m_pApp->getToolbarFactory()->prefKeyForToolbar(i), _gatherViewShowToolbar(i)); } Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_StatusBarVisible, _gatherViewShowStatusBar() ); #endif Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_ParaVisible, _gatherViewUnprintable() ); #if defined(TOOLKIT_GTK) Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_EnableSmoothScrolling, _gatherEnableSmoothScrolling() ); #endif Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_InsertModeToggle, _gatherEnableOverwrite() ); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_AutoLoadPlugins, _gatherAutoLoadPlugins() ); Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_DefaultDirectionRtl, _gatherOtherDirectionRtl() ); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_ChangeLanguageWithKeyboard, _gatherLanguageWithKeyboard() ); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_DirMarkerAfterClosingParenthesis, _gatherDirMarkerAfterClosingParenthesis()); // JOAQUIN - fix this: Dom UT_DEBUGMSG(("Saving Auto Save File [%i]\n", _gatherAutoSaveFile())); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_AutoSaveFile, _gatherAutoSaveFile() ); UT_String stVal; _gatherAutoSaveFileExt(stVal); UT_DEBUGMSG(("Saving Auto Save File Ext [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFileExt, stVal.c_str()); _gatherAutoSaveFilePeriod(stVal); UT_DEBUGMSG(("Saving Auto Save File with a period of [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFilePeriod, stVal.c_str()); // Jordi: win32 specific for now _gatherUILanguage(stVal); if (stVal.length()) { UT_DEBUGMSG(("Setting default UI language to [%s]\n", stVal.c_str())); pPrefsScheme->setValue(AP_PREF_KEY_StringSet, stVal.c_str()); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // If we changed whether the ruler is to be visible // or hidden, then update the current window: // (If we didn't change anything, leave it alone) #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) if (pFrameData && _gatherViewShowRuler() != pFrameData->m_bShowRuler ) { pFrameData->m_bShowRuler = _gatherViewShowRuler() ; if (!pFrameData->m_bIsFullScreen) { m_pFrame->toggleRuler(pFrameData->m_bShowRuler); } } // Same for status bar if (pFrameData && _gatherViewShowStatusBar() != pFrameData->m_bShowStatusBar) { pFrameData->m_bShowStatusBar = _gatherViewShowStatusBar(); if (!pFrameData->m_bIsFullScreen) { m_pFrame->toggleStatusBar(pFrameData->m_bShowStatusBar); } } if(pFrameData) { for (i = 0; i < m_pApp->getToolbarFactory()->countToolbars(); i++) { if (_gatherViewShowToolbar(i) != pFrameData->m_bShowBar[i]) { pFrameData->m_bShowBar[i] = _gatherViewShowToolbar(i); if (!pFrameData->m_bIsFullScreen) { m_pFrame->toggleBar(i, pFrameData->m_bShowBar[i]); } } } } #endif if (pFrameData && _gatherViewUnprintable() != pFrameData->m_bShowPara ) { pFrameData->m_bShowPara = _gatherViewUnprintable() ; AV_View * pAVView = m_pFrame->getCurrentView(); UT_return_if_fail (pAVView); FV_View * pView = static_cast<FV_View *> (pAVView); pView->setShowPara(pFrameData->m_bShowPara); } #if defined(TOOLKIT_GTK) if ( _gatherEnableSmoothScrolling() != XAP_App::getApp()->isSmoothScrollingEnabled() ) { XAP_App::getApp()->setEnableSmoothScrolling(_gatherEnableSmoothScrolling()); } #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // save ruler units value pPrefsScheme->setValue((gchar*)AP_PREF_KEY_RulerUnits, (gchar*)UT_dimensionName( _gatherViewRulerUnits()) ); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // save screen color pPrefsScheme->setValue((gchar*)XAP_PREF_KEY_ColorForTransparent, _gatherColorForTransparent() ); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // allow XAP_Prefs to notify all the listeners of changes // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // TODO: change to snprintf gchar szBuffer[40]; sprintf( szBuffer, "%i", _gatherNotebookPageNum() ); pPrefsScheme->setValue((gchar*)AP_PREF_KEY_OptionsTabNumber, (gchar*)szBuffer ); // allow the prefListeners to receive their calls pPrefs->endBlockChange(); // if we hit the Save button, then force a save after the gather if ( m_answer == a_SAVE ) { pPrefs->savePrefsFile(); // TODO: check the results } }
/* Needed for instant apply and friends. It gathers the value of the widget associated with * the tControl gived and sets it as pref */ void AP_Dialog_Options::_storeDataForControl (tControl id) { UT_String stVal; XAP_Prefs *pPrefs = m_pApp->getPrefs(); UT_return_if_fail (pPrefs); AP_FrameData *pFrameData = NULL; if(m_pFrame) { pFrameData = (AP_FrameData *)m_pFrame->getFrameData(); UT_return_if_fail (pFrameData); } XAP_PrefsScheme *pPrefsScheme = pPrefs->getCurrentScheme(); UT_return_if_fail (pPrefsScheme); // turn off all notification to PrefListeners via XAP_Prefs pPrefs->startBlockChange(); switch (id) { case id_CHECK_SPELL_CHECK_AS_TYPE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_AutoSpellCheck, _gatherSpellCheckAsType()); break; case id_CHECK_GRAMMAR_CHECK: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_AutoGrammarCheck, _gatherGrammarCheck()); break; case id_CHECK_SMART_QUOTES_ENABLE: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_SmartQuotesEnable, _gatherSmartQuotes()); break; case id_CHECK_CUSTOM_SMART_QUOTES: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_CustomSmartQuotes, _gatherCustomSmartQuotes()); break; case id_LIST_VIEW_OUTER_QUOTE_STYLE: pPrefsScheme->setValueInt ((gchar*)XAP_PREF_KEY_OuterQuoteStyle, _gatherOuterQuoteStyle()); break; case id_LIST_VIEW_INNER_QUOTE_STYLE: pPrefsScheme->setValueInt ((gchar*)XAP_PREF_KEY_InnerQuoteStyle, _gatherInnerQuoteStyle()); break; case id_CHECK_SPELL_UPPERCASE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_SpellCheckCaps, _gatherSpellUppercase()); break; case id_CHECK_SPELL_NUMBERS: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_SpellCheckNumbers, _gatherSpellNumbers()); break; case id_CHECK_OTHER_DEFAULT_DIRECTION_RTL: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_DefaultDirectionRtl, _gatherOtherDirectionRtl()); break; case id_CHECK_AUTO_SAVE_FILE: UT_DEBUGMSG(("Saving Auto Save File [%i]\n", _gatherAutoSaveFile())); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_AutoSaveFile, _gatherAutoSaveFile() ); break; case id_TEXT_AUTO_SAVE_FILE_EXT: _gatherAutoSaveFileExt(stVal); UT_DEBUGMSG(("Saving Auto Save File Ext [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFileExt, stVal.c_str()); break; case id_TEXT_AUTO_SAVE_FILE_PERIOD: _gatherAutoSaveFilePeriod(stVal); UT_DEBUGMSG(("Saving Auto Save File with a period of [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFilePeriod, stVal.c_str()); break; case id_CHECK_VIEW_SHOW_RULER: #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) { bool tmpbool = _gatherViewShowRuler(); Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_RulerVisible, tmpbool); if (pFrameData && (tmpbool != pFrameData->m_bShowRuler)) { pFrameData->m_bShowRuler = _gatherViewShowRuler() ; m_pFrame->toggleRuler(pFrameData->m_bShowRuler); } } #endif break; case id_LIST_VIEW_RULER_UNITS: pPrefsScheme->setValue ((gchar*)AP_PREF_KEY_RulerUnits, (gchar*)UT_dimensionName (_gatherViewRulerUnits())); break; case id_CHECK_VIEW_CURSOR_BLINK: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_CursorBlink, _gatherViewCursorBlink()); break; case id_CHECK_VIEW_SHOW_STATUS_BAR: #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) { bool tmpbool = _gatherViewShowStatusBar(); Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_StatusBarVisible, tmpbool); if (pFrameData && (tmpbool != pFrameData->m_bShowStatusBar)) { pFrameData->m_bShowStatusBar = tmpbool; m_pFrame->toggleStatusBar(pFrameData->m_bShowStatusBar); } } #endif break; case id_PUSH_CHOOSE_COLOR_FOR_TRANSPARENT: pPrefsScheme->setValue ((gchar*)XAP_PREF_KEY_ColorForTransparent, _gatherColorForTransparent()); break; case id_CHECK_VIEW_UNPRINTABLE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_ParaVisible, _gatherViewUnprintable()); break; case id_CHECK_ENABLE_SMOOTH_SCROLLING: #if defined(TOOLKIT_GTK) Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_EnableSmoothScrolling, _gatherEnableSmoothScrolling()); #endif break; case id_CHECK_ENABLE_OVERWRITE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_InsertModeToggle, _gatherEnableOverwrite() ); break; case id_CHECK_AUTO_LOAD_PLUGINS: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_AutoLoadPlugins, _gatherAutoLoadPlugins() ); break; case id_CHECK_LANG_WITH_KEYBOARD: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_ChangeLanguageWithKeyboard, _gatherLanguageWithKeyboard() ); break; case id_CHECK_DIR_MARKER_AFTER_CLOSING_PARENTHESIS: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_DirMarkerAfterClosingParenthesis, _gatherDirMarkerAfterClosingParenthesis()); break; case id_NOTEBOOK: gchar szBuffer[40]; sprintf( szBuffer, "%i", _gatherNotebookPageNum() ); pPrefsScheme->setValue ((gchar*)AP_PREF_KEY_OptionsTabNumber, (gchar*)szBuffer ); break; // Ignore window controls/special buttons case id_BUTTON_SAVE: case id_BUTTON_DEFAULTS: case id_BUTTON_OK: case id_BUTTON_CANCEL: case id_BUTTON_APPLY: case id_BUTTON_SPELL_AUTOREPLACE: case id_CHECK_COLOR_FOR_TRANSPARENT_IS_WHITE: case id_TEXT_AUTO_SAVE_FILE_PERIOD_SPIN: // needed by Cocoa FE // Not implemented case id_CHECK_PREFS_AUTO_SAVE: case id_CHECK_SPELL_HIDE_ERRORS: case id_CHECK_SPELL_MAIN_ONLY: case id_CHECK_SPELL_SUGGEST: case id_CHECK_VIEW_ALL: case id_CHECK_VIEW_HIDDEN_TEXT: case id_COMBO_PREFS_SCHEME: // Dummy case, dummy comment :) case id_last: UT_DEBUGMSG (("WARNING: _storeDataForControl not implemented for this control\n")); default: break; } // allow the prefListeners to receive their calls and pPrefs->endBlockChange(); pPrefs->savePrefsFile(); }