]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placesitemeditdialog.cpp
Merge remote-tracking branch 'origin/KDE/4.10'
[dolphin.git] / src / panels / places / placesitemeditdialog.cpp
index dd7ac85a56cb04d91142fc94152f2d2ae2e788a9..08c910d17301a272c882c6f6bdba3aac4d0f8850 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <KAboutData>
 #include <KComponentData>
+#include <KDebug>
 #include <KFile>
 #include <KIconButton>
 #include <KLineEdit>
@@ -59,7 +60,7 @@ void PlacesItemEditDialog::setIcon(const QString& icon)
 
 QString PlacesItemEditDialog::icon() const
 {
-    return m_icon;
+    return m_iconButton->icon();
 }
 
 void PlacesItemEditDialog::setText(const QString& text)
@@ -69,7 +70,12 @@ void PlacesItemEditDialog::setText(const QString& text)
 
 QString PlacesItemEditDialog::text() const
 {
-    return m_text;
+    QString text = m_textEdit->text();
+    if (text.isEmpty()) {
+        const KUrl url = m_urlEdit->url();
+        text = url.fileName().isEmpty() ? url.prettyUrl() : url.fileName();
+    }
+    return text;
 }
 
 void PlacesItemEditDialog::setUrl(const KUrl& url)
@@ -79,7 +85,7 @@ void PlacesItemEditDialog::setUrl(const KUrl& url)
 
 KUrl PlacesItemEditDialog::url() const
 {
-    return m_url;
+    return m_urlEdit->url();
 }
 
 void PlacesItemEditDialog::setAllowGlobal(bool allow)
@@ -100,6 +106,11 @@ bool PlacesItemEditDialog::event(QEvent* event)
     return QWidget::event(event);
 }
 
+void PlacesItemEditDialog::slotUrlChanged(const QString& text)
+{
+    enableButtonOk(!text.isEmpty());
+}
+
 PlacesItemEditDialog::~PlacesItemEditDialog()
 {
 }
@@ -122,10 +133,11 @@ void PlacesItemEditDialog::initialize()
     formLayout->addRow(i18nc("@label", "Location:"), m_urlEdit);
     // Provide room for at least 40 chars (average char width is half of height)
     m_urlEdit->setMinimumWidth(m_urlEdit->fontMetrics().height() * (40 / 2));
+    connect(m_urlEdit->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(slotUrlChanged(QString)));
 
     m_iconButton = new KIconButton(mainWidget);
     formLayout->addRow(i18nc("@label", "Choose an icon:"), m_iconButton);
-    m_iconButton->setIconSize(KIconLoader::SizeLarge);
+    m_iconButton->setIconSize(IconSize(KIconLoader::Desktop));
     m_iconButton->setIconType(KIconLoader::NoGroup, KIconLoader::Place);
     if (m_icon.isEmpty()) {
         m_iconButton->setIcon(KMimeType::iconNameForUrl(m_url));
@@ -152,7 +164,7 @@ void PlacesItemEditDialog::initialize()
         m_textEdit->setFocus();
     }
 
-    setMainWidget( mainWidget );
+    setMainWidget(mainWidget);
 }
 
 #include "placesitemeditdialog.moc"