Author: jghali
Date: Wed Sep 19 21:27:15 2018
New Revision: 22702

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22702
Log:
#15426: Pasting path into file dialog and hitting return stopped working

Modified:
    trunk/Scribus/scribus/ui/customfdialog.cpp
    trunk/Scribus/scribus/ui/scfilewidget.cpp
    trunk/Scribus/scribus/ui/scfilewidget.h

Modified: trunk/Scribus/scribus/ui/customfdialog.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22702&path=/trunk/Scribus/scribus/ui/customfdialog.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/customfdialog.cpp  (original)
+++ trunk/Scribus/scribus/ui/customfdialog.cpp  Wed Sep 19 21:27:15 2018
@@ -362,6 +362,7 @@
                Layout1C->addItem( spacer2 );
                vboxLayout->addWidget(LayoutC);
                fileDialog->setFileMode(QFileDialog::DirectoryOnly);
+               fileDialog->forceDoubleClickActivation(false);
                filePreview->hide();
                showPreview->setVisible(false);
                showPreview->setChecked(false);
@@ -482,6 +483,7 @@
                if (flags & fdCompressFile)
                        connect(saveZip, SIGNAL(clicked()), this, 
SLOT(handleCompress()));
        }
+       fileDialog->forceDoubleClickActivation(m_previewIsShown);
        fileDialog->setNameFilterDetailsVisible(false);
        m_extZip = "gz";
        connect(okButton, SIGNAL(clicked()), this, SLOT(okClicked()));
@@ -518,6 +520,7 @@
 void CustomFDialog::togglePreview()
 {
        m_previewIsShown = !m_previewIsShown;
+       fileDialog->forceDoubleClickActivation(m_previewIsShown);
        filePreview->setVisible(m_previewIsShown);
        if (m_previewIsShown)
        {

Modified: trunk/Scribus/scribus/ui/scfilewidget.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22702&path=/trunk/Scribus/scribus/ui/scfilewidget.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/scfilewidget.cpp   (original)
+++ trunk/Scribus/scribus/ui/scfilewidget.cpp   Wed Sep 19 21:27:15 2018
@@ -5,8 +5,11 @@
 for which a new license (GPL+exception) is in place.
 */
 
+#include <cstdlib>
+
 #include <QDebug>
 #include <QStandardPaths>
+#include <QLineEdit>
 #include <QListView>
 #include <QPushButton>
 #include <QStringList>
@@ -18,6 +21,8 @@
 
 ScFileWidget::ScFileWidget(QWidget * parent) : QFileDialog(parent, Qt::Widget)
 {
+       m_forceDoubleClickActivation = false;
+
        setOption(QFileDialog::DontUseNativeDialog);
        setSizeGripEnabled(false);
        setModal(false);
@@ -58,6 +63,21 @@
        setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
 }
 
+void ScFileWidget::forceDoubleClickActivation(bool force)
+{
+       // Hack to make the previews in our file dialogs useable again,
+       // needed e.g on OpenSuse KDE. Otherwise file would open on first
+       // click, leaving user no time to see preview.
+       if (m_forceDoubleClickActivation == force)
+               return;
+
+       if (force)
+               setStyleSheet(QStringLiteral("QAbstractItemView { 
activate-on-singleclick: 0; }"));
+       else
+               setStyleSheet(QString());
+       m_forceDoubleClickActivation = force;
+}
+
 QString ScFileWidget::selectedFile()
 {
        QStringList l(selectedFiles());
@@ -66,28 +86,20 @@
        return l.at(0);
 }
 
-/* Hack to make the previews in our file dialogs useable again,
-   needed e.g on OpenSuse KDE. Otherwise file would open on first
-   click, leaving user no time to see preview. Drawback: in other 
-   Linux desktop environment, this may force user to click OK for
-   opening/saving file. */
-void ScFileWidget::accept()
-{
-#ifndef Q_OS_LINUX
-       QFileDialog::accept();
-#endif
-}
-
 void ScFileWidget::locationDropped(const QString& fileUrl)
 {
        QFileInfo fi(fileUrl);
        if (fi.isDir())
+       {
                setDirectory(fi.absoluteFilePath());
-       else
-       {
-               setDirectory(fi.absolutePath());
-               selectFile(fi.fileName());
+               return;
        }
+
+       QString absFilePath = fi.absolutePath();
+       QString fileName = fi.fileName();
+               
+       setDirectory(absFilePath);
+       selectFile(fileName);
 }
 
 void ScFileWidget::gotoParentDirectory()

Modified: trunk/Scribus/scribus/ui/scfilewidget.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22702&path=/trunk/Scribus/scribus/ui/scfilewidget.h
==============================================================================
--- trunk/Scribus/scribus/ui/scfilewidget.h     (original)
+++ trunk/Scribus/scribus/ui/scfilewidget.h     Wed Sep 19 21:27:15 2018
@@ -30,14 +30,17 @@
        ScFileWidget(QWidget * parent);
 
        QString selectedFile();
+       void forceDoubleClickActivation(bool force);
 
 public slots:
-       void accept();
        void locationDropped(const QString& fileUrl);
        void gotoParentDirectory();
        void gotoSelectedDirectory();
        void gotoDesktopDirectory();
        void gotoHomeDirectory();
+
+private:
+       bool m_forceDoubleClickActivation;
 };
 
 #endif


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to