X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f3c83ec89f7a50381f86faff5a00781cf1613a6a..13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce:/src/startupsettingspage.cpp diff --git a/src/startupsettingspage.cpp b/src/startupsettingspage.cpp index a56aa285e..532c6e606 100644 --- a/src/startupsettingspage.cpp +++ b/src/startupsettingspage.cpp @@ -29,12 +29,13 @@ #include #include #include +#include +#include #include #include #include #include -#include #include #include @@ -59,7 +60,8 @@ StartupSettingsPage::StartupSettingsPage(DolphinMainWindow* mainWin, QWidget* pa homeUrlBox->setSpacing(spacing); new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); - m_homeUrl = new QLineEdit(homeUrlBox); + m_homeUrl = new KLineEdit(homeUrlBox); + m_homeUrl->setClearButtonShown(true); QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox); connect(selectHomeUrlButton, SIGNAL(clicked()), @@ -79,17 +81,13 @@ StartupSettingsPage::StartupSettingsPage(DolphinMainWindow* mainWin, QWidget* pa homeBoxLayout->addWidget(homeUrlBox); homeBoxLayout->addWidget(buttonBox); - QGroupBox* startBox = new QGroupBox(i18nc("@title:group", "Settings"), vBox); - // create 'Split view', 'Editable location' and 'Filter bar' checkboxes - m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), startBox); - m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), startBox); - m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"),startBox); - - QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox); - startBoxLayout->addWidget(m_splitView); - startBoxLayout->addWidget(m_editableUrl); - startBoxLayout->addWidget(m_filterBar); + m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), vBox); + m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), vBox); + m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"), vBox); + connect(m_splitView, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_editableUrl, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_filterBar, SIGNAL(toggled(bool)), this, SIGNAL(changed())); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -99,6 +97,10 @@ StartupSettingsPage::StartupSettingsPage(DolphinMainWindow* mainWin, QWidget* pa topLayout->addWidget(vBox); loadSettings(); + + // it's important connecting 'textChanged' after loadSettings(), as loadSettings() + // invokes m_homeUrl->setText() + connect(m_homeUrl, SIGNAL(textChanged(const QString&)), this, SIGNAL(changed())); } StartupSettingsPage::~StartupSettingsPage() @@ -110,9 +112,11 @@ void StartupSettingsPage::applySettings() GeneralSettings* settings = DolphinSettings::instance().generalSettings(); const KUrl url(m_homeUrl->text()); - KFileItem fileItem(S_IFDIR, KFileItem::Unknown, url); + KFileItem fileItem(KFileItem::Unknown, KFileItem::Unknown, url); if (url.isValid() && fileItem.isDir()) { settings->setHomeUrl(url.prettyUrl()); + } else { + KMessageBox::error(this, i18nc("@info", "The location for the home folder is invalid and will not be applied.")); } settings->setSplitView(m_splitView->isChecked()); @@ -130,9 +134,10 @@ void StartupSettingsPage::restoreDefaults() void StartupSettingsPage::selectHomeUrl() { const QString homeUrl = m_homeUrl->text(); - KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl); + KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl, this); if (!url.isEmpty()) { m_homeUrl->setText(url.prettyUrl()); + emit changed(); } } @@ -144,7 +149,7 @@ void StartupSettingsPage::useCurrentLocation() void StartupSettingsPage::useDefaultLocation() { - m_homeUrl->setText("file://" + QDir::homePath()); + m_homeUrl->setText(QDir::homePath()); } void StartupSettingsPage::loadSettings()