Assure that the startup-settings are applied immediately

This commit is contained in:
Peter Penz 2011-04-15 20:52:27 +02:00
parent 14bae32f37
commit d4be11f205
3 changed files with 43 additions and 43 deletions

View file

@ -366,39 +366,6 @@ void DolphinMainWindow::showCommand(CommandType command)
}
}
void DolphinMainWindow::refreshViews()
{
Q_ASSERT(m_viewTab[m_tabIndex].primaryView);
// remember the current active view, as because of
// the refreshing the active view might change to
// the secondary view
DolphinViewContainer* activeViewContainer = m_activeViewContainer;
const int tabCount = m_viewTab.count();
for (int i = 0; i < tabCount; ++i) {
m_viewTab[i].primaryView->refresh();
if (m_viewTab[i].secondaryView) {
m_viewTab[i].secondaryView->refresh();
}
}
setActiveViewContainer(activeViewContainer);
const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings();
if (generalSettings->modifiedStartupSettings()) {
// The startup settings have been changed by the user (see bug #254947).
// Synchronize the split-view setting with the active view:
const bool splitView = generalSettings->splitView();
const ViewTab& activeTab = m_viewTab[m_tabIndex];
const bool toggle = ( splitView && !activeTab.secondaryView)
|| (!splitView && activeTab.secondaryView);
if (toggle) {
toggleSplitView();
}
}
}
void DolphinMainWindow::pasteIntoFolder()
{
m_activeViewContainer->view()->pasteIntoFolder();
@ -1131,7 +1098,7 @@ void DolphinMainWindow::editSettings()
if (!m_settingsDialog) {
const KUrl url = activeViewContainer()->url();
DolphinSettingsDialog* settingsDialog = new DolphinSettingsDialog(url, this);
connect(settingsDialog, SIGNAL(settingsChanged()), this, SLOT(reloadView()));
connect(settingsDialog, SIGNAL(settingsChanged()), this, SLOT(refreshViews()));
settingsDialog->setAttribute(Qt::WA_DeleteOnClose);
settingsDialog->show();
m_settingsDialog = settingsDialog;
@ -2052,6 +2019,39 @@ void DolphinMainWindow::rememberClosedTab(int index)
KAcceleratorManager::manage(tabsMenu);
}
void DolphinMainWindow::refreshViews()
{
Q_ASSERT(m_viewTab[m_tabIndex].primaryView);
// remember the current active view, as because of
// the refreshing the active view might change to
// the secondary view
DolphinViewContainer* activeViewContainer = m_activeViewContainer;
const int tabCount = m_viewTab.count();
for (int i = 0; i < tabCount; ++i) {
m_viewTab[i].primaryView->refresh();
if (m_viewTab[i].secondaryView) {
m_viewTab[i].secondaryView->refresh();
}
}
setActiveViewContainer(activeViewContainer);
const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings();
if (generalSettings->modifiedStartupSettings()) {
// The startup settings have been changed by the user (see bug #254947).
// Synchronize the split-view setting with the active view:
const bool splitView = generalSettings->splitView();
const ViewTab& activeTab = m_viewTab[m_tabIndex];
const bool toggle = ( splitView && !activeTab.secondaryView)
|| (!splitView && activeTab.secondaryView);
if (toggle) {
toggleSplitView();
}
}
}
void DolphinMainWindow::clearStatusBar()
{
m_activeViewContainer->statusBar()->clear();

View file

@ -98,12 +98,6 @@ public:
/** Renames the item represented by \a oldUrl to \a newUrl. */
void rename(const KUrl& oldUrl, const KUrl& newUrl);
/**
* Refreshes the views of the main window by recreating them according to
* the given Dolphin settings.
*/
void refreshViews();
/**
* Returns the 'Create New...' sub menu which also can be shared
* with other menus (e. g. a context menu).
@ -166,6 +160,12 @@ protected:
virtual void readProperties(const KConfigGroup& group);
private slots:
/**
* Refreshes the views of the main window by recreating them according to
* the given Dolphin settings.
*/
void refreshViews();
void clearStatusBar();
/** Updates the 'Create New...' sub menu. */

View file

@ -130,17 +130,17 @@ void DolphinSettingsDialog::applySettings()
page->applySettings();
}
emit settingsChanged();
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
if (settings->modifiedStartupSettings()) {
// Reset the modified startup settings hint. The changed startup settings
// have been applied already in app()->refreshMainWindows().
// have been applied already due to emitting settingsChanged().
settings->setModifiedStartupSettings(false);
settings->writeConfig();
}
enableButtonApply(false);
emit settingsChanged();
}
void DolphinSettingsDialog::restoreDefaults()