& address){
return address ? CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress()->weakEqual(address) : false;
}
bool Utils::isAnimatedImage(const QString& path){
QFileInfo info(path);
if( !info.exists())
return false;
QImageReader reader(path);
return reader.supportsAnimation() && reader.imageCount() > 1;
}
bool Utils::isPhoneNumber(const QString& txt){
auto core = CoreManager::getInstance()->getCore();
if(!core)
return false;
auto account = core->getDefaultAccount();
return account && account->isPhoneNumber(Utils::appStringToCoreString(txt));
}
QSize Utils::getImageSize(const QString& url){
QString path;
QUrl urlDecode(url);
if(urlDecode.isLocalFile())
path = QDir::toNativeSeparators(urlDecode.toLocalFile());
else
path = url;
QFileInfo info(path);
if( !info.exists())
return QSize(0,0);
QImageReader reader(path);
QSize s = reader.size();
if( s.isValid())
return s;
else
return QSize(0,0);
}
QPoint Utils::getCursorPosition(){
return QCursor::pos();
}
QString Utils::getFileChecksum(const QString& filePath){
QFile file(filePath);
if (file.open(QFile::ReadOnly)) {
QCryptographicHash hash(QCryptographicHash::Sha256);
if (hash.addData(&file)) {
return hash.result().toHex();
}
}
return QString();
}
QString Utils::encodeTextToQmlRichFormat(const QString& text, const QVariantMap& options){
QString images;
QStringList formattedText;
QStringList imageFormat;
for(auto format : QImageReader::supportedImageFormats())
imageFormat.append(QString::fromLatin1(format).toUpper());
auto iriParsed = UriTools::parseIri(text);
for(int i = 0 ; i < iriParsed.size() ; ++i){
QString iri = iriParsed[i].second.replace('&', "&")
.replace('<', "\u2063<")
.replace('>', "\u2063>")
.replace('"', """)
.replace('\'', "'");
if(!iriParsed[i].first)
formattedText.append(iri);
else{
QString uri = iriParsed[i].second.left(3) == "www" ? "http://"+iriParsed[i].second : iriParsed[i].second ;
int extIndex = iriParsed[i].second.lastIndexOf('.');
QString ext;
if( extIndex >= 0)
ext = iriParsed[i].second.mid(extIndex+1).toUpper();
if(imageFormat.contains(ext.toLatin1())){// imagesHeight is not used because of bugs on display (blank image if set without width)
images += "
";
}else
formattedText.append( "" + iri + "");
}
}
if(images != "")
images = "" + images +"
";
return images + "" + formattedText.join("") + "
";
}