Issue #2513 resolved

Missing toolbar icons

Anonymous created an issue

Installed TortoiseHg 2.7.1 on Windows 7 (32-bit): tortoisehg-2.7.1-hg-2.5.2-x86.msi

TortoiseHg Workbench is missing toolbar icons. The icons are also missing from the menus.

I attached a screenshot.

This is identical to #2512. My attachment did not go through.

Comments (22)

  1. kuthair

    Hello,

    Thanks for the quick response.

    QtSvg4.dll is in the TortoiseHg install folder with following details: Modify date: 12/4/2012 Size: 272 KB Version: 4.8.4 (from File properties)

    There are 37 ico, 1 png, and 1 readme file in "icons" folder.

    I tried reinstalling to no avail. Also, I tried uninstalling and installing clean. That also did not work.

    I have Qt 4.8.4 installed on my machine. I also tried removing Qt from the path, with same result.

  2. kuthair

    Hi Yuya,

    Here's the output:

    C:\Program Files\TortoiseHg>thg.exe --nofork
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    
    C:\Program Files\TortoiseHg>
    
  3. kuthair

    Sure. I tried attaching a text file but I get an error saying I'm not authorized. It may be because I was not signed in when I created the issue; subsequently owned by anonymous.

    Anyway, here's the dll dump:

    ListDLLs v3.1 - List loaded DLLs
    Copyright (C) 1997-2011 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    ------------------------------------------------------------------------------
    thgw.exe pid: 1952
    Command line: "C:\Program Files\TortoiseHg\thgw.exe"
    
    Base        Size      Path
    0x00400000  0x1c000   C:\Program Files\TortoiseHg\thgw.exe
    0x77c30000  0x13c000  C:\Windows\SYSTEM32\ntdll.dll
    0x77b50000  0xd4000   C:\Windows\system32\kernel32.dll
    0x75e90000  0x4b000   C:\Windows\system32\KERNELBASE.dll
    0x77090000  0xc9000   C:\Windows\system32\USER32.dll
    0x77930000  0x4e000   C:\Windows\system32\GDI32.dll
    0x773b0000  0xa000    C:\Windows\system32\LPK.dll
    0x76ff0000  0x9d000   C:\Windows\system32\USP10.dll
    0x77800000  0xac000   C:\Windows\system32\msvcrt.dll
    0x6eac0000  0xa3000   C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll
    0x777e0000  0x1f000   C:\Windows\system32\IMM32.DLL
    0x77d90000  0xcc000   C:\Windows\system32\MSCTF.dll
    0x1e000000  0x23f000  C:\Program Files\TortoiseHg\PYTHON27.DLL
    0x76e70000  0xa0000   C:\Windows\system32\ADVAPI32.dll
    0x778b0000  0x19000   C:\Windows\SYSTEM32\sechost.dll
    0x77980000  0xa1000   C:\Windows\system32\RPCRT4.dll
    0x76220000  0xc4a000  C:\Windows\system32\SHELL32.dll
    0x77520000  0x57000   C:\Windows\system32\SHLWAPI.dll
    0x1d1a0000  0x15000   C:\Program Files\TortoiseHg\_ctypes.pyd
    0x773c0000  0x15c000  C:\Windows\system32\ole32.dll
    0x76f60000  0x8f000   C:\Windows\system32\OLEAUT32.dll
    0x10000000  0x6000    C:\Program Files\TortoiseHg\mercurial.osutil.pyd
    0x69750000  0x19a000  C:\Program Files\TortoiseHg\PyQt4.QtCore.pyd
    0x694e0000  0x269000  C:\Program Files\TortoiseHg\QtCore4.dll
    0x77580000  0x35000   C:\Windows\system32\WS2_32.dll
    0x77d70000  0x6000    C:\Windows\system32\NSI.dll
    0x6eb70000  0x8e000   C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCP90.dll
    0x736d0000  0x14000   C:\Program Files\TortoiseHg\sip.pyd
    0x658a0000  0x590000  C:\Program Files\TortoiseHg\PyQt4.QtGui.pyd
    0x67300000  0x7c6000  C:\Program Files\TortoiseHg\QtGui4.dll
    0x77760000  0x7b000   C:\Windows\system32\COMDLG32.dll
    0x6e4b0000  0x84000   C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.dll
    0x74230000  0x32000   C:\Windows\system32\WINMM.dll
    0x71400000  0x51000   C:\Windows\system32\WINSPOOL.DRV
    0x1e8c0000  0x1b000   C:\Program Files\TortoiseHg\win32api.pyd
    0x75170000  0x9000    C:\Windows\system32\VERSION.dll
    0x1e7a0000  0x1e000   C:\Program Files\TortoiseHg\pywintypes27.dll
    0x75a00000  0x8000    C:\Windows\system32\secur32.dll
    0x75b60000  0x1b000   C:\Windows\system32\SSPICLI.DLL
    0x1ebf0000  0xc000    C:\Program Files\TortoiseHg\win32process.pyd
    0x76210000  0x5000    C:\Windows\system32\Psapi.dll
    0x6e780000  0xb2000   C:\Program Files\TortoiseHg\PyQt4.Qsci.pyd
    0x671d0000  0x12b000  C:\Program Files\TortoiseHg\qscintilla2.dll
    0x752c0000  0x17000   C:\Windows\system32\userenv.dll
    0x75c80000  0xb000    C:\Windows\system32\profapi.dll
    0x6e700000  0x7d000   C:\Program Files\TortoiseHg\PyQt4.QtNetwork.pyd
    0x69b20000  0xf9000   C:\Program Files\TortoiseHg\QtNetwork4.dll
    0x01500000  0x3d000   C:\Program Files\TortoiseHg\SSLEAY32.dll
    0x02480000  0x130000  C:\Program Files\TortoiseHg\LIBEAY32.dll
    0x74990000  0x40000   C:\Windows\system32\uxtheme.dll
    0x74550000  0x13000   C:\Windows\system32\dwmapi.dll
    0x75c00000  0xc000    C:\Windows\system32\CRYPTBASE.dll
    0x1ea40000  0x2b000   C:\Program Files\TortoiseHg\win32gui.pyd
    0x701a0000  0x5000    C:\Windows\system32\msimg32.dll
    0x756e0000  0x16000   C:\Windows\system32\CRYPTSP.dll
    0x75460000  0x3b000   C:\Windows\system32\rsaenh.dll
    0x75c70000  0xe000    C:\Windows\system32\RpcRtRemote.dll
    
  4. Yuya Nishihara

    It looks the following dlls are missing in some way:

    • QtSvg4.dll
    • QtXml4.dll
    • qico4.dll
    • qsvg4.dll

    Result of listdlls on my machine:

    Z:\inbox>listdlls thg
    
    ListDLLs v3.1 - List loaded DLLs
    Copyright (C) 1997-2011 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    -----------------------------------------------------------
    thgw.exe pid: 2964
    Command line: "C:\Program Files\TortoiseHg\thgw.exe"
    
    Base        Size      Path
    0x00400000  0x1c000   thgw.exe
    0x7c940000  0x9f000   ntdll.dll
    0x7c800000  0x133000  kernel32.dll
    0x77cf0000  0x90000   USER32.dll
    0x77ed0000  0x49000   GDI32.dll
    0x78520000  0xa3000   MSVCR90.dll
    0x762e0000  0x1d000   IMM32.DLL
    0x77d80000  0xa9000   ADVAPI32.dll
    0x77e30000  0x93000   RPCRT4.dll
    0x77fa0000  0x11000   Secur32.dll
    0x60740000  0x9000    LPK.DLL
    0x73f80000  0x6b000   USP10.dll
    0x1e000000  0x23f000  PYTHON27.DLL
    0x7d5b0000  0x800000  SHELL32.dll
    0x77bc0000  0x58000   msvcrt.dll
    0x77f20000  0x76000   SHLWAPI.dll
    0x77160000  0x103000  comctl32.dll
    0x5ab60000  0x9a000   comctl32.dll
    0x1d1a0000  0x15000   _ctypes.pyd
    0x76970000  0x13e000  ole32.dll
    0x770d0000  0x8b000   OLEAUT32.dll
    0x10000000  0x6000    mercurial.osutil.pyd
    0x00e30000  0x19a000  PyQt4.QtCore.pyd
    0x67000000  0x269000  QtCore4.dll
    0x719e0000  0x17000   WS2_32.dll
    0x719d0000  0x8000    WS2HELP.dll
    0x78480000  0x8e000   MSVCP90.dll
    0x00950000  0x14000   sip.pyd
    0x01110000  0x590000  PyQt4.QtGui.pyd
    0x65000000  0x7c6000  QtGui4.dll
    0x76300000  0x48000   COMDLG32.dll
    0x76af0000  0x2b000   WINMM.dll
    0x72f50000  0x26000   WINSPOOL.DRV
    0x1e8c0000  0x1b000   win32api.pyd
    0x77bb0000  0x8000    VERSION.dll
    0x1e7a0000  0x1e000   pywintypes27.dll
    0x1ebf0000  0xc000    win32process.pyd
    0x76ba0000  0xb000    Psapi.dll
    0x00fd0000  0xb2000   PyQt4.Qsci.pyd
    0x022a0000  0x12b000  qscintilla2.dll
    0x7e8c0000  0xb1000   userenv.dll
    0x023d0000  0x7d000   PyQt4.QtNetwork.pyd
    0x64000000  0xf9000   QtNetwork4.dll
    0x01090000  0x3d000   SSLEAY32.dll
    0x02450000  0x130000  LIBEAY32.dll
    0x58730000  0x38000   uxtheme.dll
    0x74660000  0x4c000   MSCTF.dll
    0x02610000  0x342000  xkeymacs.dll
    0x73d10000  0xf2000   MFC42.DLL
    0x5f700000  0xd000    MFC42LOC.DLL
    0x73620000  0x2e000   msctfime.ime
    0x4edc0000  0x56000   imjp81.ime
    0x648f0000  0xd0000   imjp81k.dll
    0x1ea40000  0x2b000   win32gui.pyd
    0x762d0000  0x5000    msimg32.dll
    0x02b60000  0x9000    qsvg4.dll
    0x66000000  0x47000   QtSvg4.dll
    0x61000000  0x57000   QtXml4.dll
    0x02e00000  0x560000  xpsp2res.dll
    0x3b100000  0x1b000   IMJPCD.DIC
    0x05b40000  0xb000    qico4.dll
    0x05e20000  0x9000    mercurial.parsers.pyd
    0x05e30000  0x49000   _hashlib.pyd
    0x05e80000  0x6000    mercurial.mpatch.pyd
    0x05e90000  0x6000    mercurial.bdiff.pyd
    
  5. kuthair

    I noticed that too, but the dlls are in the TortoiseHg directory. I also tried to copy the dlls from imageformats into the root.

     Volume in drive C has no label.
     Volume Serial Number is AC8B-5394
    
     Directory of C:\Program Files\TortoiseHg
    
    06/15/2012  01:10 PM            69,716 intl3_svn.dll
    06/15/2012  01:10 PM           143,434 libapr-1.dll
    06/15/2012  01:10 PM            36,949 libapriconv-1.dll
    06/15/2012  01:10 PM           192,595 libaprutil-1.dll
    06/15/2012  01:10 PM         1,175,552 libdb48.dll
    06/15/2012  01:10 PM         1,232,975 LIBEAY32.dll
    06/15/2012  01:10 PM            77,887 libsasl.dll
    06/15/2012  01:10 PM           258,140 libsvn_client-1.dll
    06/15/2012  01:10 PM            94,298 libsvn_delta-1.dll
    06/15/2012  01:10 PM            69,720 libsvn_diff-1.dll
    06/15/2012  01:10 PM           241,748 libsvn_fs-1.dll
    06/15/2012  01:10 PM           548,948 libsvn_ra-1.dll
    06/15/2012  01:10 PM           147,546 libsvn_repos-1.dll
    06/15/2012  01:10 PM           794,712 libsvn_subr-1.dll
    06/15/2012  11:50 AM            49,267 libsvn_swig_py-1.dll
    06/15/2012  01:10 PM           397,396 libsvn_wc-1.dll
    04/10/2012  10:31 PM         2,303,488 python27.dll
    02/13/2012  11:14 AM           330,240 pythoncom27.dll
    02/13/2012  11:13 AM           104,960 pywintypes27.dll
    12/08/2012  05:43 AM         1,208,320 qscintilla2.dll
    12/04/2012  03:28 PM         2,512,384 QtCore4.dll
    12/04/2012  03:37 PM         8,124,416 QtGui4.dll
    12/04/2012  03:28 PM           999,424 QtNetwork4.dll
    12/04/2012  03:44 PM           278,016 QtSvg4.dll
    12/04/2012  03:28 PM           341,504 QtXml4.dll
    12/17/2011  04:17 PM           237,568 SSLEAY32.dll
    03/02/2013  04:37 PM           335,664 ThgShellx86.dll
                  27 File(s)     22,306,867 bytes
    
     Directory of C:\Program Files\TortoiseHg\imageformats
    
    12/04/2012  05:43 PM            29,184 qico4.dll
    12/04/2012  05:43 PM            22,528 qsvg4.dll
                   2 File(s)         51,712 bytes
    
         Total Files Listed:
                  29 File(s)     22,358,579 bytes
                   0 Dir(s)  24,306,208,768 bytes free
    
  6. Yuya Nishihara

    Can you test with the following extension?

    https://bitbucket.org/yuja/hgext-workarounds/src/63addd4c96b6/hgext/thgissue2513.py

    yuya@vmwinxp /t/foo
    $ /c/Program\ Files/TortoiseHg/thg --nofork
    Qt Library Paths (original):
    [PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    Add path: c:/Program Files/TortoiseHg
    Qt Library Paths (added):
    [PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    

    On my machine, Qt plugin paths are set up out-of-the-box. But the doc recommends to set explicitly. http://qt-project.org/doc/qt-4.8/deployment-windows.html#qt-plugins

  7. Luoting Fu

    Had the same symptoms with windows 64 bit version 2.7.2 with Mercurial-2.5.4, Python-2.7.3, PyQt-4.9.6, Qt-4.8.4

    Walkaround:

    • Create qt.conf in C:\Program Files\TortoiseHg that contains
    [Paths]
    plugins=./
    
  8. kuthair

    Hi Yuya Nishihara,

    Here's the output:

    Qt Library Paths (original):
    [PyQt4.QtCore.QString(u'C:/Qt/4.8.4/plugins'), PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    Add path: C:/Program Files/TortoiseHg
    Qt Library Paths (added):
    [PyQt4.QtCore.QString(u'C:/Qt/4.8.4/plugins'), PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setCompositionMode: Painter not active
    
  9. kuthair

    Yuya Nishihara,

    That worked, too! Thank you.

    Qt Library Paths (original):
    [PyQt4.QtCore.QString(u'C:/Qt/4.8.4/plugins'), PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    Set path: C:/Program Files/TortoiseHg
    Qt Library Paths (new):
    [PyQt4.QtCore.QString(u'C:/Program Files/TortoiseHg')]
    

    Btw, I don't have qt.conf anywhere in the PATH.

  10. Log in to comment