mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-24 02:42:50 +00:00
qguiplatformplugin_kde: qt2KdeFilter() and kde2QtFilter() functions optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
be89c3a277
commit
3dfc8c65de
1 changed files with 70 additions and 42 deletions
|
@ -50,7 +50,7 @@ static QString qt2KdeFilter(const QString &f)
|
||||||
const QStringList list(f.split(";;").replaceInStrings("/", "\\/"));
|
const QStringList list(f.split(";;").replaceInStrings("/", "\\/"));
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
||||||
foreach(const QString it, list) {
|
foreach (const QString &it, list) {
|
||||||
int ob = it.lastIndexOf('('), cb = it.lastIndexOf(')');
|
int ob = it.lastIndexOf('('), cb = it.lastIndexOf(')');
|
||||||
|
|
||||||
if (cb != -1 && ob < cb) {
|
if (cb != -1 && ob < cb) {
|
||||||
|
@ -59,7 +59,7 @@ static QString qt2KdeFilter(const QString &f)
|
||||||
} else {
|
} else {
|
||||||
str << '\n';
|
str << '\n';
|
||||||
}
|
}
|
||||||
str << (it).mid(ob+1, (cb-ob)-1) << '|' << (it).mid(0, ob);
|
str << it.mid(ob+1, (cb-ob)-1) << '|' << it.mid(0, ob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return filter;
|
return filter;
|
||||||
|
@ -71,18 +71,16 @@ static QString qt2KdeFilter(const QString &f)
|
||||||
*/
|
*/
|
||||||
static void kde2QtFilter(const QString &orig, const QString &kde, QString *sel)
|
static void kde2QtFilter(const QString &orig, const QString &kde, QString *sel)
|
||||||
{
|
{
|
||||||
if(sel)
|
if (sel) {
|
||||||
{
|
|
||||||
const QStringList list(orig.split(";;"));
|
const QStringList list(orig.split(";;"));
|
||||||
int pos;
|
int pos;
|
||||||
|
|
||||||
foreach(const QString it, list) {
|
foreach (const QString &it, list) {
|
||||||
pos = it.indexOf(kde);
|
pos = it.indexOf(kde);
|
||||||
if (pos != -1 && pos > 0 &&
|
if (pos != -1 && pos > 0 &&
|
||||||
(it[pos-1] == '(' || it[pos-1] == ' ') &&
|
(it[pos-1] == '(' || it[pos-1] == ' ') &&
|
||||||
it.length() >= (kde.length() + pos) &&
|
it.length() >= (kde.length() + pos) &&
|
||||||
(it[pos+kde.length()] == ')' || it[pos+kde.length()] == ' '))
|
(it[pos+kde.length()] == ')' || it[pos+kde.length()] == ' ')) {
|
||||||
{
|
|
||||||
*sel = it;
|
*sel = it;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -153,24 +151,32 @@ public:
|
||||||
QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QStringList keys() const { return QStringList() << QLatin1String("kde"); }
|
virtual QStringList keys() const
|
||||||
|
{
|
||||||
|
return QStringList() << QLatin1String("kde");
|
||||||
|
}
|
||||||
|
|
||||||
virtual QString styleName()
|
virtual QString styleName()
|
||||||
{
|
{
|
||||||
const KConfigGroup pConfig(KGlobal::config(), "General");
|
const KConfigGroup pConfig(KGlobal::config(), "General");
|
||||||
return pConfig.readEntry("widgetStyle", KStyle::defaultStyle());
|
return pConfig.readEntry("widgetStyle", KStyle::defaultStyle());
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QPalette palette()
|
virtual QPalette palette()
|
||||||
{
|
{
|
||||||
return KGlobalSettings::createApplicationPalette();
|
return KGlobalSettings::createApplicationPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QString systemIconThemeName()
|
virtual QString systemIconThemeName()
|
||||||
{
|
{
|
||||||
return KIconTheme::current();
|
return KIconTheme::current();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QStringList iconThemeSearchPaths()
|
virtual QStringList iconThemeSearchPaths()
|
||||||
{
|
{
|
||||||
return KGlobal::dirs()->resourceDirs("icon");
|
return KGlobal::dirs()->resourceDirs("icon");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QIcon fileSystemIcon(const QFileInfo &file)
|
virtual QIcon fileSystemIcon(const QFileInfo &file)
|
||||||
{
|
{
|
||||||
KMimeType::Ptr mime = KMimeType::findByPath(file.filePath(), 0, true);
|
KMimeType::Ptr mime = KMimeType::findByPath(file.filePath(), 0, true);
|
||||||
|
@ -178,29 +184,32 @@ public:
|
||||||
return QIcon();
|
return QIcon();
|
||||||
return KIcon(mime->iconName());
|
return KIcon(mime->iconName());
|
||||||
}
|
}
|
||||||
virtual int platformHint(PlatformHint hint)
|
|
||||||
{
|
virtual int platformHint(QGuiPlatformPlugin::PlatformHint hint)
|
||||||
switch(hint)
|
|
||||||
{
|
{
|
||||||
|
switch(hint) {
|
||||||
case PH_ToolButtonStyle: {
|
case PH_ToolButtonStyle: {
|
||||||
KConfigGroup group(KGlobal::config(), "Toolbar style");
|
KConfigGroup group(KGlobal::config(), "Toolbar style");
|
||||||
QString style = group.readEntry("ToolButtonStyle", "TextUnderIcon").toLower();
|
QString style = group.readEntry("ToolButtonStyle", "TextUnderIcon").toLower();
|
||||||
if (style == "textbesideicon" || style == "icontextright")
|
if (style == "textbesideicon" || style == "icontextright") {
|
||||||
return Qt::ToolButtonTextBesideIcon;
|
return Qt::ToolButtonTextBesideIcon;
|
||||||
else if (style == "textundericon" || style == "icontextbottom")
|
} else if (style == "textundericon" || style == "icontextbottom") {
|
||||||
return Qt::ToolButtonTextUnderIcon;
|
return Qt::ToolButtonTextUnderIcon;
|
||||||
else if (style == "textonly")
|
} else if (style == "textonly") {
|
||||||
return Qt::ToolButtonTextOnly;
|
return Qt::ToolButtonTextOnly;
|
||||||
else
|
}
|
||||||
return Qt::ToolButtonIconOnly;
|
return Qt::ToolButtonIconOnly;
|
||||||
}
|
}
|
||||||
case PH_ToolBarIconSize:
|
case PH_ToolBarIconSize: {
|
||||||
return KIconLoader::global()->currentSize(KIconLoader::MainToolbar);
|
return KIconLoader::global()->currentSize(KIconLoader::MainToolbar);
|
||||||
case PH_ItemView_ActivateItemOnSingleClick:
|
}
|
||||||
|
case PH_ItemView_ActivateItemOnSingleClick: {
|
||||||
return KGlobalSettings::singleClick();
|
return KGlobalSettings::singleClick();
|
||||||
default:
|
}
|
||||||
|
default: {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return QGuiPlatformPlugin::platformHint(hint);
|
return QGuiPlatformPlugin::platformHint(hint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,6 +220,7 @@ public: // File Dialog integration
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
delete kdefd;
|
delete kdefd;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool fileDialogSetVisible(QFileDialog *qfd, bool visible)
|
virtual bool fileDialogSetVisible(QFileDialog *qfd, bool visible)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
|
@ -228,21 +238,24 @@ public: // File Dialog integration
|
||||||
|
|
||||||
if (visible) {
|
if (visible) {
|
||||||
switch (qfd->fileMode()) {
|
switch (qfd->fileMode()) {
|
||||||
case QFileDialog::AnyFile:
|
case QFileDialog::AnyFile: {
|
||||||
kdefd->setMode(KFile::LocalOnly | KFile::File);
|
kdefd->setMode(KFile::LocalOnly | KFile::File);
|
||||||
break;
|
break;
|
||||||
case QFileDialog::ExistingFile:
|
}
|
||||||
|
case QFileDialog::ExistingFile: {
|
||||||
kdefd->setMode(KFile::LocalOnly | KFile::File | KFile::ExistingOnly);
|
kdefd->setMode(KFile::LocalOnly | KFile::File | KFile::ExistingOnly);
|
||||||
break;
|
break;
|
||||||
case QFileDialog::ExistingFiles:
|
}
|
||||||
|
case QFileDialog::ExistingFiles: {
|
||||||
kdefd->setMode(KFile::LocalOnly | KFile::Files | KFile::ExistingOnly);
|
kdefd->setMode(KFile::LocalOnly | KFile::Files | KFile::ExistingOnly);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case QFileDialog::Directory:
|
case QFileDialog::Directory:
|
||||||
case QFileDialog::DirectoryOnly:
|
case QFileDialog::DirectoryOnly: {
|
||||||
kdefd->setMode(KFile::LocalOnly | KFile::Directory);
|
kdefd->setMode(KFile::LocalOnly | KFile::Directory);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
kdefd->setOperationMode((qfd->acceptMode() == QFileDialog::AcceptSave) ? KFileDialog::Saving : KFileDialog::Opening);
|
kdefd->setOperationMode((qfd->acceptMode() == QFileDialog::AcceptSave) ? KFileDialog::Saving : KFileDialog::Opening);
|
||||||
kdefd->setCaption(qfd->windowTitle());
|
kdefd->setCaption(qfd->windowTitle());
|
||||||
|
@ -252,49 +265,62 @@ public: // File Dialog integration
|
||||||
kdefd->setVisible(visible);
|
kdefd->setVisible(visible);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QDialog::DialogCode fileDialogResultCode(QFileDialog *qfd)
|
virtual QDialog::DialogCode fileDialogResultCode(QFileDialog *qfd)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
Q_ASSERT(kdefd);
|
Q_ASSERT(kdefd);
|
||||||
return QDialog::DialogCode(kdefd->result());
|
return QDialog::DialogCode(kdefd->result());
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void fileDialogSetDirectory(QFileDialog *qfd, const QString &directory)
|
virtual void fileDialogSetDirectory(QFileDialog *qfd, const QString &directory)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
kdefd->setUrl(KUrl::fromPath(directory));
|
kdefd->setUrl(KUrl::fromPath(directory));
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QString fileDialogDirectory(const QFileDialog *qfd) const
|
virtual QString fileDialogDirectory(const QFileDialog *qfd) const
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
Q_ASSERT(kdefd);
|
Q_ASSERT(kdefd);
|
||||||
return kdefd->baseUrl().pathOrUrl();
|
return kdefd->baseUrl().pathOrUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void fileDialogSelectFile(QFileDialog *qfd, const QString &filename)
|
virtual void fileDialogSelectFile(QFileDialog *qfd, const QString &filename)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
Q_ASSERT(kdefd);
|
Q_ASSERT(kdefd);
|
||||||
kdefd->setSelection(filename);
|
kdefd->setSelection(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QStringList fileDialogSelectedFiles(const QFileDialog *qfd) const
|
virtual QStringList fileDialogSelectedFiles(const QFileDialog *qfd) const
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
Q_ASSERT(kdefd);
|
Q_ASSERT(kdefd);
|
||||||
return kdefd->selectedFiles();
|
return kdefd->selectedFiles();
|
||||||
}
|
}
|
||||||
/*virtual void fileDialogSetFilter(QFileDialog *qfd)
|
|
||||||
|
#if 0
|
||||||
|
virtual void fileDialogSetFilter(QFileDialog *qfd)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
}*/
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
virtual void fileDialogSetNameFilters(QFileDialog *qfd, const QStringList &filters)
|
virtual void fileDialogSetNameFilters(QFileDialog *qfd, const QStringList &filters)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
Q_ASSERT(kdefd);
|
Q_ASSERT(kdefd);
|
||||||
kdefd->setFilter(qt2KdeFilter(filters.join(";;")));
|
kdefd->setFilter(qt2KdeFilter(filters.join(";;")));
|
||||||
}
|
}
|
||||||
/*virtual void fileDialogSelectNameFilter(QFileDialog *qfd, const QString &filter)
|
|
||||||
|
#if 0
|
||||||
|
virtual void fileDialogSelectNameFilter(QFileDialog *qfd, const QString &filter)
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
}*/
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
virtual QString fileDialogSelectedNameFilter(const QFileDialog *qfd) const
|
virtual QString fileDialogSelectedNameFilter(const QFileDialog *qfd) const
|
||||||
{
|
{
|
||||||
K_FD(qfd);
|
K_FD(qfd);
|
||||||
|
@ -303,6 +329,7 @@ public: // File Dialog integration
|
||||||
kde2QtFilter(qfd->nameFilters().join(";;"), kdefd->currentFilter(), &ret);
|
kde2QtFilter(qfd->nameFilters().join(";;"), kdefd->currentFilter(), &ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public: // ColorDialog
|
public: // ColorDialog
|
||||||
#define K_CD(QCD) KColorDialogBridge *kdecd = qvariant_cast<KColorDialogBridge *>(QCD->property("_k_bridge"))
|
#define K_CD(QCD) KColorDialogBridge *kdecd = qvariant_cast<KColorDialogBridge *>(QCD->property("_k_bridge"))
|
||||||
virtual void colorDialogDelete(QColorDialog *qcd)
|
virtual void colorDialogDelete(QColorDialog *qcd)
|
||||||
|
@ -330,6 +357,7 @@ public: // ColorDialog
|
||||||
kdecd->setVisible(visible);
|
kdecd->setVisible(visible);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void colorDialogSetCurrentColor(QColorDialog *qcd, const QColor &color)
|
virtual void colorDialogSetCurrentColor(QColorDialog *qcd, const QColor &color)
|
||||||
{
|
{
|
||||||
K_CD(qcd);
|
K_CD(qcd);
|
||||||
|
|
Loading…
Add table
Reference in a new issue