[win-nix] fix bug 32225

This commit is contained in:
Maxim Kadushkin
2017-07-03 15:29:26 +03:00
parent eaa1396c01
commit 35348ce9ad
3 changed files with 40 additions and 5 deletions

View File

@ -37,6 +37,7 @@
#include "../Common/OfficeFileFormats.h"
#include <QList>
#include <QDebug>
#if defined(_WIN32)
@ -71,7 +72,6 @@ CFileDialogWrapper::CFileDialogWrapper(QWidget * parent) : QObject(parent)
m_mapFilters[AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF] = tr("PDF File (*.pdf)");
m_mapFilters[AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_DJVU] = tr("DJVU File (*.djvu)");
m_mapFilters[AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_XPS] = tr("XPS File (*.xps)");
}
CFileDialogWrapper::~CFileDialogWrapper()
@ -169,8 +169,12 @@ QString CFileDialogWrapper::getFilter(const QString& extension) const
QString CFileDialogWrapper::modalOpen(const QString& path, const QString& filter)
{
QString _filter_ = filter.length() ? filter : tr("All files (*.*)");
QString _sel_filter = tr("All files (*.*)");
QString _filter_ = filter;
if ( _filter_.isEmpty() ) {
_filter_ = joinFilters();
}
QString _sel_filter = m_mapFilters[AVS_OFFICESTUDIO_FILE_UNKNOWN];
// QWidget * p = qobject_cast<QWidget *>(parent());
return QFileDialog::getOpenFileName(
@ -216,3 +220,33 @@ int CFileDialogWrapper::getFormat()
{
return m_format;
}
QString CFileDialogWrapper::joinFilters() const
{
auto _get_all_exts = [] (const QList<QString>& l) {
QRegExp re("[\\w\\s]+\\((\\*\\.\\w+)\\)");
QString extns;
for ( auto f : l ) {
if ( !(re.indexIn(f) < 0) ) {
if ( !extns.isEmpty() )
extns.append(" ");
extns.append( re.cap(1) );
}
}
return extns;
};
QString _out;
QList<QString> _vl(m_mapFilters.values());
// _vl.insert(1, tr("All supported documents") + " (" + _get_all_exts(_vl) + ")");
for ( auto f : _vl ) {
if ( !_out.isEmpty() )
_out.append(";;");
_out.append(f);
}
return _out;
}

View File

@ -65,6 +65,7 @@ public:
private:
QString getFilter(const QString&) const;
int getKey(const QString &value);
QString joinFilters() const;
QString m_filters;
QMap<int, QString> m_mapFilters;

View File

@ -33,8 +33,8 @@
#ifndef VERSION_H
#define VERSION_H
#define VER_FILEVERSION 4,3,3,332
#define VER_FILEVERSION_STR "4.3.3.332\0"
#define VER_FILEVERSION 4,3,3,334
#define VER_FILEVERSION_STR "4.3.3.334\0"
#define VER_PRODUCTVERSION VER_FILEVERSION
#define VER_PRODUCTVERSION_STR "4.3\0"