32static const char*
folder_fav[] = {
"17 16 4 1",
"# c #000000",
". c None",
"a c #ffff98",
33 "b c #cc0000",
".................",
".................",
"...#####.........",
34 "..#aaaaa#........",
".###############.",
".#aaaaaaaaaaaaa#.",
".#aaaa##a##aaaa#.",
35 ".#aaa#bb#bb#aaa#.",
".#aaa#bbbbb#aaa#.",
".#aaa#bbbbb#aaa#.",
".#aaaa#bbb#aaaa#.",
36 ".#aaaaa#b#aaaaa#.",
".#aaaaaa#aaaaaa#.",
".#aaaaaaaaaaaaa#.",
".###############.",
43 QString s = fi.absoluteFilePath() +
"/preview.tif";
44 if (!QFile::exists(s)) s = fi.absoluteFilePath() +
"/preview.png";
45 if (!QFile::exists(s))
_pm->setPixmap(QPixmap());
51 _pm->setPixmap(QPixmap());
52 }
else if (fi.exists()) {
53 QImage img(fi.absoluteFilePath());
55 _pm->setPixmap(QPixmap::fromImage(img.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation)));
57 _pm->setPixmap(QPixmap());
59 _pm->setPixmap(QPixmap());
60 _pm->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
64 _pm =
new QLabel(
this);
65 _pm->setFrameStyle(QFrame::StyledPanel);
66 _pm->setBackgroundRole(QPalette::Base);
67 _pm->setAutoFillBackground(
true);
68 QVBoxLayout* layout =
new QVBoxLayout;
69 layout->setSpacing(0);
71 layout->addWidget(
_pm);
83 QList<QLineEdit*> lineedits = findChildren<QLineEdit*>(QRegExp());
84 if (lineedits.size())
_nameEdit = (QLineEdit*)lineedits.at(0);
86 _nameEdit->disconnect(SIGNAL(returnPressed()));
91 QList<QPushButton*> myWidgets = findChildren<QPushButton*>(QRegExp());
92 for (
int w = 0; w < myWidgets.size(); w++) {
93 QPushButton* item = (QPushButton*)myWidgets.at(w);
94 if (item->text().contains(
"Open"))
_okButton = item;
98 connect(
this, SIGNAL(currentChanged(
const QString&)),
this, SLOT(
selChanged(
const QString&)));
109 setMinimumWidth(680);
114 if (fileMode() != QFileDialog::DirectoryOnly)
return;
116 if (entry ==
"")
return;
121 if (!d.exists(entry)) {
122 if (d.mkdir(entry)) {
128 QTimer::singleShot(200,
this, SLOT(
resetDir()));
138 if (str.contains(
'/')) {
144 int slashcount = str.count(
'/');
146 QString foundDir =
"";
147 for (
int i = 0; i < slashcount; i++) {
148 QString section = str.section(
'/', 0, i);
149 if (d.cd(section)) foundDir = section;
151 if (foundDir.length()) {
152 setDirectory(foundDir);
153 QString remainder = str.right(str.length() - (foundDir.length() + 1));
157 if (d.cd(str)) setDirectory(str);
159 }
else if (fileMode() == QFileDialog::DirectoryOnly)
166 QGridLayout* layout = findChild<QGridLayout*>(
"gridLayout");
171 std::string favlocation = getenv(
"HOME");
172 favlocation +=
"/paint3d/favorites/";
174 QString dirpath = QString::fromStdString(favlocation);
175 if (!d.cd(dirpath)) d.mkpath(dirpath);
177 if (!d.cd(dirpath)) d.mkpath(dirpath);
179 if (!(linkdir.isEmpty() || linkname.isEmpty())) {
180 if (!QFile::exists(dirpath + linkname)) QFile::link(linkdir, dirpath + linkname);
186 QToolButton* fav =
new QToolButton(
this);
187 fav->setFixedSize(18, 18);
188 fav->setIcon(folderFav);
189 fav->setToolTip(
"Favorites");
191 layout->addWidget(fav, 0, 3);
201 if (paths.isEmpty())
return;
203 QStringList h = history();
204 for (QStringList::Iterator
it = paths.begin();
it != paths.end(); ++
it) {
205 if (!h.contains(*
it)) h.push_back(*
it);
215 if (filter.isEmpty())
return QStringList();
217 int i = filter.indexOf(
";;", 0);
220 if (filter.indexOf(
"\n", 0) != -1) {
222 i = filter.indexOf(sep, 0);
226 return filter.split(sep);
230 if (!filter.isEmpty()) {
232 setNameFilters(filters);
235 if (!startWith.isEmpty()) setDirectory(startWith);
236 if (!caption.isNull()) setWindowTitle(caption);
237 setFileMode(QFileDialog::ExistingFile);
238 setAcceptMode(QFileDialog::AcceptOpen);
242 if (exec() == QDialog::Accepted) {
243 result = selectedFiles().first();
252 if (!filter.isEmpty()) {
254 setNameFilters(filters);
257 if (!startWith.isEmpty()) setDirectory(startWith);
258 if (!caption.isNull()) setWindowTitle(caption);
259 setFileMode(QFileDialog::ExistingFiles);
260 setAcceptMode(QFileDialog::AcceptOpen);
265 if (exec() == QDialog::Accepted) {
266 lst = selectedFiles();
275 if (!filter.isEmpty()) {
277 setNameFilters(filters);
280 if (!startWith.isEmpty()) setDirectory(startWith);
281 if (!caption.isNull()) setWindowTitle(caption);
282 setFileMode(QFileDialog::DirectoryOnly);
286 if (exec() == QDialog::Accepted) {
287 result = selectedFiles().first();
296 const QString& startWith,
297 const QString& filter) {
306 if (!filter.isEmpty()) {
308 setNameFilters(filters);
311 if (!startWith.isEmpty()) setDirectory(startWith);
312 if (!caption.isNull()) setWindowTitle(caption);
313 setFileMode(QFileDialog::AnyFile);
314 setAcceptMode(QFileDialog::AcceptSave);
318 if (exec() == QDialog::Accepted) {
319 result = selectedFiles().first();
328 QGridLayout* layout = findChild<QGridLayout*>(
"gridLayout");
332 _pw->setFixedWidth(160);
333 _pw->setMinimumHeight(160);
334 layout->addWidget(
_pw, 1, 3);
342 QGridLayout* layout = findChild<QGridLayout*>(
"gridLayout");
345 _cb =
new QCheckBox(s,
this);
346 _cb->setChecked(
false);
348 layout->addWidget(
_cb, 4,
_combo ? 2 : 0);
352 if (!
_cb)
return false;
353 return _cb->isChecked();
365 QGridLayout* layout = findChild<QGridLayout*>(
"gridLayout");
370 _combo =
new QComboBox(
this);
371 _combo->setEditable(
true);
372 _combo->setFixedWidth(160);
373 for (QStringList::Iterator
it = sl.begin();
it != sl.end(); ++
it)
_combo->addItem(*
it);
375 int rownum = layout->rowCount();
376 layout->addWidget(
_combo, rownum, 1);
399 QList<QUrl> urls = sidebarUrls();
400 QUrl url = QUrl::fromLocalFile(s);
401 if (url.isValid() && QFile::exists(s)) {
403 setSidebarUrls(urls);
static const char * folder_fav[]
static QStringList makeFiltersList(const QString &filter)
QString _workingDirectory
void addLookInEntries(QStringList paths)
QString getExistingOrNewDirectory(const QString &caption=QString::null, const QString &startWith=QString::null, const QString &filter=QString::null)
QString getOpenFileName(const QString &caption=QString::null, const QString &startWith=QString::null, const QString &filter=QString::null)
QStringList getOpenFileNames(const QString &caption=QString::null, const QString &startWith=QString::null, const QString &filter=QString::null)
ExprFileDialog(QWidget *parent=0)
void addCheckBox(QString s)
void setButtonName(const QString &str)
void addSidebarShortcut(const QString &s)
QString getExistingDirectory(const QString &caption=QString::null, const QString &startWith=QString::null, const QString &filter=QString::null)
void restoreLookInEntries()
void addComboBox(QString s, QStringList sl)
QString getSaveFileName(const QString &caption=QString::null, const QString &startWith=QString::null, const QString &filter=QString::null)
void addFavoritesButton(QString dirname, QString linkname, QString linkdir)
void selChanged(const QString &path)
you may not use this file except in compliance with the License and the following modification to it
double max(double x, double y)
double min(double x, double y)