File indexing completed on 2024-04-28 11:20:40

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2010 Oleksiy Protas <elfy.ua@gmail.com>
0004     SPDX-FileCopyrightText: 2020 Alexander Semke <alexander.semke@web.de>
0005 */
0006 
0007 #include "rsettingswidget.h"
0008 
0009 #include <QFileDialog>
0010 #include <QLineEdit>
0011 #include <QMouseEvent>
0012 #include <KLocalizedString>
0013 
0014 RSettingsWidget::RSettingsWidget(QWidget *parent, const QString& id) : BackendSettingsWidget(parent, id)
0015 {
0016     setupUi(this);
0017 
0018     m_tabWidget = tabWidget;
0019     m_tabDocumentation = tabDocumentation;
0020     connect(tabWidget, &QTabWidget::currentChanged, this, &BackendSettingsWidget::tabChanged);
0021 
0022     kcfg_autorunScripts->lineEdit()->setReadOnly(true);
0023     kcfg_autorunScripts->lineEdit()->installEventFilter(this);
0024     kcfg_autorunScripts->lineEdit()->setToolTip(i18n("Double click to open file selection dialog"));
0025 }
0026 
0027 bool RSettingsWidget::eventFilter(QObject *obj, QEvent *event)
0028 {
0029     /* Intercepting the doubleclick events of LineEdit */
0030     if (obj == kcfg_autorunScripts->lineEdit() && event->type() == QEvent::MouseButtonDblClick)
0031     {
0032         QMouseEvent *ev=reinterpret_cast<QMouseEvent*>(event);
0033         if (ev->button() == Qt::LeftButton)
0034         {
0035             displayFileSelectionDialog();
0036             return false;
0037         }
0038     }
0039     return QObject::eventFilter(obj,event);
0040 }
0041 
0042 void RSettingsWidget::displayFileSelectionDialog()
0043 {
0044     QString path=QFileDialog::getOpenFileName(this,kcfg_autorunScripts->lineEdit()->text(),QLatin1String("/home"),i18n("*.R *.r|R source files (*.R, *.r)"));
0045     if (path.length()>0)
0046         kcfg_autorunScripts->lineEdit()->setText(path);
0047 }