Code Monkey home page Code Monkey logo

idaskins's Introduction

IDA Skins

Plugin providing advanced skinning support for IDA Pro utilizing Qt stylesheets, similar to CSS.

Important: This plugin is now deprecated

IDA 7.3 added theming support directly into IDA itself and ships with a forked version of the ISASkins dark theme. We will keep maintaining this plugin for a while for users of old IDA verions, but it will be shelved eventually. New themes should be developed for IDA directly.

Screenshot

VSCode dark theme

Screenshot 1 Screenshot 2

ISASkins dark theme

Screenshot

Download

Download the latest version from GitHub

Installation

Copy the contents of the plugins directory into the plugins directory of your IDA installation.

Theming

Theming IDA using IDASkins works using Qt stylesheets. For information on the most important IDA-specific UI elements, take a look in the enclosed default stylesheet.qss. Pull-requests for new themes are very welcome!

idaskins's People

Contributors

athre0z avatar cmmoran avatar jinmo avatar lewisporter avatar melomac avatar silverbut avatar tmfink avatar tostercx avatar uniskz avatar williballenthin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idaskins's Issues

Object inspector crash at quit

When I use the Object inspector and quit IDA without closing its window, IDA Pro will crash.

The crash was reproduced reliably using IDA Pro 7.1 and IDA Pro 7.2 on macOS.

