mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 10:22:49 +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
|
@ -48,18 +48,18 @@ static QString qt2KdeFilter(const QString &f)
|
|||
QString filter;
|
||||
QTextStream str(&filter, QIODevice::WriteOnly);
|
||||
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(')');
|
||||
|
||||
if(cb != -1 && ob < cb) {
|
||||
if(first) {
|
||||
if (cb != -1 && ob < cb) {
|
||||
if (first) {
|
||||
first=false;
|
||||
} else {
|
||||
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;
|
||||
|
@ -71,19 +71,17 @@ static QString qt2KdeFilter(const QString &f)
|
|||
*/
|
||||
static void kde2QtFilter(const QString &orig, const QString &kde, QString *sel)
|
||||
{
|
||||
if(sel)
|
||||
{
|
||||
if (sel) {
|
||||
const QStringList list(orig.split(";;"));
|
||||
int pos;
|
||||
|
||||
foreach(const QString it, list) {
|
||||
foreach (const QString &it, list) {
|
||||
pos = it.indexOf(kde);
|
||||
if(pos != -1 && pos > 0 &&
|
||||
if (pos != -1 && pos > 0 &&
|
||||
(it[pos-1] == '(' || it[pos-1] == ' ') &&
|
||||
it.length() >= (kde.length() + pos) &&
|
||||
(it[pos+kde.length()] == ')' || it[pos+kde.length()] == ' '))
|
||||
{
|
||||
*sel=it;
|
||||
(it[pos+kde.length()] == ')' || it[pos+kde.length()] == ' ')) {
|
||||
*sel = it;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -153,24 +151,32 @@ public:
|
|||
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()
|
||||
{
|
||||
const KConfigGroup pConfig(KGlobal::config(), "General");
|
||||
return pConfig.readEntry("widgetStyle", KStyle::defaultStyle());
|
||||
}
|
||||
|
||||
virtual QPalette palette()
|
||||
{
|
||||
return KGlobalSettings::createApplicationPalette();
|
||||
}
|
||||
|
||||
virtual QString systemIconThemeName()
|
||||
{
|
||||
return KIconTheme::current();
|
||||
}
|
||||
|
||||
virtual QStringList iconThemeSearchPaths()
|
||||
{
|
||||
return KGlobal::dirs()->resourceDirs("icon");
|
||||
}
|
||||
|
||||
virtual QIcon fileSystemIcon(const QFileInfo &file)
|
||||
{
|
||||
KMimeType::Ptr mime = KMimeType::findByPath(file.filePath(), 0, true);
|
||||
|
@ -178,28 +184,31 @@ public:
|
|||
return QIcon();
|
||||
return KIcon(mime->iconName());
|
||||
}
|
||||
virtual int platformHint(PlatformHint hint)
|
||||
|
||||
virtual int platformHint(QGuiPlatformPlugin::PlatformHint hint)
|
||||
{
|
||||
switch(hint)
|
||||
{
|
||||
case PH_ToolButtonStyle: {
|
||||
KConfigGroup group(KGlobal::config(), "Toolbar style");
|
||||
QString style = group.readEntry("ToolButtonStyle", "TextUnderIcon").toLower();
|
||||
if (style == "textbesideicon" || style == "icontextright")
|
||||
return Qt::ToolButtonTextBesideIcon;
|
||||
else if (style == "textundericon" || style == "icontextbottom")
|
||||
return Qt::ToolButtonTextUnderIcon;
|
||||
else if (style == "textonly")
|
||||
return Qt::ToolButtonTextOnly;
|
||||
else
|
||||
switch(hint) {
|
||||
case PH_ToolButtonStyle: {
|
||||
KConfigGroup group(KGlobal::config(), "Toolbar style");
|
||||
QString style = group.readEntry("ToolButtonStyle", "TextUnderIcon").toLower();
|
||||
if (style == "textbesideicon" || style == "icontextright") {
|
||||
return Qt::ToolButtonTextBesideIcon;
|
||||
} else if (style == "textundericon" || style == "icontextbottom") {
|
||||
return Qt::ToolButtonTextUnderIcon;
|
||||
} else if (style == "textonly") {
|
||||
return Qt::ToolButtonTextOnly;
|
||||
}
|
||||
return Qt::ToolButtonIconOnly;
|
||||
}
|
||||
case PH_ToolBarIconSize:
|
||||
return KIconLoader::global()->currentSize(KIconLoader::MainToolbar);
|
||||
case PH_ItemView_ActivateItemOnSingleClick:
|
||||
return KGlobalSettings::singleClick();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
case PH_ToolBarIconSize: {
|
||||
return KIconLoader::global()->currentSize(KIconLoader::MainToolbar);
|
||||
}
|
||||
case PH_ItemView_ActivateItemOnSingleClick: {
|
||||
return KGlobalSettings::singleClick();
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QGuiPlatformPlugin::platformHint(hint);
|
||||
}
|
||||
|
@ -211,6 +220,7 @@ public: // File Dialog integration
|
|||
K_FD(qfd);
|
||||
delete kdefd;
|
||||
}
|
||||
|
||||
virtual bool fileDialogSetVisible(QFileDialog *qfd, bool visible)
|
||||
{
|
||||
K_FD(qfd);
|
||||
|
@ -228,22 +238,25 @@ public: // File Dialog integration
|
|||
|
||||
if (visible) {
|
||||
switch (qfd->fileMode()) {
|
||||
case QFileDialog::AnyFile:
|
||||
case QFileDialog::AnyFile: {
|
||||
kdefd->setMode(KFile::LocalOnly | KFile::File);
|
||||
break;
|
||||
case QFileDialog::ExistingFile:
|
||||
}
|
||||
case QFileDialog::ExistingFile: {
|
||||
kdefd->setMode(KFile::LocalOnly | KFile::File | KFile::ExistingOnly);
|
||||
break;
|
||||
case QFileDialog::ExistingFiles:
|
||||
}
|
||||
case QFileDialog::ExistingFiles: {
|
||||
kdefd->setMode(KFile::LocalOnly | KFile::Files | KFile::ExistingOnly);
|
||||
break;
|
||||
}
|
||||
case QFileDialog::Directory:
|
||||
case QFileDialog::DirectoryOnly:
|
||||
case QFileDialog::DirectoryOnly: {
|
||||
kdefd->setMode(KFile::LocalOnly | KFile::Directory);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
kdefd->setOperationMode((qfd->acceptMode() == QFileDialog::AcceptSave) ? KFileDialog::Saving : KFileDialog::Opening);
|
||||
kdefd->setCaption(qfd->windowTitle());
|
||||
kdefd->setConfirmOverwrite(qfd->confirmOverwrite());
|
||||
|
@ -252,49 +265,62 @@ public: // File Dialog integration
|
|||
kdefd->setVisible(visible);
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual QDialog::DialogCode fileDialogResultCode(QFileDialog *qfd)
|
||||
{
|
||||
K_FD(qfd);
|
||||
Q_ASSERT(kdefd);
|
||||
return QDialog::DialogCode(kdefd->result());
|
||||
}
|
||||
|
||||
virtual void fileDialogSetDirectory(QFileDialog *qfd, const QString &directory)
|
||||
{
|
||||
K_FD(qfd);
|
||||
kdefd->setUrl(KUrl::fromPath(directory));
|
||||
}
|
||||
|
||||
virtual QString fileDialogDirectory(const QFileDialog *qfd) const
|
||||
{
|
||||
K_FD(qfd);
|
||||
Q_ASSERT(kdefd);
|
||||
return kdefd->baseUrl().pathOrUrl();
|
||||
}
|
||||
|
||||
virtual void fileDialogSelectFile(QFileDialog *qfd, const QString &filename)
|
||||
{
|
||||
K_FD(qfd);
|
||||
Q_ASSERT(kdefd);
|
||||
kdefd->setSelection(filename);
|
||||
}
|
||||
|
||||
virtual QStringList fileDialogSelectedFiles(const QFileDialog *qfd) const
|
||||
{
|
||||
K_FD(qfd);
|
||||
Q_ASSERT(kdefd);
|
||||
return kdefd->selectedFiles();
|
||||
}
|
||||
/*virtual void fileDialogSetFilter(QFileDialog *qfd)
|
||||
|
||||
#if 0
|
||||
virtual void fileDialogSetFilter(QFileDialog *qfd)
|
||||
{
|
||||
K_FD(qfd);
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual void fileDialogSetNameFilters(QFileDialog *qfd, const QStringList &filters)
|
||||
{
|
||||
K_FD(qfd);
|
||||
Q_ASSERT(kdefd);
|
||||
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);
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual QString fileDialogSelectedNameFilter(const QFileDialog *qfd) const
|
||||
{
|
||||
K_FD(qfd);
|
||||
|
@ -303,6 +329,7 @@ public: // File Dialog integration
|
|||
kde2QtFilter(qfd->nameFilters().join(";;"), kdefd->currentFilter(), &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public: // ColorDialog
|
||||
#define K_CD(QCD) KColorDialogBridge *kdecd = qvariant_cast<KColorDialogBridge *>(QCD->property("_k_bridge"))
|
||||
virtual void colorDialogDelete(QColorDialog *qcd)
|
||||
|
@ -330,6 +357,7 @@ public: // ColorDialog
|
|||
kdecd->setVisible(visible);
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void colorDialogSetCurrentColor(QColorDialog *qcd, const QColor &color)
|
||||
{
|
||||
K_CD(qcd);
|
||||
|
|
Loading…
Add table
Reference in a new issue