KJsEmbed

filedialog_binding.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 2005, 2006 Ian Reinhart Geiser <[email protected]>
3  Copyright (C) 2005, 2006 Matt Broadstone <[email protected]>
4  Copyright (C) 2005, 2006 Richard J. Moore <[email protected]>
5  Copyright (C) 2005, 2006 Erik L. Bunce <[email protected]>
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Library General Public License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to
19  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  Boston, MA 02110-1301, USA.
21 */
22 #include "filedialog_binding.h"
23 
24 #include <QStringList>
25 #include <QFileDialog>
26 #include <QDebug>
27 
28 #include <kjs/object.h>
29 
30 #include "static_binding.h"
31 
32 using namespace KJSEmbed;
33 
34 KJS::JSValue *callGetExistingDirectory(KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args)
35 {
36  QWidget *parent = KJSEmbed::extractObject<QWidget>(exec, args, 0, nullptr);
37  QString caption = KJSEmbed::extractVariant<QString>(exec, args, 1, QString());
38  QString dir = KJSEmbed::extractVariant<QString>(exec, args, 2, QString());
39  QFileDialog::Options options = (QFileDialog::Options)KJSEmbed::extractVariant<uint>(exec, args, 3, QFileDialog::ShowDirsOnly);
40 
41  return KJS::jsString(QFileDialog::getExistingDirectory(parent, caption, dir, options));
42 }
43 
44 KJS::JSValue *callGetOpenFileName(KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args)
45 {
46  QWidget *parent = KJSEmbed::extractObject<QWidget>(exec, args, 0, nullptr);
47  QString caption = KJSEmbed::extractVariant<QString>(exec, args, 1, "");
48  QString dir = KJSEmbed::extractVariant<QString>(exec, args, 2, "");
49  QString filter = KJSEmbed::extractVariant<QString>(exec, args, 3, "");
50 // QString *selectedFilter = KJSEmbed::extractVariant<QString>(exec, args, 4, 0);
51  QFileDialog::Options options = (QFileDialog::Options)KJSEmbed::extractVariant<uint>(exec, args, 4, 0);
52 
53  return KJS::jsString(QFileDialog::getOpenFileName(parent, caption, dir, filter, nullptr, options));
54 }
55 
56 KJS::JSValue *callGetOpenFileNames(KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args)
57 {
58  QWidget *parent = KJSEmbed::extractObject<QWidget>(exec, args, 0, nullptr);
59  QString caption = KJSEmbed::extractVariant<QString>(exec, args, 1, QString());
60  QString dir = KJSEmbed::extractVariant<QString>(exec, args, 2, QString());
61  QString filter = KJSEmbed::extractVariant<QString>(exec, args, 3, QString());
62 // QString *selectedFilter = KJSEmbed::extractVariant<QString>(exec, args, 4, 0);
63  QFileDialog::Options options = (QFileDialog::Options)KJSEmbed::extractVariant<uint>(exec, args, 4, 0);
64 
65  QStringList fileNames = QFileDialog::getOpenFileNames(parent, caption, dir, filter, nullptr, options);
66 
67  return convertToValue(exec, fileNames);
68 }
69 
70 KJS::JSValue *callGetSaveFileName(KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args)
71 {
72  QWidget *parent = KJSEmbed::extractObject<QWidget>(exec, args, 0, nullptr);
73  QString caption = KJSEmbed::extractVariant<QString>(exec, args, 1, QString());
74  QString dir = KJSEmbed::extractVariant<QString>(exec, args, 2, QString());
75  QString filter = KJSEmbed::extractVariant<QString>(exec, args, 3, QString());
76 // QString *selectedFilter = KJSEmbed::extractVariant<QString>(exec, args, 4, 0);
77  QFileDialog::Options options = (QFileDialog::Options)KJSEmbed::extractVariant<uint>(exec, args, 4, 0);
78 
79  return KJS::jsString(QFileDialog::getSaveFileName(parent, caption, dir, filter, nullptr, options));
80 }
81 const Method FileDialog::FileDialogMethods[] = {
82  {"getExistingDirectory", 1, KJS::DontDelete | KJS::ReadOnly, &callGetExistingDirectory },
83  {"getOpenFileName", 1, KJS::DontDelete | KJS::ReadOnly, &callGetOpenFileName },
84  {"getOpenFileNames", 1, KJS::DontDelete | KJS::ReadOnly, &callGetOpenFileNames },
85  {"getSaveFileName", 0, KJS::DontDelete | KJS::ReadOnly, &callGetSaveFileName },
86  {nullptr, 0, 0, nullptr }
87 };
QString caption()
KEDUVOCDOCUMENT_EXPORT QStringList fileNames(const QString &language=QString())
typedef Options
QStringList getOpenFileNames(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
QFuture< void > filter(Sequence &sequence, KeepFunctor filterFunction)
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
QString getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
KIOFILEWIDGETS_EXPORT QString dir(const QString &fileClass)
Method structure.
QString getExistingDirectory(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Dec 10 2023 03:59:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.