Subversion Repositories Scribus

Compare Revisions

Ignore whitespace Rev 23171 → Rev 23172

/trunk/Scribus/scribus/scribus.cpp
6637,111 → 6637,111
slotSelect();
struct ApplicationPrefs oldPrefs(m_prefsManager.appPrefs);
PreferencesDialog prefsDialog(this, oldPrefs);
int prefsResult=prefsDialog.exec();
if (prefsResult==QDialog::Accepted)
int prefsResult = prefsDialog.exec();
if (prefsResult != QDialog::Accepted)
return;
 
struct ApplicationPrefs newPrefs(prefsDialog.prefs());
m_prefsManager.setNewPrefs(newPrefs);
m_prefsManager.applyLoadedShortCuts();
 
//TODO: and the other dirs?
DocDir = m_prefsManager.documentDir();
if (oldPrefs.pathPrefs.documents != newPrefs.pathPrefs.documents)
{
struct ApplicationPrefs newPrefs(prefsDialog.prefs());
m_prefsManager.setNewPrefs(newPrefs);
m_prefsManager.applyLoadedShortCuts();
PrefsContext* docContext = m_prefsManager.prefsFile->getContext("docdirs", false);
docContext->set("docsopen", newPrefs.pathPrefs.documents);
}
 
//TODO: and the other dirs?
DocDir = m_prefsManager.documentDir();
if (oldPrefs.pathPrefs.documents != newPrefs.pathPrefs.documents)
{
PrefsContext* docContext = m_prefsManager.prefsFile->getContext("docdirs", false);
docContext->set("docsopen", newPrefs.pathPrefs.documents);
}
ScQApp->neverSplash(!m_prefsManager.appPrefs.uiPrefs.showSplashOnStartup);
 
ScQApp->neverSplash(!m_prefsManager.appPrefs.uiPrefs.showSplashOnStartup);
 
QString newUILanguage = m_prefsManager.uiLanguage();
if (oldPrefs.uiPrefs.language != newUILanguage || ScQApp->currGUILanguage()!=newUILanguage)
ScQApp->changeGUILanguage(newUILanguage);
m_prefsManager.appPrefs.uiPrefs.language = ScQApp->currGUILanguage();
QString newUIStyle = m_prefsManager.guiStyle();
if (oldPrefs.uiPrefs.style != newUIStyle)
{
if (newUIStyle.isEmpty())
ScQApp->setStyle(m_prefsManager.guiSystemStyle());
else
ScQApp->setStyle(QStyleFactory::create(newUIStyle));
}
int newUIFontSize = m_prefsManager.guiFontSize();
if (oldPrefs.uiPrefs.applicationFontSize != newUIFontSize)
{
QFont apf = qApp->font();
apf.setPointSize(newUIFontSize);
qApp->setFont(apf);
}
emit UpdateRequest(reqDefFontListUpdate);
if (m_prefsManager.appPrefs.uiPrefs.useTabs)
{
mdiArea->setViewMode(QMdiArea::TabbedView);
mdiArea->setTabsClosable(true);
mdiArea->setDocumentMode(true);
}
QString newUILanguage = m_prefsManager.uiLanguage();
if (oldPrefs.uiPrefs.language != newUILanguage || ScQApp->currGUILanguage()!=newUILanguage)
ScQApp->changeGUILanguage(newUILanguage);
m_prefsManager.appPrefs.uiPrefs.language = ScQApp->currGUILanguage();
QString newUIStyle = m_prefsManager.guiStyle();
if (oldPrefs.uiPrefs.style != newUIStyle)
{
if (newUIStyle.isEmpty())
ScQApp->setStyle(m_prefsManager.guiSystemStyle());
else
mdiArea->setViewMode(QMdiArea::SubWindowView);
bool shadowChanged = oldPrefs.displayPrefs.showPageShadow != m_prefsManager.showPageShadow();
QList<QMdiSubWindow *> windows = mdiArea->subWindowList();
if (!windows.isEmpty())
ScQApp->setStyle(QStyleFactory::create(newUIStyle));
}
int newUIFontSize = m_prefsManager.guiFontSize();
if (oldPrefs.uiPrefs.applicationFontSize != newUIFontSize)
{
QFont apf = qApp->font();
apf.setPointSize(newUIFontSize);
qApp->setFont(apf);
}
emit UpdateRequest(reqDefFontListUpdate);
if (m_prefsManager.appPrefs.uiPrefs.useTabs)
{
mdiArea->setViewMode(QMdiArea::TabbedView);
mdiArea->setTabsClosable(true);
mdiArea->setDocumentMode(true);
}
else
mdiArea->setViewMode(QMdiArea::SubWindowView);
bool shadowChanged = oldPrefs.displayPrefs.showPageShadow != m_prefsManager.showPageShadow();
QList<QMdiSubWindow *> windows = mdiArea->subWindowList();
if (!windows.isEmpty())
{
int windowCount=windows.count();
for ( int i = 0; i < windowCount; ++i )
{
int windowCount=windows.count();
for ( int i = 0; i < windowCount; ++i )
QWidget* w = windows.at(i)->widget();
ScribusWin* scw = dynamic_cast<ScribusWin *>(w);
if (!scw)
qFatal("ScribusMainWindow::slotPrefsOrg !scw");
ScribusView* scw_v = scw->view();
if (oldPrefs.displayPrefs.displayScale != m_prefsManager.displayScale())
{
QWidget* w = windows.at(i)->widget();
ScribusWin* scw = dynamic_cast<ScribusWin *>(w);
if (!scw)
qFatal("ScribusMainWindow::slotPrefsOrg !scw");
ScribusView* scw_v = scw->view();
if (oldPrefs.displayPrefs.displayScale != m_prefsManager.displayScale())
{
int x = qRound(qMax(scw_v->contentsX() / scw_v->scale(), 0.0));
int y = qRound(qMax(scw_v->contentsY() / scw_v->scale(), 0.0));
int w = qRound(qMin(scw_v->visibleWidth() / scw_v->scale(), scw->doc()->currentPage()->width()));
int h = qRound(qMin(scw_v->visibleHeight() / scw_v->scale(), scw->doc()->currentPage()->height()));
scw_v->rememberOldZoomLocation(w / 2 + x,h / 2 + y);
scw_v->zoom((scw_v->scale() / oldPrefs.displayPrefs.displayScale) * m_prefsManager.displayScale());
zoomSpinBox->setMaximum(doc->opToolPrefs().magMax);
}
if (shadowChanged)
scw->view()->DrawNew();
int x = qRound(qMax(scw_v->contentsX() / scw_v->scale(), 0.0));
int y = qRound(qMax(scw_v->contentsY() / scw_v->scale(), 0.0));
int w = qRound(qMin(scw_v->visibleWidth() / scw_v->scale(), scw->doc()->currentPage()->width()));
int h = qRound(qMin(scw_v->visibleHeight() / scw_v->scale(), scw->doc()->currentPage()->height()));
scw_v->rememberOldZoomLocation(w / 2 + x,h / 2 + y);
scw_v->zoom((scw_v->scale() / oldPrefs.displayPrefs.displayScale) * m_prefsManager.displayScale());
zoomSpinBox->setMaximum(doc->opToolPrefs().magMax);
}
if (shadowChanged)
scw->view()->DrawNew();
}
}
 
