svn path=/trunk/KDE/kdebase/apps/; revision=693944
m_controller->setUrl(m_dirLister->url());
}
m_controller->setUrl(m_dirLister->url());
}
- ViewProperties props(url());
+ const KUrl viewPropsUrl = viewPropertiesUrl();
+ ViewProperties props(viewPropsUrl);
props.setViewMode(m_mode);
createView();
props.setViewMode(m_mode);
createView();
+ startDirLister(viewPropsUrl);
void DolphinView::setShowPreview(bool show)
{
void DolphinView::setShowPreview(bool show)
{
- ViewProperties props(url());
+ const KUrl viewPropsUrl = viewPropertiesUrl();
+ ViewProperties props(viewPropsUrl);
props.setShowPreview(show);
m_controller->setShowPreview(show);
emit showPreviewChanged();
props.setShowPreview(show);
m_controller->setShowPreview(show);
emit showPreviewChanged();
- startDirLister(url(), true);
+ startDirLister(viewPropsUrl, true);
}
bool DolphinView::showPreview() const
}
bool DolphinView::showPreview() const
- ViewProperties props(url());
+ const KUrl viewPropsUrl = viewPropertiesUrl();
+ ViewProperties props(viewPropsUrl);
props.setShowHiddenFiles(show);
m_dirLister->setShowingDotFiles(show);
emit showHiddenFilesChanged();
props.setShowHiddenFiles(show);
m_dirLister->setShowingDotFiles(show);
emit showHiddenFilesChanged();
- startDirLister(url(), true);
+ startDirLister(viewPropsUrl, true);
}
bool DolphinView::showHiddenFiles() const
}
bool DolphinView::showHiddenFiles() const
- ViewProperties props(url());
+ ViewProperties props(viewPropertiesUrl());
props.setCategorizedSorting(categorized);
props.save();
props.setCategorizedSorting(categorized);
props.save();
void DolphinView::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info)
{
void DolphinView::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info)
{
- ViewProperties props(url());
+ const KUrl viewPropsUrl = viewPropertiesUrl();
+ ViewProperties props(viewPropsUrl);
props.setAdditionalInfo(info);
m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation);
m_fileItemDelegate->setAdditionalInformation(info);
emit additionalInfoChanged(info);
props.setAdditionalInfo(info);
m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation);
m_fileItemDelegate->setAdditionalInformation(info);
emit additionalInfoChanged(info);
- startDirLister(url(), true);
+ startDirLister(viewPropsUrl, true);
}
KFileItemDelegate::AdditionalInformation DolphinView::additionalInfo() const
}
KFileItemDelegate::AdditionalInformation DolphinView::additionalInfo() const
void DolphinView::setUrl(const KUrl& url)
{
if (m_controller->url() == url) {
void DolphinView::setUrl(const KUrl& url)
{
if (m_controller->url() == url) {
- // Although the view URL is equal to the controller URL,
- // the view properties must be applied to the view.
- // This assures a consistent state of the currently activated
- // column and their view properties.
- if (isColumnViewActive()) {
- applyViewProperties(url);
- }
- } else {
- m_controller->setUrl(url);
- applyViewProperties(url);
+ m_controller->setUrl(url);
- startDirLister(url);
- emit urlChanged(url);
- }
+ applyViewProperties(url);
+
+ startDirLister(url);
+ emit urlChanged(url);
}
void DolphinView::mouseReleaseEvent(QMouseEvent* event)
}
void DolphinView::mouseReleaseEvent(QMouseEvent* event)
+KUrl DolphinView::viewPropertiesUrl() const
+{
+ if (isColumnViewActive()) {
+ return m_dirLister->url();
+ }
+
+ return url();
+}
+
void DolphinView::applyViewProperties(const KUrl& url)
{
void DolphinView::applyViewProperties(const KUrl& url)
{
+ if (isColumnViewActive() && m_dirLister->url().isParentOf(url)) {
+ // The column view is active, hence don't apply the view properties
+ // of sub directories (represented by columns) to the view. The
+ // view always represents the properties of the first column.
+ return;
+ }
+
const ViewProperties props(url);
const Mode mode = props.viewMode();
const ViewProperties props(url);
const Mode mode = props.viewMode();
- bool changeMode = (m_mode != mode);
- if (changeMode && isColumnViewActive()) {
- // The column view is active. Only change the
- // mode if the current URL is no child of the column view.
- if (m_dirLister->url().isParentOf(url)) {
- changeMode = false;
- }
- }
-
- if (changeMode) {
m_mode = mode;
createView();
emit modeChanged();
m_mode = mode;
createView();
emit modeChanged();
void DolphinView::updateSorting(DolphinView::Sorting sorting)
{
void DolphinView::updateSorting(DolphinView::Sorting sorting)
{
- ViewProperties props(url());
+ ViewProperties props(viewPropertiesUrl());
props.setSorting(sorting);
m_proxyModel->setSorting(sorting);
props.setSorting(sorting);
m_proxyModel->setSorting(sorting);
void DolphinView::updateSortOrder(Qt::SortOrder order)
{
void DolphinView::updateSortOrder(Qt::SortOrder order)
{
- ViewProperties props(url());
+ ViewProperties props(viewPropertiesUrl());
props.setSortOrder(order);
m_proxyModel->setSortOrder(order);
props.setSortOrder(order);
m_proxyModel->setSortOrder(order);
private:
void startDirLister(const KUrl& url, bool reload = false);
private:
void startDirLister(const KUrl& url, bool reload = false);
+ /**
+ * Returns the URL where the view properties should be stored. Usually
+ * DolphinView::url() is returned, but in the case of a Column View the
+ * view properties are always stored in the directory represented by the
+ * first column. It is recommendend whenever using the ViewProperties class
+ * to use DolphinView::viewPropertiesUrl() as URL.
+ */
+ KUrl viewPropertiesUrl() const;
+
/**
* Applies the view properties which are defined by the current URL
* m_url to the DolphinView properties.
/**
* Applies the view properties which are defined by the current URL
* m_url to the DolphinView properties.