fallback for unknow icons when using an integration plugin
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@142 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
05ec5eb40c
commit
bbdf870dbe
17
src/main.cpp
17
src/main.cpp
|
@ -358,7 +358,17 @@ const QIcon& getIcon(const QString& name){
|
||||||
if(CachedIcon)
|
if(CachedIcon)
|
||||||
return *CachedIcon;
|
return *CachedIcon;
|
||||||
QIcon* NewIcon=NULL;
|
QIcon* NewIcon=NULL;
|
||||||
if(IconLoader==NULL){
|
if(IconLoader){
|
||||||
|
NewIcon=new QIcon(IconLoader->getIcon(name));
|
||||||
|
if(NewIcon->isNull()){
|
||||||
|
delete NewIcon;
|
||||||
|
NewIcon=NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
IconCache.insert(name,NewIcon);
|
||||||
|
}
|
||||||
|
if(!NewIcon)
|
||||||
|
{
|
||||||
QFileInfo IconFile(AppDir+"/../share/keepass/icons/"+name+".png");
|
QFileInfo IconFile(AppDir+"/../share/keepass/icons/"+name+".png");
|
||||||
if(!IconFile.isFile() || !IconFile.exists() || !IconFile.isReadable()){
|
if(!IconFile.isFile() || !IconFile.exists() || !IconFile.isReadable()){
|
||||||
///TODO 0.2.3 error handling
|
///TODO 0.2.3 error handling
|
||||||
|
@ -366,10 +376,7 @@ const QIcon& getIcon(const QString& name){
|
||||||
}
|
}
|
||||||
NewIcon=new QIcon(AppDir+"/../share/keepass/icons/"+name+".png");
|
NewIcon=new QIcon(AppDir+"/../share/keepass/icons/"+name+".png");
|
||||||
IconCache.insert(name,NewIcon);
|
IconCache.insert(name,NewIcon);
|
||||||
} else {
|
}
|
||||||
NewIcon=new QIcon(IconLoader->getIcon(name));
|
|
||||||
IconCache.insert(name,NewIcon);
|
|
||||||
}
|
|
||||||
return *NewIcon;
|
return *NewIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2005-2006 by Tarek Saidi *
|
* Copyright (C) 2005-2007 by Tarek Saidi *
|
||||||
* tarek.saidi@arcor.de *
|
* tarek.saidi@arcor.de *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
@ -24,9 +24,12 @@
|
||||||
#include <kiconloader.h>
|
#include <kiconloader.h>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <kurl.h>
|
||||||
#include "keepassx-kde.h"
|
#include "keepassx-kde.h"
|
||||||
|
|
||||||
QHash<QString,QString>IconMap;
|
QHash<QString,QString>IconMap;
|
||||||
|
int LastFilter;
|
||||||
|
|
||||||
Q_EXPORT_PLUGIN2(keepassx_kde, KdePlugin)
|
Q_EXPORT_PLUGIN2(keepassx_kde, KdePlugin)
|
||||||
|
|
||||||
|
@ -54,17 +57,40 @@ void createIconMap(){
|
||||||
IconMap["fileopen"]="document-open";
|
IconMap["fileopen"]="document-open";
|
||||||
IconMap["filesave"]="document-save";
|
IconMap["filesave"]="document-save";
|
||||||
IconMap["filesaveas"]="document-save-as";
|
IconMap["filesaveas"]="document-save-as";
|
||||||
IconMap["filesaveasdisabled"]="document-save-as"; ///FIXME
|
IconMap["filesaveasdisabled"]="document-save-as"; ///FIXME needs to be grayed to reflect it's status
|
||||||
IconMap["generator"]="roll";
|
IconMap["generator"]="roll";
|
||||||
IconMap["groupsearch"]="file-find";
|
IconMap["groupsearch"]="file-find";
|
||||||
IconMap["help"]="help-contents";
|
IconMap["help"]="help-contents";
|
||||||
IconMap["key"]="password";
|
IconMap["key"]="password";
|
||||||
IconMap["manual"]="help-contents";
|
IconMap["manual"]="help-contents";
|
||||||
|
IconMap["newentry"]="kgpg-key3-kpgp";
|
||||||
|
IconMap["newgroup"]="folder";
|
||||||
|
IconMap["ok"]="ok";
|
||||||
|
IconMap["openurl"]="network";
|
||||||
|
IconMap["search"]="edit-find";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString KdePlugin::openExistingFileDialog(QWidget* parent,QString title,QString dir,QStringList Filters,int SelectedFilter){
|
QString convertFilters(const QStringList& qtfilters){
|
||||||
return KFileDialog::getOpenFileName();
|
QString kdefilters;
|
||||||
|
for(int i=0;i<qtfilters.size();i++){
|
||||||
|
int a=qtfilters[i].indexOf('(');
|
||||||
|
int b=qtfilters[i].indexOf(')');
|
||||||
|
QString exts=qtfilters[i].mid(a+1,b-a-1);
|
||||||
|
kdefilters+=exts;
|
||||||
|
kdefilters+='|';
|
||||||
|
kdefilters+=qtfilters[i];
|
||||||
|
if(i<qtfilters.size()-1)kdefilters+='\n';
|
||||||
|
}
|
||||||
|
return kdefilters;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString KdePlugin::openExistingFileDialog(QWidget* parent,QString title,QString dir,QStringList Filters,int SelectedFilter){
|
||||||
|
KFileDialog FileDlg(KUrl(dir),convertFilters(Filters),parent);
|
||||||
|
FileDlg.setMode(KFile::ExistingOnly | KFile::File);
|
||||||
|
if(!FileDlg.exec())return QString();
|
||||||
|
//LastFilter=FileDlg.filters().indexOf(FileDlg.selectedFilter());
|
||||||
|
return FileDlg.selectedFiles()[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList KdePlugin::openExistingFilesDialog(QWidget* parent,QString title,QString dir,QStringList Filters,int SelectedFilter){
|
QStringList KdePlugin::openExistingFilesDialog(QWidget* parent,QString title,QString dir,QStringList Filters,int SelectedFilter){
|
||||||
|
@ -82,7 +108,8 @@ QApplication* KdePlugin::getMainAppObject(int argc, char** argv){
|
||||||
|
|
||||||
QIcon KdePlugin::getIcon(const QString& name){
|
QIcon KdePlugin::getIcon(const QString& name){
|
||||||
KIconLoader loader;
|
KIconLoader loader;
|
||||||
QPixmap pxm=loader.loadIcon(IconMap.value(name),K3Icon::Desktop);
|
QPixmap pxm=loader.loadIcon(IconMap.value(name),K3Icon::Desktop,0,K3Icon::DefaultState,NULL, true);
|
||||||
|
if(pxm.isNull())return QIcon();
|
||||||
QIcon icon(pxm);
|
QIcon icon(pxm);
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue