#include "DlgIcon.h"
#include <QFileIconProvider>
#include <QToolButton>
#include <QFileInfo>
#include <Windows.h>
#include <ObjBase.h>
#include <ShellAPI.h>
#include <QDir>
#include <QDesktopServices>
#include <QUrl>
#include <QProcess>
CDlgIcon::CDlgIcon( QWidget* pParent /* = NULL */ ):QDialog(pParent)
{
m_ui.setupUi( this );
pProcess = new QProcess;
}
CDlgIcon::~CDlgIcon( )
{
pProcess->deleteLater();
pProcess = NULL;
}
void CDlgIcon::on_pshBtnIcon_clicked( )
{
QString strText = m_ui.lineEdit->text();
QString tmpQStr = QString("/select," ) + QDir::toNativeSeparators( strText );
pProcess->start("explorer.exe",QStringList()<<tmpQStr);
// pProcess->deleteLater();
// QString strTest = QString::fromLocal8Bit("<a href = \"%1\">%1</a>").arg( strText );
// QDesktopServices::openUrl( QUrl::fromLocalFile(strText) );
// m_ui.label_2->setText( strTest );
// QString strLink = "D:\\work\\libjinggle\\talk\\build\\win32\\QTT_Enterprise\\Bin\10351\\receiveFile\\322342(4).mp4";
// QString tmpStr = QString("/select," ) + QDir::toNativeSeparators( strLink );
// LPCSTR fileTmpPath = "/select,D:\\work\\libjinggle\\talk\\build\\win32\\QTT_Enterprise\\Bin\\10351\\receiveFile\\322342(4).mp4";
// LPCSTR fileTmpPath2 = strLink.toStdString().c_str();
// std::string str = strLink.toStdString();
// LPCSTR fileTmpPath1 = str.c_str();
// ShellExecuteA(0,"open","explorer.exe",fileTmpPath,NULL,true);
// LPCSTR filePath = tmpStr.toStdString().data() /*"/select,C:/Users/xl.xu/Desktop/322342.mp4"*/;
// ShellExecuteA(0,"open","explorer.exe",filePath,NULL,true);
// static HRESULT comInit = CoInitializeEx(NULL, COINIT_MULTITHREADED);
// Q_UNUSED(comInit);
//
// SHFILEINFO tmpInfo;
// unsigned long val = 0;
//
// QString strDir = m_ui.lineEdit->text();
// QFileIconProvider provider;
// QFileInfo fileInfo( strDir );
// m_ui.pshBtnIcon->setIcon( provider.icon( fileInfo ) );
// val = SHGetFileInfo( (const wchar_t *)QDir::toNativeSeparators(strDir).utf16(),
// FILE_ATTRIBUTE_NORMAL,
// &tmpInfo,
// sizeof(SHFILEINFO),SHGFI_USEFILEATTRIBUTES |SHGFI_DISPLAYNAME |SHGFI_TYPENAME |SHGFI_ICON| SHGFI_LARGEICON);
//
// QPixmap pixmap = QPixmap::fromWinHICON( tmpInfo.hIcon );
// m_ui.pshBtnIcon->setIcon( QIcon( pixmap ) );
}