Steps to reproduce:

  1. install IDASkins plugin (idaskins.py and idaskins folder in ~/.idapro/plugins)
  2. open a target in IDA Pro
  3. open the IDASkins: Settings window
  4. open the Object inspector window
  5. probably optional: press F7 on a UI element
  6. quit IDA Pro (optional: DON'T SAVE the database)

It could be related to the window not being attached to a parent window.

IDASkins resets Hex-Rays Decompiler output

IDA Version: 6.8.1504123.

When setting a different font than default Fixedsys font, IDASkins will reset the font of the Hex-Rays Decompiler back to Fixedsys after restarting.

(Atleast I think this is caused by IDASkins since I couldn't observe this behaviour without it.)

Not working...

Hi, there is a problem for me. When I try to change the skin, it comes out a UnicodeDecodeError:

[IDASkins] v2.1.0 by athre0z (zyantific.com) loaded!
E:\Program Files\IDA 7.2\plugins\idaskins.py: Traceback (most recent call last):
File "E:/Program Files/IDA 7.2/plugins/idaskins.py", line 5, in PLUGIN_ENTRY
return IdaSkinsPlugin(*args, **kwargs)
File "E:/Program Files/IDA 7.2/plugins\idaskins\plugin.py", line 86, in init
self.apply_stylesheet_from_settings()
File "E:/Program Files/IDA 7.2/plugins\idaskins\plugin.py", line 146, in apply_stylesheet_from_settings
self.apply_stylesheet(abs_theme_dir, manifest)
File "E:/Program Files/IDA 7.2/plugins\idaskins\plugin.py", line 123, in apply_stylesheet
qss = self.preprocess_stylesheet(qss, abs_theme_dir)
File "E:/Program Files/IDA 7.2/plugins\idaskins\plugin.py", line 107, in preprocess_stylesheet
qss = replace_keyword(qss, 'DISASSEMBLY', 'disas')
File "E:/Program Files/IDA 7.2/plugins\idaskins\plugin.py", line 100, in replace_keyword
x = x.replace(prefix + 'FAMILY>', cfg.family)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)


IDA pro: 7.2
Windows 7 sp1
Python 2.7.18
Default language: Chinese


Include IDA color schemes with skins

Hey,

how hard would it be to include color schemes (clr files) with the skins and automatically apply them? It's currently a PITA to find the right ones and set them up.

I imagine adding a check box so the user can choose if he wants to apply the skin's clr file or something like that.

FIRST_START_KEY and macOS

Many thanks for IDASkins. I use it on macOS for some years now and this update really ease the installation ๐Ÿ˜…

Every time I launched IDA Pro, the First start message welcomed me. It turns out PyQt returns a Boolean for this QSettings on macOS:

[IDASkins] v2.0 by athre0z (zyantific.com) loaded!
[IDASkins] Skin file successfully applied!
Python>from PyQt5.QtCore import QSettings
Python>_settings = QSettings("athre0z", "IDASkins")
Python>FIRST_START_KEY = 'firstStart'
Python>_settings.value(FIRST_START_KEY, True)
False

I already fixed the issue on my side, but I wanted to follow up on your comment and let you know how it works with macOS:

# PyQt seems to be returning unicode strings instead of QVariant.
return self._settings.value(FIRST_START_KEY, True) != u'false'

Thanks!

How to build IDASkins for IDA7.0 in MacOS High Sierra 10.13

These are the steps I took to successfully build IDASkins for IDA 7.0 on my MacOS 10.13 (High Sierra).

$ git clone https://github.com/zyantific/IDASkins.git
$ cd IDASkins
$ git clone https://github.com/zyantific/ida-cmake.git

To build run:
$ ida-cmake/build.py -i 'path_to_ida_sdk' -t 7.0 --idaq-path '/Applications/IDA Pro 7.0/ida64.app/Contents/MacOS/'

If you get an error stating:

Could not find a package configuration file provided by "Qt5Widgetsโ€ etc...

Fix it by installing qt using brew:
$ brew install qt5

Locate where it is installed (for me it was /usr/local/Cellar/qt/5.9.3) using:
$ brew info qt5

Copy the path then modify:

./ida-cmake/build.py

by finding the line (#163) where it says: โ€œif args.idaq_path:โ€
and append this line at (#166):

cmake_cmd.append('-DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.9.3')

After that try building again:
$ ida-cmake/build.py -i 'path_to_ida_sdk' -t 7.0 --idaq-path '/Applications/IDA Pro 7.0/ida64.app/Contents/MacOS/'

If you need help building IDA7.0 SDK, I'll be happy to share my steps.

I hope this helps someone out there.

PS: Some shots of my version of idaskins-dark. I'm including it for anyone who likes it:
idaskins-dark.zip

screen shot 2017-11-26 at 02 35 20

screen shot 2017-11-26 at 02 39 01

screen shot 2017-11-26 at 02 39 32

Hex-Rays font incorrect

Please see the below images of IDA 6.8 with IDASkins 1.3 using the basic IDA theme in both disassembly and Hex-Rays views. I don't recognize the font for the Hex-Rays view, and I wasn't able to find the appropriate selector in the .qss file to modify. I'd like it to be the same fixed width font as the disassembly view. How can I change the font of the Hex-Rays view?

Its important for me to fix because with the incorrect font selected, currently-selected word highlighting is broken (perhaps character width computations are incorrect?), which makes it difficult to rename symbols, etc.

disassembly
hexrays

IDA keeps asking me that theme is not set after every start

I keep getting this message

msg

Whenever I start IDA, and when selecting "Yes" I don't get a window for selecting a theme. I have to go to the plugins menu and do it from there.

This is on macOS Mojave

$ ls /Applications/IDA\ Pro\ 7.2/idabin/plugins/idaskins
__init__.py		objectinspector.py	settings.py		themes
__init__.pyc		objectinspector.pyc	settings.pyc		themeselector.py
idafontconfig.py	plugin.py		thememanifest.py	themeselector.pyc
idafontconfig.pyc	plugin.pyc		thememanifest.pyc	ui
$ ls /Applications/IDA\ Pro\ 7.2/idabin/plugins/idaskins.py 
/Applications/IDA Pro 7.2/idabin/plugins/idaskins.py

Prebuilt binaries not working on Mac OSX w/ 6.95

Following output from console:

Compiling file '/Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/idc/ida.idc'...
Executing function 'main'...
Compiling file '/Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/idc/onload.idc'...
Executing function 'OnLoad'...
IDA is analysing the input file...
You may start to explore the input file right now.

dlopen(): dlopen(, 2): no suitable image found.  Did find:
	/Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/../Frameworks/: not a file
	/usr/local/lib/: not a file
	/usr/lib/: not a file
: can't load file

Empty selectedThemeDir causes the plugin to fail to load

File "plugins\idaskins\settings.py", line 15, in selected_theme_dir return self._settings.value(SELECTED_THEME_DIR_KEY, None).encode() AttributeError: 'NoneType' object has no attribute 'encode'

Since the setting defaults to None, calling encode() causes the plugin to blow up, and makes it impossible to select a theme since it won't load. I've found that defaulting to an empty string works fine, and allows me to set a theme after the plugin successfully loads.

On a related note: when I was prompted to select a theme on first run, I pressed yes and the theme selection window popped up briefly and immediately disappeared.

This was what caused this bug for me in the first place, although this may be due to a plugin conflict or some other factors. I haven't had the chance to figure out exactly what causes this.

Declining the first run theme selection causes the same issue.

Theme doesnt load

I cant seem to change the theme , I open IDA and it says ather0z plugins loaded ! But on edit > skins there is no theme loaded , I think is the path , there is no skins directory whatsover , where should be the skins folder be pasted ?

Unable to compile on Ubuntu Trusty

USER@HOST:~/tmp/Del_ASAP/_IDA/IDASkins$ ./build_binary_dist.py --ida-sdks-path `pwd`/../ --platform unix --target-version 6.8 --skip-install
Cmake command:
/usr/bin/cmake -Dida_sdk=/home/user/tmp/Del_ASAP/_IDA/IDASkins/../idasdk68 -G 'Unix Makefiles' -DIDA_INSTALL_DIR:PATH=../dist/IDA-6.8 -DIDA_VERSION=680 ..
CMake Error at CMakeLists.txt:26 (cmake_policy):
  Policy "CMP0054" is not known to this version of CMake.


-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at cmake/IDA.cmake:26 (cmake_policy):
  Policy "CMP0054" is not known to this version of CMake.
Call Stack (most recent call first):
  CMakeLists.txt:29 (include)


-- variable ida_sdk was already set to "/home/user/tmp/Del_ASAP/_IDA/IDASkins/../idasdk68"
-- Checking IDA_INSTALL_DIR, ../dist/IDA-6.8
-- Getting ida_dir_env value from source "IDA_INSTALL_DIR"
-- IDA library path: /home/user/tmp/Del_ASAP/_IDA/IDASkins/../idasdk68/lib/x86_linux_gcc_64
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.6") 
-- Configuring incomplete, errors occurred!
See also "/home/user/tmp/Del_ASAP/_IDA/IDASkins/build-6.8-32/CMakeFiles/CMakeOutput.log".
See also "/home/user/tmp/Del_ASAP/_IDA/IDASkins/build-6.8-32/CMakeFiles/CMakeError.log".
[-] CMake failed, giving up.

Ubuntu 14.04.4 LTS
cmake version 2.8.12.2
qmake -query

QT_INSTALL_PREFIX:/usr
QT_INSTALL_DATA:/usr/share/qt4
QT_INSTALL_DOCS:/usr/share/qt4/doc
QT_INSTALL_HEADERS:/usr/include/qt4
QT_INSTALL_LIBS:/usr/lib/x86_64-linux-gnu
QT_INSTALL_BINS:/usr/lib/x86_64-linux-gnu/qt4/bin
QT_INSTALL_PLUGINS:/usr/lib/x86_64-linux-gnu/qt4/plugins
QT_INSTALL_IMPORTS:/usr/lib/x86_64-linux-gnu/qt4/imports
QT_INSTALL_TRANSLATIONS:/usr/share/qt4/translations
QT_INSTALL_CONFIGURATION:/etc/xdg
QT_INSTALL_EXAMPLES:/usr/lib/qt4/examples
QT_INSTALL_DEMOS:/usr/lib/qt4/demos
QMAKE_MKSPECS:/usr/share/qt4/mkspecs
QMAKE_VERSION:2.01a
QT_VERSION:4.8.6

IDA 7 64 bit?

So I've installed the code in the plugins directory, but when I start IDA, it doesn't seem to have any effect. I copied the contents over to plugins, so that we have plugins/idaskins.py and plugins/idaskins/*.

Is there a configuration panel I don't know about or something? Thanks so much!

Compilation fails on Ubuntu 14.04

After some Google-fu, I realized that you're using C++11 features, so I patched the Makefile to enable it (add -std=c++11 to CXXFLAGS). However, there are still a couple of issues:

g++ -c -m32 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -std=c++11 -D__IDP__ -DNO_OBSOLETE_FUNCS -DQPROJECT_LIBRARY -D__LINUX__ -D_FORTIFY_SOURCE=0 -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XMLPATTERNS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NAMESPACE=QT -DQT_SHARED -I../../../../Qt-4.8.4-IDA/mkspecs/linux-g++-32 -I. -I../../../../Qt-4.8.4-IDA/include/QtCore -I../../../../Qt-4.8.4-IDA/include/QtGui -I../../../../Qt-4.8.4-IDA/include/QtXml -I../../../../Qt-4.8.4-IDA/include/QtXmlPatterns -I../../../../Qt-4.8.4-IDA/include -I/home/michael/idasdk/include -Iobj/x86_lnx_gcc_32 -Iobj/x86_lnx_gcc_32 -o obj/x86_lnx_gcc_32/ThemeSelector.o ThemeSelector.cpp
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
ThemeSelector.cpp:1:0: note: this is the location of the previous definition
 /**
 ^
ThemeSelector.cpp:64:17: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
             msg("["PLUGIN_NAME"] %s: %s\n", it->toUtf8().data(), e.what());
                 ^
In file included from /home/michael/idasdk/include/ida.hpp:11:0,
                 from ThemeSelector.cpp:33:
/home/michael/idasdk/include/pro.h: In function โ€˜bool is_mul_ok(T, T)โ€™:
/home/michael/idasdk/include/pro.h:518:27: warning: typedef โ€˜COMPILE_TIME_ASSERT_1067โ€™ locally defined but not used [-Wunused-local-typedefs]
 #define __CASSERT_N0__(l) COMPILE_TIME_ASSERT_ ## l
                           ^
/home/michael/idasdk/include/pro.h:519:27: note: in expansion of macro โ€˜__CASSERT_N0__โ€™
 #define __CASSERT_N1__(l) __CASSERT_N0__(l)
                           ^
/home/michael/idasdk/include/pro.h:520:35: note: in expansion of macro โ€˜__CASSERT_N1__โ€™
 #define CASSERT(cnd) typedef char __CASSERT_N1__(__LINE__) [(cnd) ? 1 : -1]
                                   ^
/home/michael/idasdk/include/pro.h:1067:3: note: in expansion of macro โ€˜CASSERTโ€™
   CASSERT((T)(-1) > 0); // make sure T is unsigned
   ^
/home/michael/idasdk/include/pro.h: In function โ€˜bool is_add_ok(T, T)โ€™:
/home/michael/idasdk/include/pro.h:518:27: warning: typedef โ€˜COMPILE_TIME_ASSERT_1076โ€™ locally defined but not used [-Wunused-local-typedefs]
 #define __CASSERT_N0__(l) COMPILE_TIME_ASSERT_ ## l
                           ^
/home/michael/idasdk/include/pro.h:519:27: note: in expansion of macro โ€˜__CASSERT_N0__โ€™
 #define __CASSERT_N1__(l) __CASSERT_N0__(l)
                           ^
/home/michael/idasdk/include/pro.h:520:35: note: in expansion of macro โ€˜__CASSERT_N1__โ€™
 #define CASSERT(cnd) typedef char __CASSERT_N1__(__LINE__) [(cnd) ? 1 : -1]
                                   ^
/home/michael/idasdk/include/pro.h:1076:3: note: in expansion of macro โ€˜CASSERTโ€™
   CASSERT((T)(-1) > 0); // make sure T is unsigned
   ^
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h: In instantiation of โ€˜void __gnu_cxx::new_allocator< <template-parameter-1-1> >::construct(_Up*, _Args&& ...) [with _Up = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >]โ€™:
/usr/include/c++/4.8/bits/alloc_traits.h:254:4:   required from โ€˜static typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type std::allocator_traits<_Alloc>::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >; typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type = void]โ€™
/usr/include/c++/4.8/bits/alloc_traits.h:393:57:   required from โ€˜static decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) std::allocator_traits<_Alloc>::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >; decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) = <type error>]โ€™
/usr/include/c++/4.8/bits/vector.tcc:97:40:   required from โ€˜void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >]โ€™
ThemeSelector.cpp:60:94:   required from here
/usr/include/c++/4.8/ext/new_allocator.h:120:4: error: no matching function for call to โ€˜std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >::pair(std::pair<QT::QDir, ThemeManifest*>)โ€™
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note: candidates are:
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:206:9: note: template<class ... _Args1, unsigned int ..._Indexes1, class ... _Args2, unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)
         pair(tuple<_Args1...>&, tuple<_Args2...>&,
         ^
/usr/include/c++/4.8/bits/stl_pair.h:206:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   โ€˜std::pair<QT::QDir, ThemeManifest*>โ€™ is not derived from โ€˜std::tuple<_Elements ...>โ€™
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:155:9: note: template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)
         pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
         ^
/usr/include/c++/4.8/bits/stl_pair.h:155:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   cannot convert โ€˜std::forward<std::pair<QT::QDir, ThemeManifest*> >((* & __args#0))โ€™ (type โ€˜std::pair<QT::QDir, ThemeManifest*>โ€™) to type โ€˜std::piecewise_construct_tโ€™
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:150:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(std::pair<_U1, _U2>&&)
  constexpr pair(pair<_U1, _U2>&& __p)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:150:12: note:   template argument deduction/substitution failed:
/usr/include/c++/4.8/bits/stl_pair.h:147:38: error: no type named โ€˜typeโ€™ in โ€˜struct std::enable_if<false, void>โ€™
       template<class _U1, class _U2, class = typename
                                      ^
/usr/include/c++/4.8/bits/stl_pair.h:144:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&)
  constexpr pair(_U1&& __x, _U2&& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:144:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   candidate expects 2 arguments, 1 provided
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:138:12: note: template<class _U2, class> constexpr std::pair<_T1, _T2>::pair(const _T1&, _U2&&)
  constexpr pair(const _T1& __x, _U2&& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:138:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   cannot convert โ€˜std::forward<std::pair<QT::QDir, ThemeManifest*> >((* & __args#0))โ€™ (type โ€˜std::pair<QT::QDir, ThemeManifest*>โ€™) to type โ€˜const QT::QDir&โ€™
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:133:12: note: template<class _U1, class> constexpr std::pair<_T1, _T2>::pair(_U1&&, const _T2&)
  constexpr pair(_U1&& __x, const _T2& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:133:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   candidate expects 2 arguments, 1 provided
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:128:17: note: constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       constexpr pair(pair&&) = default;
                 ^
/usr/include/c++/4.8/bits/stl_pair.h:128:17: note:   no known conversion for argument 1 from โ€˜std::pair<QT::QDir, ThemeManifest*>โ€™ to โ€˜std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >&&โ€™
/usr/include/c++/4.8/bits/stl_pair.h:124:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&)
  constexpr pair(const pair<_U1, _U2>& __p)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:124:12: note:   template argument deduction/substitution failed:
/usr/include/c++/4.8/bits/stl_pair.h:121:38: error: no type named โ€˜typeโ€™ in โ€˜struct std::enable_if<false, void>โ€™
       template<class _U1, class _U2, class = typename
                                      ^
/usr/include/c++/4.8/bits/stl_pair.h:112:26: note: constexpr std::pair<_T1, _T2>::pair(const _T1&, const _T2&) [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b)
                          ^
/usr/include/c++/4.8/bits/stl_pair.h:112:26: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/4.8/bits/stl_pair.h:108:26: note: constexpr std::pair<_T1, _T2>::pair() [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       _GLIBCXX_CONSTEXPR pair()
                          ^
/usr/include/c++/4.8/bits/stl_pair.h:108:26: note:   candidate expects 0 arguments, 1 provided
make: *** [obj/x86_lnx_gcc_32/ThemeSelector.o] Error 1

not working

Not working,
I copied the contents of the "plugins" directory into the "plugins" directory in IDA and then nothing appeared in Edit->Plugins

minor color issue in skin/adwaita-dark/stylesheet.qss

IDA console output:

QCssParser::parseHexColor: Unknown color name '#00000'

patch for file skin/adwaita-dark/stylesheet.qss

105c105
<     border: 2px outset #00000;
---
>     border: 2px outset #000000;

Did not notice any visual changes but gets rid of above warning.

Not working...

I put content of plugins folder into plugins and it's not working. WTF? My version of IDA Pro is 7.0.17

Compatibility with IDA 6.9 on OS X

The switch to Qt5 has complicated the compilation of this plugin for IDA 6.9 on Mac OS X.

I, myself, have compiled Qt5 from source for i386 but consistently run into compatibility issues during linking. See example traceback below:

joga@Johns-Macbook-Pro:~/idasdk69/idasdk69/IDASkins$ python build_binary_dist.py  --ida-sdks-path ~/idasdk69/ --platform mac --target-version 6.9 --cmake_args "-DCMAKE_PREFIX_PATH=~/qt_32bit"

...

[ 84%] Linking CXX shared library IDASkins.pmc
/usr/local/Cellar/cmake/3.4.3/bin/cmake -E cmake_link_script CMakeFiles/IDASkins.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++   -m32 -std=c++0x  -D__MAC__ -D_FORTIFY_SOURCE=0  -DQT_NAMESPACE=QT -DNO_OBSOLETE_FUNCS -D__IDP__ -DQPROJECT_LIBRARY -m32 -std=c++0x  -D__MAC__ -D_FORTIFY_SOURCE=0  -DQT_NAMESPACE=QT -DNO_OBSOLETE_FUNCS -D__IDP__ -DQPROJECT_LIBRARY -m32 -std=c++0x  -D__MAC__ -D_FORTIFY_SOURCE=0  -DQT_NAMESPACE=QT -DNO_OBSOLETE_FUNCS -D__IDP__ -DQPROJECT_LIBRARY -dynamiclib -Wl,-headerpad_max_install_names  -o IDASkins.pmc -install_name /Users/joga/idasdk69/idasdk69/IDASkins/build-6.9-32/IDASkins.pmc CMakeFiles/IDASkins.dir/src/Core.cpp.o CMakeFiles/IDASkins.dir/src/IdaFontConfig.cpp.o CMakeFiles/IDASkins.dir/src/idaskins.cpp.o CMakeFiles/IDASkins.dir/src/Settings.cpp.o CMakeFiles/IDASkins.dir/src/ThemeManifest.cpp.o CMakeFiles/IDASkins.dir/src/ThemeSelector.cpp.o CMakeFiles/IDASkins.dir/src/Utils.cpp.o CMakeFiles/IDASkins.dir/src/ObjectInspector.cpp.o CMakeFiles/IDASkins.dir/IDASkins_automoc.cpp.o /Users/joga/idasdk69/idasdk69/lib/x86_mac_gcc_32/pro.a /Users/joga/idasdk69/idasdk69/lib/x86_mac_gcc_32/pro.a /Users/joga/idasdk69/idasdk69/lib/x86_mac_gcc_32/pro.a /Users/joga/idasdk69/idasdk69/lib/x86_mac_gcc_32/libida.dylib /Users/joga/qt_32bit/lib/QtWidgets.framework/QtWidgets /Users/joga/qt_32bit/lib/QtGui.framework/QtGui /Users/joga/qt_32bit/lib/QtCore.framework/QtCore
Undefined symbols for architecture i386:
  "QT::QArrayData::deallocate(QT::QArrayData*, unsigned long, unsigned long)", referenced from:
      QT::QTypedArrayData<unsigned short>::deallocate(QT::QArrayData*) in Core.cpp.o
      QT::QTypedArrayData<char>::deallocate(QT::QArrayData*) in Core.cpp.o
      QT::QTypedArrayData<unsigned short>::deallocate(QT::QArrayData*) in IdaFontConfig.cpp.o
      QT::QTypedArrayData<unsigned short>::deallocate(QT::QArrayData*) in Settings.cpp.o
      QT::QTypedArrayData<unsigned short>::deallocate(QT::QArrayData*) in ThemeManifest.cpp.o
      QT::QTypedArrayData<QT::QXmlStreamAttribute>::deallocate(QT::QArrayData*) in ThemeManifest.cpp.o
      QT::QTypedArrayData<char>::deallocate(QT::QArrayData*) in ThemeManifest.cpp.o
      ...
  "QT::QArrayData::shared_null", referenced from:
      QT::QArrayData::sharedNull() in Core.cpp.o
      QT::QArrayData::sharedNull() in IdaFontConfig.cpp.o
      QT::QArrayData::sharedNull() in ThemeManifest.cpp.o
      QT::QArrayData::sharedNull() in ThemeSelector.cpp.o
      QT::QArrayData::sharedNull() in Core.cpp.o
      QT::QArrayData::sharedNull() in IdaFontConfig.cpp.o
      QT::QArrayData::sharedNull() in ThemeManifest.cpp.o
      QT::QArrayData::sharedNull() in ThemeSelector.cpp.o
      QT::QArrayData::sharedNull() in Core.cpp.o
      QT::QArrayData::sharedNull() in IdaFontConfig.cpp.o
      QT::QArrayData::sharedNull() in ThemeManifest.cpp.o
      QT::QArrayData::sharedNull() in ThemeSelector.cpp.o
      QT::QArrayData::sharedNull() in Core.cpp.o
      QT::QArrayData::sharedNull() in IdaFontConfig.cpp.o
      QT::QArrayData::sharedNull() in ThemeManifest.cpp.o
      QT::QArrayData::sharedNull() in ThemeSelector.cpp.o
  "QT::QBoxLayout::addLayout(QT::QLayout*, int)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QBoxLayout::addWidget(QT::QWidget*, int, QT::QFlags<QT::Qt::AlignmentFlag>)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QByteArray::reallocData(unsigned int, QT::QFlags<QT::QArrayData::AllocationOption>)", referenced from:
      QT::QByteArray::detach() in ThemeManifest.cpp.o
      QT::QByteArray::detach() in ThemeSelector.cpp.o
  "QT::QGridLayout::addWidget(QT::QWidget*, int, int, int, int, QT::QFlags<QT::Qt::AlignmentFlag>)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QGridLayout::QGridLayout()", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QHBoxLayout::QHBoxLayout()", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QLayoutItem::~QLayoutItem()", referenced from:
      QT::QSpacerItem::QSpacerItem(int, int, QT::QSizePolicy::Policy, QT::QSizePolicy::Policy) in ObjectInspector.cpp.o
  "QT::QListWidget::insertItem(int, QT::QString const&)", referenced from:
      QT::QListWidget::addItem(QT::QString const&) in ThemeSelector.cpp.o
  "QT::QListWidget::clear()", referenced from:
      ThemeSelector::refresh() in ThemeSelector.cpp.o
  "QT::QListWidget::QListWidget(QT::QWidget*)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QMessageBox::information(QT::QWidget*, QT::QString const&, QT::QString const&, QT::QFlags<QT::QMessageBox::StandardButton>, QT::QMessageBox::StandardButton)", referenced from:
      Core::initPlugin() in Core.cpp.o
  "QT::QMessageBox::warning(QT::QWidget*, QT::QString const&, QT::QString const&, QT::QFlags<QT::QMessageBox::StandardButton>, QT::QMessageBox::StandardButton)", referenced from:
      Core::uiHook(void*, int, char*) in Core.cpp.o
  "QT::QMetaObject::Connection::~Connection()", referenced from:
      Core::openThemeSelectionDialog() in Core.cpp.o
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QMetaObject::connectSlotsByName(QT::QObject*)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QPushButton::QPushButton(QT::QWidget*)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QSizePolicy::setControlType(QT::QSizePolicy::ControlType)", referenced from:
      QT::QSizePolicy::QSizePolicy(QT::QSizePolicy::Policy, QT::QSizePolicy::Policy, QT::QSizePolicy::ControlType) in ThemeSelector.cpp.o
      QT::QSizePolicy::QSizePolicy(QT::QSizePolicy::Policy, QT::QSizePolicy::Policy, QT::QSizePolicy::ControlType) in ObjectInspector.cpp.o
  "QT::QVBoxLayout::QVBoxLayout(QT::QWidget*)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QVBoxLayout::QVBoxLayout()", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QApplication::activeWindow()", referenced from:
      Core::initPlugin() in Core.cpp.o
      Core::openThemeSelectionDialog() in Core.cpp.o
      Core::uiHook(void*, int, char*) in Core.cpp.o
  "QT::QApplication::setStyleSheet(QT::QString const&)", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
  "QT::QApplication::widgetAt(QT::QPoint const&)", referenced from:
      ObjectInspector::updateInspection() in ObjectInspector.cpp.o
  "QT::QKeySequence::QKeySequence(int, int, int, int)", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QKeySequence::~QKeySequence()", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QAbstractButton::setText(QT::QString const&)", referenced from:
      QT::Ui_ThemeSelector::retranslateUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::retranslateUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QCoreApplication::self", referenced from:
      QT::QCoreApplication::instance() in Core.cpp.o
      QT::QCoreApplication::instance() in ObjectInspector.cpp.o
      QT::QCoreApplication::instance() in Core.cpp.o
      QT::QCoreApplication::instance() in ObjectInspector.cpp.o
  "QT::QCoreApplication::translate(char const*, char const*, char const*, int)", referenced from:
      QT::Ui_ThemeSelector::retranslateUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::retranslateUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QDialogButtonBox::setOrientation(QT::Qt::Orientation)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QDialogButtonBox::setStandardButtons(QT::QFlags<QT::QDialogButtonBox::StandardButton>)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QDialogButtonBox::QDialogButtonBox(QT::QWidget*)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QXmlStreamReader::readNext()", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::QXmlStreamReader(QT::QIODevice*)", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::~QXmlStreamReader()", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QAbstractItemView::setCurrentIndex(QT::QModelIndex const&)", referenced from:
      ThemeSelector::refresh() in ThemeSelector.cpp.o
  "QT::QXmlStreamAttribute::~QXmlStreamAttribute()", referenced from:
      QT::QVector<QT::QXmlStreamAttribute>::destruct(QT::QXmlStreamAttribute*, QT::QXmlStreamAttribute*) in ThemeManifest.cpp.o
  "QT::QDir::QDir(QT::QString const&)", referenced from:
      Core::applyStylesheetFromSettings() in Core.cpp.o
      ThemeSelector::refresh() in ThemeSelector.cpp.o
      Utils::getThemesDir() in Utils.cpp.o
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QDir::QDir(QT::QDir const&)", referenced from:
      ThemeSelector::refresh() in ThemeSelector.cpp.o
      void std::__1::vector<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >, std::__1::allocator<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > > > >::__emplace_back_slow_path<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > > >(std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >&&) in ThemeSelector.cpp.o
      std::__1::vector<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >, std::__1::allocator<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > > > >::__swap_out_circular_buffer(std::__1::__split_buffer<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >, std::__1::allocator<std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > > >&>&) in ThemeSelector.cpp.o
  "QT::QDir::~QDir()", referenced from:
      Core::applyStylesheetFromSettings() in Core.cpp.o
      ThemeSelector::refresh() in ThemeSelector.cpp.o
      std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >::~pair() in ThemeSelector.cpp.o
      Utils::getThemesPath() in Utils.cpp.o
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
      std::__1::pair<QT::QDir, std::__1::unique_ptr<ThemeManifest, std::__1::default_delete<ThemeManifest> > >::~pair() in IDASkins_automoc.cpp.o
  "QT::QDir::operator=(QT::QDir const&)", referenced from:
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QFile::open(QT::QFlags<QT::QIODevice::OpenModeFlag>)", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QFile::QFile(QT::QString const&)", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QFile::~QFile()", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QFont::setStyleHint(QT::QFont::StyleHint, QT::QFont::StyleStrategy)", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QFont::QFont(QT::QString const&, int, int, bool)", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QFont::~QFont()", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QLabel::setAlignment(QT::QFlags<QT::Qt::AlignmentFlag>)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QLabel::setTextFormat(QT::Qt::TextFormat)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QLabel::setScaledContents(bool)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QLabel::setText(QT::QString const&)", referenced from:
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
      ThemeSelector::updatePreview() in ThemeSelector.cpp.o
      QT::Ui_ThemeSelector::retranslateUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::retranslateUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QLabel::setPixmap(QT::QPixmap const&)", referenced from:
      ThemeSelector::updatePreview() in ThemeSelector.cpp.o
  "QT::QLabel::QLabel(QT::QWidget*, QT::QFlags<QT::Qt::WindowType>)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QCursor::pos()", referenced from:
      ObjectInspector::updateInspection() in ObjectInspector.cpp.o
  "QT::QDialog::closeEvent(QT::QCloseEvent*)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::setVisible(bool)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::eventFilter(QT::QObject*, QT::QEvent*)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::qt_metacall(QT::QMetaObject::Call, int, void**)", referenced from:
      ThemeSelector::qt_metacall(QT::QMetaObject::Call, int, void**) in IDASkins_automoc.cpp.o
  "QT::QDialog::qt_metacast(char const*)", referenced from:
      ThemeSelector::qt_metacast(char const*) in IDASkins_automoc.cpp.o
  "QT::QDialog::resizeEvent(QT::QResizeEvent*)", referenced from:
      ThemeSelector::resizeEvent(QT::QResizeEvent*) in ThemeSelector.cpp.o
  "QT::QDialog::keyPressEvent(QT::QKeyEvent*)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::contextMenuEvent(QT::QContextMenuEvent*)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::staticMetaObject", referenced from:
      ThemeSelector::staticMetaObject in IDASkins_automoc.cpp.o
  "QT::QDialog::done(int)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::exec()", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::open()", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::accept()", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::reject()", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::setModal(bool)", referenced from:
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
  "QT::QDialog::showEvent(QT::QShowEvent*)", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::QDialog(QT::QWidget*, QT::QFlags<QT::Qt::WindowType>)", referenced from:
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
  "QT::QDialog::~QDialog()", referenced from:
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
      ThemeSelector::~ThemeSelector() in IDASkins_automoc.cpp.o
  "QT::QObject::childEvent(QT::QChildEvent*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::disconnect(QT::QObject const*, char const*, QT::QObject const*, char const*)", referenced from:
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QObject::timerEvent(QT::QTimerEvent*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::customEvent(QT::QEvent*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::eventFilter(QT::QObject*, QT::QEvent*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::qt_metacall(QT::QMetaObject::Call, int, void**)", referenced from:
      Core::qt_metacall(QT::QMetaObject::Call, int, void**) in IDASkins_automoc.cpp.o
  "QT::QObject::qt_metacast(char const*)", referenced from:
      Core::qt_metacast(char const*) in IDASkins_automoc.cpp.o
  "QT::QObject::connectNotify(QT::QMetaMethod const&)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::setObjectName(QT::QString const&)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QObject::disconnectNotify(QT::QMetaMethod const&)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::staticMetaObject", referenced from:
      Core::staticMetaObject in IDASkins_automoc.cpp.o
  "QT::QObject::event(QT::QEvent*)", referenced from:
      vtable for Core in IDASkins_automoc.cpp.o
  "QT::QObject::connect(QT::QObject const*, char const*, QT::QObject const*, char const*, QT::Qt::ConnectionType)", referenced from:
      QT::QObject::connect(QT::QObject const*, char const*, char const*, QT::Qt::ConnectionType) const in Core.cpp.o
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::QObject::connect(QT::QObject const*, char const*, char const*, QT::Qt::ConnectionType) const in ThemeSelector.cpp.o
      QT::QObject::connect(QT::QObject const*, char const*, char const*, QT::Qt::ConnectionType) const in ObjectInspector.cpp.o
  "QT::QObject::QObject(QT::QObject*)", referenced from:
      Core::Core() in Core.cpp.o
  "QT::QObject::~QObject()", referenced from:
      Core::Core() in Core.cpp.o
      Core::~Core() in Core.cpp.o
  "QT::QPixmap::QPixmap(QT::QString const&, char const*, QT::QFlags<QT::Qt::ImageConversionFlag>)", referenced from:
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
  "QT::QPixmap::QPixmap()", referenced from:
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
  "QT::QPixmap::~QPixmap()", referenced from:
      ThemeSelector::ThemeSelector(QT::QWidget*) in ThemeSelector.cpp.o
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
      ThemeSelector::updatePreview() in ThemeSelector.cpp.o
      ThemeSelector::~ThemeSelector() in IDASkins_automoc.cpp.o
  "QT::QString::toUtf8_helper(QT::QString const&)", referenced from:
      QT::QString::toUtf8() const & in ThemeSelector.cpp.o
  "QT::QString::compare_helper(QT::QChar const*, int, char const*, int, QT::Qt::CaseSensitivity)", referenced from:
      QT::QStringRef::operator==(char const*) const in ThemeManifest.cpp.o
  "QT::QString::fromUtf8_helper(char const*, int)", referenced from:
      QT::QString::fromUtf8(char const*, int) in Core.cpp.o
      QT::QString::fromUtf8(char const*, int) in ThemeManifest.cpp.o
      QT::QString::fromUtf8(char const*, int) in ThemeSelector.cpp.o
      QT::QString::fromUtf8(char const*, int) in Utils.cpp.o
      QT::QString::fromUtf8(char const*, int) in ObjectInspector.cpp.o
  "QT::QString::toLatin1_helper(QT::QString const&)", referenced from:
      QT::QString::toLatin1() const & in ThemeManifest.cpp.o
  "QT::QString::fromAscii_helper(char const*, int)", referenced from:
      QT::QString::QString(char const*) in Core.cpp.o
      QT::QString::QString(QT::QByteArray const&) in Core.cpp.o
      QT::QString::QString(char const*) in IdaFontConfig.cpp.o
      QT::QString::QString(char const*) in Settings.cpp.o
      QT::QString::QString(char const*) in ThemeManifest.cpp.o
      QT::QString::QString(char const*) in ThemeSelector.cpp.o
      QT::QString::QString(char const*) in Utils.cpp.o
      ...
  "QT::QString::append(QT::QString const&)", referenced from:
      QT::QString::operator+=(QT::QString const&) in Core.cpp.o
      QT::QString::operator+=(QT::QString const&) in ThemeManifest.cpp.o
      QT::QString::operator+=(QT::QString const&) in ThemeSelector.cpp.o
      QT::QString::operator+=(QT::QString const&) in Utils.cpp.o
      QT::QString::operator+=(QT::QString const&) in ObjectInspector.cpp.o
  "QT::QString::number(int, int)", referenced from:
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QString::number(unsigned int, int)", referenced from:
      Core::preprocessStylesheet(QT::QString&, QT::QString const&)::$_0::operator()(QT::QString const&, IdaFontConfig::FontType) const in Core.cpp.o
  "QT::QString::replace(QT::QString const&, QT::QString const&, QT::Qt::CaseSensitivity)", referenced from:
      Core::preprocessStylesheet(QT::QString&, QT::QString const&) in Core.cpp.o
      Core::preprocessStylesheet(QT::QString&, QT::QString const&)::$_0::operator()(QT::QString const&, IdaFontConfig::FontType) const in Core.cpp.o
  "QT::QWidget::closeEvent(QT::QCloseEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::enterEvent(QT::QEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::leaveEvent(QT::QEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::paintEvent(QT::QPaintEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::setEnabled(bool)", referenced from:
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QWidget::setVisible(bool)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::wheelEvent(QT::QWheelEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::actionEvent(QT::QActionEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::changeEvent(QT::QEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::nativeEvent(QT::QByteArray const&, void*, long*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::qt_metacall(QT::QMetaObject::Call, int, void**)", referenced from:
      ObjectInspector::qt_metacall(QT::QMetaObject::Call, int, void**) in IDASkins_automoc.cpp.o
  "QT::QWidget::qt_metacast(char const*)", referenced from:
      ObjectInspector::qt_metacast(char const*) in IDASkins_automoc.cpp.o
  "QT::QWidget::resizeEvent(QT::QResizeEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::tabletEvent(QT::QTabletEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::focusInEvent(QT::QFocusEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::dragMoveEvent(QT::QDragMoveEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::focusOutEvent(QT::QFocusEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::keyPressEvent(QT::QKeyEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::setSizePolicy(QT::QSizePolicy)", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QWidget::dragEnterEvent(QT::QDragEnterEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::dragLeaveEvent(QT::QDragLeaveEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::mouseMoveEvent(QT::QMouseEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::setMaximumSize(int, int)", referenced from:
      QT::QWidget::setMaximumSize(QT::QSize const&) in ThemeSelector.cpp.o
  "QT::QWidget::setMinimumSize(int, int)", referenced from:
      QT::QWidget::setMinimumSize(QT::QSize const&) in ThemeSelector.cpp.o
  "QT::QWidget::setWindowTitle(QT::QString const&)", referenced from:
      QT::Ui_ThemeSelector::retranslateUi(QT::QDialog*) in ThemeSelector.cpp.o
      QT::Ui_ObjectInspector::retranslateUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QWidget::keyReleaseEvent(QT::QKeyEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::mousePressEvent(QT::QMouseEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::contextMenuEvent(QT::QContextMenuEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::inputMethodEvent(QT::QInputMethodEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::staticMetaObject", referenced from:
      ObjectInspector::staticMetaObject in IDASkins_automoc.cpp.o
  "QT::QWidget::mouseReleaseEvent(QT::QMouseEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::focusNextPrevChild(bool)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::mouseDoubleClickEvent(QT::QMouseEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::show()", referenced from:
      Core::openThemeSelectionDialog() in Core.cpp.o
      Core::openObjectInspector() in Core.cpp.o
  "QT::QWidget::event(QT::QEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::resize(QT::QSize const&)", referenced from:
      QT::QWidget::resize(int, int) in ThemeSelector.cpp.o
      QT::QWidget::resize(int, int) in ObjectInspector.cpp.o
  "QT::QWidget::setFont(QT::QFont const&)", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QWidget::dropEvent(QT::QDropEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::hideEvent(QT::QHideEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::moveEvent(QT::QMoveEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::showEvent(QT::QShowEvent*)", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::QWidget(QT::QWidget*, QT::QFlags<QT::Qt::WindowType>)", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QWidget::~QWidget()", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
      ObjectInspector::~ObjectInspector() in IDASkins_automoc.cpp.o
  "QT::QVariant::QVariant(QT::QString const&)", referenced from:
      Core::onThemeSelectionAccepted() in Core.cpp.o
  "QT::QVariant::QVariant(bool)", referenced from:
      Core::initPlugin() in Core.cpp.o
  "QT::QVariant::~QVariant()", referenced from:
      Core::initPlugin() in Core.cpp.o
      Core::onThemeSelectionAccepted() in Core.cpp.o
      IdaFontConfig::family() in IdaFontConfig.cpp.o
      IdaFontConfig::size() in IdaFontConfig.cpp.o
      IdaFontConfig::bold() in IdaFontConfig.cpp.o
      IdaFontConfig::italic() in IdaFontConfig.cpp.o
      IdaFontConfig::getSetting(QT::QString const&) in IdaFontConfig.cpp.o
      ...
  "QT::QFontInfo::QFontInfo(QT::QFont const&)", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
  "QT::QFontInfo::~QFontInfo()", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
  "QT::QIODevice::readAll()", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
  "QT::QListData::detach(int)", referenced from:
      QT::QList<QT::QString>::detach_helper(int) in ThemeSelector.cpp.o
      QT::QList<QT::QModelIndex>::detach_helper(int) in ThemeSelector.cpp.o
  "QT::QListData::dispose(QT::QListData::Data*)", referenced from:
      QT::QList<QT::QString>::dealloc(QT::QListData::Data*) in ThemeSelector.cpp.o
      QT::QListData::dispose() in ThemeSelector.cpp.o
      QT::QList<QT::QModelIndex>::dealloc(QT::QListData::Data*) in ThemeSelector.cpp.o
  "QT::QSettings::beginGroup(QT::QString const&)", referenced from:
      IdaFontConfig::getSetting(QT::QString const&) in IdaFontConfig.cpp.o
  "QT::QSettings::qt_metacall(QT::QMetaObject::Call, int, void**)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
  "QT::QSettings::qt_metacast(char const*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
  "QT::QSettings::event(QT::QEvent*)", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
  "QT::QSettings::remove(QT::QString const&)", referenced from:
      Core::initPlugin() in Core.cpp.o
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QSettings::endGroup()", referenced from:
      IdaFontConfig::getSetting(QT::QString const&) in IdaFontConfig.cpp.o
  "QT::QSettings::setValue(QT::QString const&, QT::QVariant const&)", referenced from:
      Core::initPlugin() in Core.cpp.o
      Core::onThemeSelectionAccepted() in Core.cpp.o
  "QT::QSettings::QSettings(QT::QString const&, QT::QString const&, QT::QObject*)", referenced from:
      IdaFontConfig::IdaFontConfig(IdaFontConfig::FontType) in IdaFontConfig.cpp.o
      Settings::Settings() in Settings.cpp.o
  "QT::QSettings::~QSettings()", referenced from:
      IdaFontConfig::~IdaFontConfig() in IdaFontConfig.cpp.o
      Settings::~Settings() in Settings.cpp.o
  "QT::QShortcut::setContext(QT::Qt::ShortcutContext)", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QShortcut::QShortcut(QT::QKeySequence const&, QT::QWidget*, char const*, char const*, QT::Qt::ShortcutContext)", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QShortcut::~QShortcut()", referenced from:
      ObjectInspector::ObjectInspector(QT::QWidget*) in ObjectInspector.cpp.o
      ObjectInspector::~ObjectInspector() in IDASkins_automoc.cpp.o
  "QT::QTextEdit::setText(QT::QString const&)", referenced from:
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QTextEdit::QTextEdit(QT::QWidget*)", referenced from:
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QStringRef::toString() const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QListWidget::count() const", referenced from:
      QT::QListWidget::addItem(QT::QString const&) in ThemeSelector.cpp.o
  "QT::QMetaObject::className() const", referenced from:
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QObjectData::dynamicMetaObject() const", referenced from:
      Core::metaObject() const in IDASkins_automoc.cpp.o
      ObjectInspector::metaObject() const in IDASkins_automoc.cpp.o
      ThemeSelector::metaObject() const in IDASkins_automoc.cpp.o
  "QT::QXmlStreamReader::attributes() const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::errorString() const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::name() const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::atEnd() const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
  "QT::QXmlStreamReader::error() const", referenced from:
      QT::QXmlStreamReader::hasError() const in ThemeManifest.cpp.o
  "QT::QAbstractItemView::selectionModel() const", referenced from:
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
      ThemeSelector::selectedThemeDir() in ThemeSelector.cpp.o
  "QT::QAbstractItemView::rootIndex() const", referenced from:
      ThemeSelector::refresh() in ThemeSelector.cpp.o
  "QT::QItemSelectionModel::selectedIndexes() const", referenced from:
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
      ThemeSelector::selectedThemeDir() in ThemeSelector.cpp.o
  "QT::QXmlStreamAttributes::value(QT::QString const&) const", referenced from:
      ThemeManifest::parseFile(QT::QString const&) in ThemeManifest.cpp.o
      QT::QXmlStreamAttributes::hasAttribute(QT::QString const&) const in ThemeManifest.cpp.o
  "QT::QDir::absolutePath() const", referenced from:
      Core::applyStylesheet(QT::QDir&) in Core.cpp.o
      ThemeSelector::refresh() in ThemeSelector.cpp.o
      ThemeSelector::themeSelected() in ThemeSelector.cpp.o
      Utils::getThemesPath() in Utils.cpp.o
  "QT::QDir::exists() const", referenced from:
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QDir::dirName() const", referenced from:
      Core::onThemeSelectionAccepted() in Core.cpp.o
  "QT::QDir::entryList(QT::QFlags<QT::QDir::Filter>, QT::QFlags<QT::QDir::SortFlag>) const", referenced from:
      ThemeSelector::refresh() in ThemeSelector.cpp.o
  "QT::QDialog::minimumSizeHint() const", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QDialog::sizeHint() const", referenced from:
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QObject::objectName() const", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
      ObjectInspector::updateSelectedWidget(QT::QWidget*) in ObjectInspector.cpp.o
      QT::Ui_ObjectInspector::setupUi(QT::QWidget*) in ObjectInspector.cpp.o
  "QT::QObject::sender() const", referenced from:
      Core::onThemeSelectionAccepted() in Core.cpp.o
  "QT::QPixmap::isNull() const", referenced from:
      QT::QPixmap::operator!() const in ThemeSelector.cpp.o
  "QT::QPixmap::scaled(QT::QSize const&, QT::Qt::AspectRatioMode, QT::Qt::TransformationMode) const", referenced from:
      QT::QPixmap::scaled(int, int, QT::Qt::AspectRatioMode, QT::Qt::TransformationMode) const in ThemeSelector.cpp.o
  "QT::QWidget::redirected(QT::QPoint*) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::sizePolicy() const", referenced from:
      QT::Ui_ThemeSelector::setupUi(QT::QDialog*) in ThemeSelector.cpp.o
  "QT::QWidget::initPainter(QT::QPainter*) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::paintEngine() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::sharedPainter() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::heightForWidth(int) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::minimumSizeHint() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QWidget::inputMethodQuery(QT::Qt::InputMethodQuery) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::hasHeightForWidth() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::metric(QT::QPaintDevice::PaintDeviceMetric) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::devType() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "QT::QWidget::sizeHint() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
  "QT::QVariant::canConvert(int) const", referenced from:
      bool QT::QVariant::canConvert<bool>() const in Core.cpp.o
      bool QT::QVariant::canConvert<QT::QString>() const in Utils.cpp.o
  "QT::QVariant::isNull() const", referenced from:
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QVariant::toBool() const", referenced from:
      Core::initPlugin() in Core.cpp.o
  "QT::QVariant::convert(int, void*) const", referenced from:
      QT::QtPrivate::QVariantValueHelper<QT::QString>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<unsigned int>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<bool>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
  "QT::QVariant::toString() const", referenced from:
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "QT::QVariant::userType() const", referenced from:
      QT::QtPrivate::QVariantValueHelper<QT::QString>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<unsigned int>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<bool>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
  "QT::QVariant::constData() const", referenced from:
      QT::QtPrivate::QVariantValueHelper<QT::QString>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<unsigned int>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
      QT::QtPrivate::QVariantValueHelper<bool>::metaType(QT::QVariant const&) in IdaFontConfig.cpp.o
  "QT::QFontInfo::family() const", referenced from:
      IdaFontConfig::family() in IdaFontConfig.cpp.o
  "QT::QSettings::metaObject() const", referenced from:
      vtable for IdaFontConfig in IdaFontConfig.cpp.o
      vtable for Settings in Settings.cpp.o
  "QT::QSettings::value(QT::QString const&, QT::QVariant const&) const", referenced from:
      Core::initPlugin() in Core.cpp.o
      IdaFontConfig::getSetting(QT::QString const&) in IdaFontConfig.cpp.o
      Utils::getCurrentThemeDir(QT::QDir&) in Utils.cpp.o
  "typeinfo for QT::QDialog", referenced from:
      typeinfo for ThemeSelector in IDASkins_automoc.cpp.o
  "typeinfo for QT::QObject", referenced from:
      Core::onThemeSelectionAccepted() in Core.cpp.o
      typeinfo for Core in IDASkins_automoc.cpp.o
  "typeinfo for QT::QWidget", referenced from:
      typeinfo for ObjectInspector in IDASkins_automoc.cpp.o
  "typeinfo for QT::QSettings", referenced from:
      typeinfo for IdaFontConfig in IdaFontConfig.cpp.o
      typeinfo for Settings in Settings.cpp.o
  "vtable for QT::QLayoutItem", referenced from:
      QT::QLayoutItem::QLayoutItem(QT::QFlags<QT::Qt::AlignmentFlag>) in ObjectInspector.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for QT::QSpacerItem", referenced from:
      QT::QSpacerItem::QSpacerItem(int, int, QT::QSizePolicy::Policy, QT::QSizePolicy::Policy) in ObjectInspector.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "non-virtual thunk to QT::QWidget::redirected(QT::QPoint*) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "non-virtual thunk to QT::QWidget::initPainter(QT::QPainter*) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "non-virtual thunk to QT::QWidget::paintEngine() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "non-virtual thunk to QT::QWidget::sharedPainter() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "non-virtual thunk to QT::QWidget::metric(QT::QPaintDevice::PaintDeviceMetric) const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
  "non-virtual thunk to QT::QWidget::devType() const", referenced from:
      vtable for ObjectInspector in IDASkins_automoc.cpp.o
      vtable for ThemeSelector in IDASkins_automoc.cpp.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [IDASkins.pmc] Error 1
make[1]: *** [CMakeFiles/IDASkins.dir/all] Error 2
make: *** [all] Error 2
[-] Build failed, giving up.

IdaSkin not start at First QuickPage Load/But old 1.4 version work well

I tested the old version of IDASkins.
In the old version plugin patch start immediately when i start my IDA.
i mean from here
idapro1
and it works well even at this page.
but in new version ( last build ) the IDASkin plugin start after main ida page load completely. after that the IDASkin works normally. but if i close it, again i need to go main ida page to see dark theme

steps in old version ( 1.4 )
1- Click at IDA icon in desktop
2- now see IDA QUICKSTART page
3- then i see idaskin plugin firstuse menu
4- select dark or any other themes
5- close app
6- open again, now i see dark theme for QUICKSTART page too.

steps in new version ( 2.x)
1- Click at IDA icon in desktop
2- now see IDA QUICKSTART page
3- here i cant see idaskin plugin firstuse menu ( i delete the regedit files too )
4- i need to click on new/Go/preview buttons to open IDA main page
5- when opened ida main page, i see the idaskin plugin firstuse menu
6- now select dark or any theme.
7- close app
8- now i see QUICKSTART page without any theme ( it is white )

I guess in new version the plugin starts after ida full load, not in Quickstart page
note1: if i load the main page, and after that open the Quickstart page i can see dark theme.
but if i open program directly from desktop icon, i need to go main page with clicking some button in quickstart page to load ida . after that i can see the dark theme.

App info:
IDA version : V7.0.170914
Old plugin version that i used : 1.4
new version that i used : 2.x ( last version )

Using version 1.3.0 on IDA Pro 6.8

Hey there, so I'm using the release version 1.3.0 on IDA Pro 6.8 since the latest version didn't seem to work for it. I'm wondering if there's a way for me to get the VS-Code Theme that you have on the latest version for me even though I'm not running the latest version I tried just taking the folder vscode-dark and putting it in the skins directory but unfortunately it didn't recognize it as a skin in IDA. Any hope for me to be able to get the vscode-dark theme I fucking love it to death.

No such file or directory: [theme_dir]\\manifest.json

Environment

  • Windows 10 Pro 64bit
  • IDA 7.0
  • Python 2.7.13

Detail

I was trying to update IDASkins to version 2.0.0, so I

  • Delete those dlls in my IDA root/plugins directory
  • Copy the contents of the plugins directory into my IDA root/plugins directory
  • Open an .idb file to see if it work

Then I found IDA didn't load the IDASkins plugin, and the IDA output windows has the following error message:

[Errno 2] No such file or directory: idaskins-dark\\manifest.json

So I print out the theme_dir variable in apply_stylesheet_from_settings(), and the output is:
idaskins-dark

To resolve the issue, I copied the idaskins-dark directory into my working directory.
Now it successfully load the IDASkins plugin, and the error message no longer appear.

More strangely, I tried to delete the idaskins-dark directory to reproduce the issue, and found that now the theme_dir variable has been set to C:\Program Files\IDA 7.0\plugins\idaskins\themes\idaskins-dark, not idaskins-dark anymore, so now I can't reproduce the issue :/


Although this is no longer an issue for me, I feel like I'm still going to report this:
For some unknown reason, theme_dir will be set to a relative path while updating IDASkins, causing the plugin failed to load the manifest file.

It would be nice if we can identify and fix the issue so everyone can happily update to version 2.0.0
Any thoughts ?

"First Start" dialog causes IDA to crash if IDA_IPython is installed as well

I have IDAIPython installed for quite a long time, and it is working well.
Today I decided to try IDASkins. After installing it, IDA kept crashing on startup when starting to show the "First Start" dialog.
The crash seems to be related to the Python interpreter state, so I disabled my only non-default Python plugin - IDAIPython. Once done, everything worked as expected.
After the first run, I enabled IDAIPython, and all seems to work well.

I did not have time to dig in and see if this is a bug in IDAIPython or IDASkins, so I am opening an issue there as well, and referencing this one.

Can't select theme?

I was prompted once to select a theme but I exited out of my IDA 6.8. Once closed, I cannot bring the theme prompt to come back. I wish to switch to the dark theme/skin.

How can I go about changing the theme?

GraphOverView background

Hello, I tried for quite a while to change the GraphOverView background via the stylesheet.qss and unfortunately came up empty. Would you be able to tell me how to change the background from the white to the dark gray so it matches the rest of the theme? Thanks!

ida

Use IDA Registry API instead of QSettings to get font settings

IDA uses the registry to store global configuration options that must persist after IDA has been closed.

On Windows, IDA uses the Windows registry directly. On Unix systems, the registry is stored in a file (typically ~/.idapro/ida.reg).

so we can't get font settings from QSettings on macOS/Linux
I think we should use IDA Registry API instead.

# IDA 6.8 on Win7
Python>"Font" in PySide.QtCore.QSettings("Hex-Rays", "IDA").childGroups()
True

Python>idaapi.reg_read_string("Name", "Font\\Disassembly")
Consolas

# IDA 7.0 on macOS 10.12
Python>"Font" in PyQt5.QtCore.QSettings("Hex-Rays", "IDA").childGroups()
False

Python>reg_read_string("Name", "Font\\Disassembly")
Source Code Pro

7.0 on Mac

We can haz binary for IDA7.0 MacOS? <3

disassembly subview does not change.

http://postimg.org/image/6gfs02tw3/

I use ida pro 6.6 and I have problem.

do I need any configuration?

as you know Ida provide 6 default subviews.

IDA View-A / Hex View-1 / Structures / Enums / Imports / Exports

Only two subview background changed properly. Imports, Exports

the other subviews remain default color background.

what should I do to use ida skin?

I used ida skin 1.2

IDA doesn't load the plugin

System: MacOS 10.14.3
IDA Pro version: 7.0.170914
I have copied the contents of the plugins directory into the plugins directory of my IDA installation. But when I restart my IDA Pro 32bit or 64bit, I cannot find the plugin under my Edit->Plugins

Compiling on Ubuntu Trusty, IDA.cmake bad block for IDA_IDA_LIBRARY

USER@HOST:~/tmp/Del_ASAP/_IDA/IDASkins-base$ ./build_binary_dist.py --ida-sdks-path `pwd`/../ --platform unix --target-version 6.8 --skip-install
Cmake command:
/usr/bin/cmake -Dida_sdk=/home/user/tmp/Del_ASAP/_IDA/IDASkins-base/../idasdk68 -G 'Unix Makefiles' -DIDA_INSTALL_DIR:PATH=../dist/IDA-6.8 -DIDA_VERSION=680 ..
CMake Error at CMakeLists.txt:26 (cmake_policy):
  Policy "CMP0054" is not known to this version of CMake.


-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at cmake/IDA.cmake:26 (cmake_policy):
  Policy "CMP0054" is not known to this version of CMake.
Call Stack (most recent call first):
  CMakeLists.txt:29 (include)


-- variable ida_sdk was already set to "/home/user/tmp/Del_ASAP/_IDA/IDASkins-base/../idasdk68"
-- Checking IDA_INSTALL_DIR, ../dist/IDA-6.8
-- Getting ida_dir_env value from source "IDA_INSTALL_DIR"
-- IDA library path: /home/user/tmp/Del_ASAP/_IDA/IDASkins-base/../idasdk68/lib/x86_linux_gcc_32
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.6") 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
IDA_IDA_LIBRARY
    linked by target "IDASkins" in directory /home/user/tmp/Del_ASAP/_IDA/IDASkins-base

-- Configuring incomplete, errors occurred!
See also "/home/user/tmp/Del_ASAP/_IDA/IDASkins-base/build-6.8-32/CMakeFiles/CMakeOutput.log".
See also "/home/user/tmp/Del_ASAP/_IDA/IDASkins-base/build-6.8-32/CMakeFiles/CMakeError.log".
[-] CMake failed, giving up.
USER@HOST:~/tmp/Del_ASAP/_IDA/IDASkins-base$

Ubuntu 14.04.4 LTS
cmake version 2.8.12.2
qmake -query

QT_INSTALL_PREFIX:/usr
QT_INSTALL_DATA:/usr/share/qt4
QT_INSTALL_DOCS:/usr/share/qt4/doc
QT_INSTALL_HEADERS:/usr/include/qt4
QT_INSTALL_LIBS:/usr/lib/x86_64-linux-gnu
QT_INSTALL_BINS:/usr/lib/x86_64-linux-gnu/qt4/bin
QT_INSTALL_PLUGINS:/usr/lib/x86_64-linux-gnu/qt4/plugins
QT_INSTALL_IMPORTS:/usr/lib/x86_64-linux-gnu/qt4/imports
QT_INSTALL_TRANSLATIONS:/usr/share/qt4/translations
QT_INSTALL_CONFIGURATION:/etc/xdg
QT_INSTALL_EXAMPLES:/usr/lib/qt4/examples
QT_INSTALL_DEMOS:/usr/lib/qt4/demos
QMAKE_MKSPECS:/usr/share/qt4/mkspecs
QMAKE_VERSION:2.01a
QT_VERSION:4.8.6

Missing Toolbar Handle for VSCode when Vertical

Currently there is only QToolBar:handle and it is configured in a way to show the handle for the horizontal toolbar. When dragging the toolbar to its vertical orientation, the handle does not show and you are unable to drag the toolbar.

Should instead have separate:

QToolBar:handle:horizontal
QToolBar:handle:vertical

Install IDA skin

Hi guys,

Can you write a tutorial how to compile IDASkins and install into IDA?

Link error on Windows 10 IDA Pro 7.0

Hey, I am trying to compile the latest commit (2646f5e) on the dev branch on Windows 10.
I have installed Qt5, but when I try to compile IDASkins, it gives me a linking error:

ThemeSelector.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QT::QListWidget::setSelec
tionModel(class QT::QItemSelectionModel *)" (?setSelectionModel@QListWidget@QT@@UEAAXPEAVQItemSelectionModel@2@@Z)

I have tried various Qt5 versions: 5.9.3, 5.9.4 and 5.10
But none compiled successfully, so I think that I am doing something wrong :/

Edit:
This is the command I use to compile:

python .\ida-cmake\build.py -i "../idasdk70" -t 7.0 --idaq-path "A:/IDA 7.0" --skip-install

I also just saw this CMake warning, maybe it has to do something with it:

CMake Warning (dev) in CMakeLists.txt:
  Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.
  Run "cmake --help-policy CMP0071" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  For compatibility, CMake is excluding the GENERATED source file(s):

    "A:/repos/IDASkins/build-7.0-32/ui_ThemeSelector.h"
    "A:/repos/IDASkins/build-7.0-32/ui_ObjectInspector.h"

  from processing by AUTOMOC.  If any of the files should be processed, set
  CMP0071 to NEW.  If any of the files should not be processed, explicitly
  exclude them by setting the source file property SKIP_AUTOMOC:

    set_property(SOURCE file.h PROPERTY SKIP_AUTOMOC ON)

This warning is for project developers.  Use -Wno-dev to suppress it.

Any snippet to change color of all decompiled functions?

Having marked "decompiled functions" with that default light green over the time, it makes text unreadable with a dark skin.

Does anyone have a small Python script to change the color of all decompiled functions at once?
I'm trying to write one together right now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.