QString newMonitorProfile(newPrefs.colorPrefs.DCMSset.DefaultMonitorProfile);
if (oldMonitorProfile != newMonitorProfile)
QString newMonitorProfile(newPrefs.colorPrefs.DCMSset.DefaultMonitorProfile);
if (oldMonitorProfile != newMonitorProfile)
{
bool success = false;
if (ScCore->MonitorProfiles.contains(newMonitorProfile))
{
bool success = false;
if (ScCore->MonitorProfiles.contains(newMonitorProfile))
QString profilePath = ScCore->MonitorProfiles[newMonitorProfile];
ScColorProfile newProfile = ScCore->defaultEngine.openProfileFromFile(profilePath);
if (!newProfile.isNull())
{
QString profilePath = ScCore->MonitorProfiles[newMonitorProfile];
ScColorProfile newProfile = ScCore->defaultEngine.openProfileFromFile(profilePath);
if (!newProfile.isNull())
{
ScCore->monitorProfile = newProfile;
success = true;
}
ScCore->monitorProfile = newProfile;
success = true;
}
if (!success)
{
newPrefs.colorPrefs.DCMSset.DefaultMonitorProfile = oldMonitorProfile;
m_prefsManager.setNewPrefs(newPrefs);
QString message = tr("An error occurred while opening monitor profile.\nFormer monitor profile will be used." );
if (ScCore->usingGUI())
ScMessageBox::warning(this, CommonStrings::trWarning, message);
else
qWarning( "%s", message.toLocal8Bit().data() );
}
}
ScImageCacheManager & icm = ScImageCacheManager::instance();
icm.setEnabled(newPrefs.imageCachePrefs.cacheEnabled);
icm.setMaxCacheSizeMiB(newPrefs.imageCachePrefs.maxCacheSizeMiB);
icm.setMaxCacheEntries(newPrefs.imageCachePrefs.maxCacheEntries);
icm.setCompressionLevel(newPrefs.imageCachePrefs.compressionLevel);
if (!success)
{
newPrefs.colorPrefs.DCMSset.DefaultMonitorProfile = oldMonitorProfile;
m_prefsManager.setNewPrefs(newPrefs);
QString message = tr("An error occurred while opening monitor profile.\nFormer monitor profile will be used." );
if (ScCore->usingGUI())
ScMessageBox::warning(this, CommonStrings::trWarning, message);
else
qWarning( "%s", message.toLocal8Bit().data() );
}
}
ScImageCacheManager & icm = ScImageCacheManager::instance();
icm.setEnabled(newPrefs.imageCachePrefs.cacheEnabled);
icm.setMaxCacheSizeMiB(newPrefs.imageCachePrefs.maxCacheSizeMiB);
icm.setMaxCacheEntries(newPrefs.imageCachePrefs.maxCacheEntries);
icm.setCompressionLevel(newPrefs.imageCachePrefs.compressionLevel);
 
m_prefsManager.SavePrefs();
}
m_prefsManager.SavePrefs();
}
 
void ScribusMainWindow::slotDocSetup()