Preview of the new cross-platform IDA Pro GUI

In order to provide our customers with the best user experience and in order to target many different platforms, the IDA Pro graphical user interface is currently being rewritten using the Qt technology.
Qt (pronounced “cute”) is a cross-platform application and UI framework and the Win32 VCL-based IDA Pro interface is being ported to it. The goal is to provide all the features available in the current GUI while maintaining the maximum compatibility with plugins and other external modules.
Here is a screenshot of the current build of idaqt running on Ubuntu:
You can click on the images to enlarge them.

From the first version idaqt will include a fully functional graphing, which is, as it is possible to notice from the screenshot, already implemented. The same is true for hints, navigation band and all other advanced IDA Pro features.
This is idaqt on Windows 7. The text view looks exactly the same and all other features like choosers and forms will be available with no exception on all supported platforms.
The full range of options and customizations which the Win32 interface provides will be available as well.
As you can see, apart from the still to be implemented docking, the new interface looks pretty much the same as the Win32 one.
Not only will it be possible to deploy the same native graphical interface to Windows, OS X, Linux and other platforms which in the future may become popular, but the quality of the user experience and the further development capabilities will be hugely increased thanks to an advanced framework such as Qt.
Although idaqt is going to replace the current GUI completely, for some time they will be deployed together in order to fix any incompatibility issues and to give third party developers the necessary time to thoroughly test their products against the new interface.

16 thoughts on “Preview of the new cross-platform IDA Pro GUI”

  1. Fonts looks kinda big compared to the icon sizes (120 DPI?), you should provide bigger icon set for the higher DPI.
    If I can suggest something, please put an X on each tab to close it.
    On Win Vista + 7 you could also set listview + treeview theme to “Explorer” style with SetWindowTheme() api it would look more cool ๐Ÿ™‚
    Could you also post screenshots of how it looks without Windows themes?

  2. Yes, I use a 125 DPI, because of sight problems. Maybe I could think about a solution to display toolbars bigger, but that’s something for the future.
    As mentioned, the docking is not yet implemented, and so even the tab control is just a temporary solution to display the windows. It will be all replaced.
    The style of the application will be coherent with your current Windows theme. If you use the classic theme, then it will adapt to it. This is how Qt works and I think you’ll like it =)
    I can’t use APIs on Qt widgets as they are “aliens” to the system and not native Win32 Windows.
    But good that you pointed out the DPI thing, so that other users don’t get confused by the size of the font.

  3. I can’t wait for this version ๐Ÿ™‚ Running IDA under Wine is a bit annoying sometimes.
    BTW: Are you going to port also the plugins? I mean the Hex-Rays’s supported plugins: HexRays decompiler, Bochs debugger, QEMU debugger, etc…

  4. esm: it hasn’t been decided yet, but it will definitely stay there at least for the transitional period.

  5. Makes sense I suppose. Any predictions for how this will impact my WPF-based plugins that insert themselves into TForms and use the window handle as the basis for its interop?

  6. Awesome !
    Please, consider either shipping Qt bundled or static linking because for people running 64bits linux, 32bits compat libraries may not include Qt …
    I also hope the text gui will survive. (both have their usefulness imho)

  7. Yes, we will ship libraries for Qt with IDA.
    Johan: I remember that there is a way to host win32 windows inside Qt. I know it worked for the 4.4 framework, I don’t know if they plan to keep that project alive, but if so, then I will think about how to provide this kind of compatibility. I don’t know if it’s possible to guarantee that to work from the first version, though.

  8. Would it be too indiscrete at this stage to ask about the estimated availability and (single seat) pricing of this? Will there be separate packages for each platform, or all platforms supported in a single package?
    Many thanks.

  9. Thanks. Basically, everyone within support period will get all versions for free. For new users, there will be separate packages, one for each platform. Renewals will be done separately too.
    jordan: Qt will be bundled.

Comments are closed.