23 #if defined (HAVE_CONFIG_H)
27 #include <QApplication>
29 #include <QFileDialog>
49 if (! qtHandlesInitialized)
55 qRegisterMetaType<graphics_object> (
"graphics_object");
72 root.
set (
"defaultuicontrolbackgroundcolor",
74 root.
set (
"defaultuicontrolforegroundcolor",
76 (p.color (QPalette::WindowText))));
77 root.
set (
"defaultuipanelbackgroundcolor",
79 root.
set (
"defaultuipanelforegroundcolor",
81 (p.color (QPalette::WindowText))));
82 root.
set (
"defaultuipanelhighlightcolor",
84 root.
set (
"defaultuipanelshadowcolor",
86 root.
set (
"defaultuibuttongroupbackgroundcolor",
88 root.
set (
"defaultuibuttongroupforegroundcolor",
90 (p.color (QPalette::WindowText))));
91 root.
set (
"defaultuibuttongrouphighlightcolor",
93 root.
set (
"defaultuibuttongroupshadowcolor",
96 qtHandlesInitialized =
true;
101 error (
"__init_qt__: QApplication object must exist.");
110 if (qtHandlesInitialized)
120 qtHandlesInitialized =
false;
148 "__init_qt__.cc",
"");
151 "__init_qt__.cc",
"");
157 makeFilterSpecs (
const Cell& filters)
161 QStringList filterSpecs;
162 QRegExp parenRe (
" ?\\(.*\\)\\s*$");
164 for (
int i = 0;
i < filters.
rows ();
i++)
166 QStringList extList =
168 QString desc =
fromStdString (filters(
i, 1).string_value ()).trimmed ();
171 if (desc.contains (parenRe))
176 desc.remove (parenRe);
179 specItem = QString (
"%1 (%2)").arg (desc).arg (extList.join (
" "));
181 filterSpecs.append (specItem);
188 appendDirSep (
const QString&
d)
190 if (! d.endsWith (
"/") && ! d.endsWith (QDir::separator ()))
212 bool isMultiSelect = (
args(4).string_value () ==
"on");
221 if (defaultFileName.isEmpty ())
222 defaultFileName = defaultDirectory;
224 defaultFileName = defaultDirectory +
"/" + defaultFileName;
226 QStringList filterSpecs = makeFilterSpecs (
args(0).cell_value ());
232 QFileDialog::getOpenFileNames (0, caption, defaultFileName,
233 filterSpecs.join (
";;"), &
filter, 0);
235 if (! files.isEmpty ())
237 Cell cFiles (1, files.length ());
241 foreach (
const QString&
s, files)
245 if (dirName.isEmpty ())
246 dirName = appendDirSep (
fi.canonicalPath ());
252 if (! filter.isEmpty ())
253 retval(2) =
static_cast<double> (filterSpecs.indexOf (filter) + 1);
260 QFileDialog::getOpenFileName (0, caption, defaultFileName,
261 filterSpecs.join (
";;"), &
filter, 0);
263 if (! fileName.isNull ())
265 QFileInfo
fi (fileName);
269 if (! filter.isEmpty ())
270 retval(2) =
static_cast<double> (filterSpecs.indexOf (filter) + 1);
299 if (defaultFileName.isEmpty ())
300 defaultFileName = defaultDirectory;
302 defaultFileName = defaultDirectory +
"/" + defaultFileName;
304 QStringList filterSpecs = makeFilterSpecs (
args(0).cell_value ());
308 QFileDialog::getSaveFileName (0, caption, defaultFileName,
309 filterSpecs.join (
";;"), &
filter, 0);
311 if (! fileName.isNull ())
313 QFileInfo
fi (fileName);
320 if (! filter.isEmpty ())
321 retval(2) =
static_cast<double> (filterSpecs.indexOf (filter) + 1);
340 QString dirName = QFileDialog::getExistingDirectory (0, caption,
343 if (! dirName.isNull ())
OCTINTERP_API void install_builtin_function(octave_builtin::fcn f, const std::string &name, const std::string &file, const std::string &doc, bool can_hide_function=true)
#define DEFUN(name, args_name, nargout_name, doc)
void error(const char *fmt,...)
QString fromStdString(const std::string &s)
static void load_toolkit(const graphics_toolkit &tk)
octave_idx_type rows(void) const
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
void install___init_qt___functions(void)
Matrix toRgb(const QColor &c)
static void unload_toolkit(const std::string &name)
static bool qtHandlesInitialized
MArray< T > filter(MArray< T > &b, MArray< T > &a, MArray< T > &x, MArray< T > &si, int dim=0)
static void enable_event_processing(bool enable=true)
void set(const caseless_str &name, const octave_value &val)
OCTAVE_EXPORT octave_value_list F__shutdown_qt__(const octave_value_list &, int)
otherwise an error message is printed The permission mask is a UNIX concept used when creating new objects on a file system such as files
=val(i)}if ode{val(i)}occurs in table i
static graphics_object get_object(double val)
OCTAVE_EXPORT octave_value_list F__init_qt__(const octave_value_list &, int)
std::string toStdString(const QString &s)
return octave_value(v1.char_array_value().concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string())? '\'': '"'))
OCTINTERP_API void octave_add_atexit_function(const std::string &fname)