File indexing completed on 2023-10-01 07:35:56
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 }