Commit Graph

736 Commits

Author SHA1 Message Date
Itay Cohen
c141eb34cc
Implement Seek to start/end of function Shortcuts (#1589)
* fix ctrl+'+' to zoom in`

* Add '^' and '$' shortcuts
2019-05-30 11:41:14 +03:00
Itay Cohen
53756f29d2
Sync hex.pairs eval to "Bytes as pairs" in Hexdump (#1586)
* Sync hex.pairs eval
2019-05-29 09:25:23 +03:00
rrockru
adf28e4362 Added natural registers sorting in RegistersWidget (#1591) 2019-05-27 10:55:09 +03:00
karliss
6c76c85c97 Fix memory leaks found by ASAN. (#1590) 2019-05-26 13:12:23 +03:00
Itay Cohen
14665cbe8a
make the shadow selection wider in hex (#1584) 2019-05-25 10:02:20 +03:00
optizone
31838a3a35 Basic Block Highlight (#1533) 2019-05-23 18:22:31 +02:00
karliss
214e6f4264 Hide duplicate and cross-function edges. (#1582) 2019-05-23 12:52:56 +02:00
karliss
75146d63f9 Update hex side panel only when visible. (#1578)
Fixes #1528
2019-05-23 12:44:28 +02:00
Florian Märkl
c0b359cb65
Keep Console Font on Theme Change (#1567) 2019-05-20 21:06:25 +02:00
Florian Märkl
90f71085d7
Fix some Warnings (#1561) 2019-05-19 22:11:09 +02:00
Florian Märkl
d32e3fa20f
Enable Console Completion only on Tab (#1558) 2019-05-19 16:24:06 +02:00
Florian Märkl
7e8eb9c393
Disable Up/Down in Console during Completion (#1554) 2019-05-19 14:45:49 +02:00
karliss
c0f4f458ed Take in to account selected instruction when moving view offset. (#1551) 2019-05-19 13:27:15 +03:00
karliss
1aabddc3f6 Make code compatible with QT 5.9 (#1553)
* Make code compatible with QT 5.9, Ubuntu 18.04.

* Fix high dpi scaling in ColorThemeListView.
2019-05-19 13:24:24 +03:00
Florian Märkl
051eb3aaf3
Save Console Wrap in QSettings (#1550) 2019-05-17 19:48:59 +02:00
Florian Märkl
2352477805
Fix HexWidget ShortcutContext (#1549)
Fixes Ctrl+C not working anywhere else.
2019-05-17 18:40:45 +02:00
Florian Märkl
ef22f20548
Fix non-integer Font Metrics in Graph (#1545) 2019-05-17 13:00:54 +02:00
karliss
d55ae67dc0 New Hexedit (#1516) 2019-05-16 18:03:48 +02:00
Florian Märkl
4f71526100 Fix Sections Size in Visualization 2019-05-16 14:57:18 +02:00
Florian Märkl
a18265a022 Remove Code Duplication in AbstractAddrDock 2019-05-16 14:57:18 +02:00
Florian Märkl
8f49722bf9 Auto Resize Visualization in SectionsWidget 2019-05-16 14:57:18 +02:00
Florian Märkl
a3a8daae55 Add Permissions Column to SectionsWidget 2019-05-16 14:57:18 +02:00
karliss
7bc4dd06bc Always enter mouse drag mode when clicking on overview widget. (#1539)
Fixes #1503.
2019-05-16 14:17:38 +02:00
karliss
5a59546009 Refresh overview even when function doesn't change (#1541)
It may be necesarrry to update data after changes in graph layout or
other properties.
2019-05-16 14:15:12 +02:00
Florian Märkl
72eab68be1
Revert "Fix layout save and restore feature (#1515)" (#1537)
This reverts commit 2ba9e170c5.
2019-05-15 20:45:16 +02:00
optizone
2ba9e170c5
Fix layout save and restore feature (#1515) 2019-05-14 23:30:10 +03:00
karliss
170d77e62c
Check if target graph has been set. (#1517)
Fixes #1508.
2019-05-12 07:08:48 +03:00
karliss
cda24bfc53
Seperate Widget showing grid of bytes from rest of the hexdump panel. (#1504)
* Seperate Widget showing grid of bytes from rest of the hexdump panel.
2019-05-10 14:15:57 +03:00
karliss
13d7de8fae Invalidate overview graph cache when changing color. (#1502)
Fixes #1496.
2019-05-06 10:30:48 +02:00
Itay Cohen
f2cd0053a5
Add X-Refs context menu item for Flags Widget (#1499)
* add xrefs for flags
2019-05-01 23:25:33 +03:00
optizone
089be2b87c refactor theme edit feature (#1461)
Refactor Theme Editor
2019-05-01 19:15:33 +03:00
Florian Märkl
c534b1bce8
Use API for Functions (#1498) 2019-05-01 13:34:15 +02:00
Itay Cohen
1d20129a0a
Light Theme (#1486)
* Implement Light Them for Cutter
2019-04-27 20:58:44 +03:00
Florian Märkl
1cc6abee44
Delete Extra Widgets on Close (#1490) 2019-04-27 11:46:29 +02:00
Florian Märkl
dff08963a1
Add Console Autocompletion from radare2 (#1489) 2019-04-26 17:07:11 +02:00
Christopher Harvey
e00a70ceaa Add Ctrl-Shift-C shortcut (#1476)
* Copies address at cursor from hexdump, graph and disassembly views
2019-04-25 14:38:53 +03:00
karliss
f68ed82489 Use same font size for all text in hexdump widget. (#1485) 2019-04-25 10:49:10 +02:00
Paul I
ce5c0f5d79 Fix highlighting bugs in DisasmWidget (#1477) 2019-04-22 11:48:06 +03:00
Itay Cohen
d0458597d1
Show a tooltip with Asm\Hex preview on search hits (#1480)
* implement search preview tooltip
2019-04-22 11:43:34 +03:00
karliss
f1fa05e647 Help not getting lost in empty parts of graph. (#1467)
* Limit how far outside image view can be moved
* Allow using main view as overview by zooming out
* Fix showBlock position calculation when zoomed out
2019-04-21 19:30:57 +03:00
Florian Märkl
f45badd026
Add Option to toggle Line Wrap in Console (#1466) 2019-04-18 18:42:27 +02:00
karliss
f3a246985a Show context menu with non block specific graph actions everywhere. (#1465)
Fixes #1415
2019-04-18 13:10:18 +03:00
karliss
2cc6479faa Start placing edges from centre. (#1460) 2019-04-16 09:58:52 +03:00
Florian Märkl
436c2ee89c
Fallback to current offset in LinkTypeDialog (#1458) 2019-04-15 13:14:46 +02:00
Florian Märkl
7eb62a976c
Refactor Refresh and Display of Overview (#1453) 2019-04-14 14:18:24 +02:00
Florian Märkl
34387c74b1 Fix Segfault with Extra Widgets 2019-04-14 14:04:38 +02:00
Jim Broadus
2fee3dabfb Fix crash in StringsWidget::on_actionX_refs_triggered. (#1450)
Qt::WA_DeleteOnClose is set for a dialog that is allocated on the stack. This
causes Qt to attempt to delete the object when the XrefsDialog calls its close
method.
2019-04-12 08:43:12 +03:00
optizone
059723b013 Navigate through graph view with arrows (#1441) 2019-04-10 21:07:53 +02:00
ncyellow
b6406e6ac6 fix compile ubuntu gcc7 (#1442) 2019-04-08 22:12:56 +02:00
Florian Märkl
65850d6aee
Replace GraphView::useCache with dirty flag (#1437) 2019-04-08 08:59:16 +02:00
Florian Märkl
cdca7bdc3f
Fix GraphEdge initialization in DisassemblerGraphView (#1436) 2019-04-07 13:34:53 +02:00
karliss
3e645980fc Implement middle mouse button panning. (#1433)
nice, thanks!
2019-04-07 13:02:35 +02:00
Florian Märkl
14c64e01f3
Basic OpenGL Graph Rendering (#1432) 2019-04-07 12:53:42 +02:00
karliss
0583b06191 Rewrite block sorting and placment so that unreachable blocks are processed. (#1428)
* Rewrite block sorting and placment so that unreachable blocks are processed.

* Use DFS instead of Kahn's algorithm for toposort as it makes it easier
to deal with loops.

* Remove unused code
2019-04-06 22:37:49 +03:00
karliss
df65f250e5 Make graph layout more failure resistant. (#1427) 2019-04-05 09:28:11 +03:00
karliss
cb51496e4f Separate graph layout code from GraphView. (#1414)
* Separate graph layout code from GraphView.

* Remove formatting and grid layout specific code from GraphLayout.

* Copy edge styles from from main graph view to overview.
2019-04-04 08:54:42 +03:00
karliss
103decedd6 Take pixel ratio into account for graph cache. (#1405)
* Take pixel ratio into account for graph cache.
2019-04-03 11:55:39 +03:00
karliss
5acb2cf0d3 Do not update sectionWidget position outside valid range. (#1399) 2019-03-27 09:27:24 +01:00
Anton Krasnokutskiy
5818998bb3 Fixed not switching Disassembly to not opened Graph view using <space> (#1370)
+ a bit refactor
2019-03-27 09:24:54 +01:00
xarkes
5bde1c3e8c Renamed asm.bbline to asm.bb.line (#1400) 2019-03-26 22:40:41 +03:00
xarkes
71ed30a604
Fixed overview basic block highlighting (#1393) 2019-03-26 12:07:17 +01:00
Florian Märkl
1710829267
Remove Jupyter Integration (#1398)
* Remove Jupyter Integration

Replaced by https://github.com/radareorg/cutter-jupyter

* Remove duplicate vars in .appveyor.yml
2019-03-25 21:43:00 +01:00
Romeu Gomes
eac91ed9c8 New private method in Dashboard to display text (#1390) 2019-03-25 10:24:18 +01:00
karliss
8d6622ac81 Improve hexdump width calculation. (#1389) 2019-03-25 00:12:14 +02:00
Anton Krasnokutskiy
e709a35723 AK/xref-dialog-fix (#1384) 2019-03-24 21:35:40 +02:00
Romeu Gomes
86b0b56f4a Add compiler information to dashboard (#1385) 2019-03-24 15:48:15 +01:00
Paul I
c7adeb4dd6
Update radare2 (#1381) 2019-03-24 12:39:54 +03:00
Florian Märkl
2ab676be71
Fix includes in DisassemblerGraphView.cpp (#1373) 2019-03-23 12:23:05 +01:00
Paul I
40452c9826
Some micro optimizations (#1346) 2019-03-23 13:54:34 +03:00
Anton Krasnokutskiy
e096f3ee4a DisassemblerGraphView zooming fix (#1354)
* Zooming of DisassemblerGraphView now works to cursor instead of top left corner.

* formatting fix.

* Fix refactor bug.
2019-03-23 10:21:06 +02:00
ncyellow
f59dce1727 Feature/dialogs optimization (#1360)
Changed create policy in dialogs to fix memory leaks.
2019-03-23 07:32:31 +01:00
Vanellope
5d96fc9694 Fix a bug regarding highlighting the words in Graph 2019-03-23 08:20:19 +02:00
Vanellope
6f1309452a revert shitty fix (#1335) 2019-03-19 20:15:14 +01:00
Vanellope
96f6e062fc Vane11ope/fix layout (#1308)
Refactoring and Fixes for the default layout.
2019-03-18 08:44:14 +02:00
Vanellope
f23ff9d8c5 Fix a bug of Overview perf (#1324) 2019-03-18 08:34:30 +02:00
xarkes
46bb07d725 Fixed the way headers are included 2019-03-15 16:19:27 +01:00
xarkes
3b87389d07
Removed stackptr because the result is meaningless (#1285) 2019-03-14 11:03:15 +01:00
Vanellope
ec62045336 Fix a font issue in the Graph widget (#1287) 2019-03-14 10:42:42 +01:00
Vanellope
0be50ac36f Overview optimization (#1262)
* Overview optimization
* Better cache algorithm
* Fix a bug of the multiple graphs
2019-03-12 09:37:10 +02:00
Florian Märkl
7a77eeee06 Fix NewFileDialog leaking MainWindow
This also fixes segfaults on quitting when using plugins
2019-03-11 10:42:22 +01:00
Itay Cohen
8b7d795a15
Add configurable graph overview node color (#1259) 2019-03-10 09:53:06 +02:00
Vanellope
7ea1f0b281 Fix couple of issues regarding Graph Overview (#1228) 2019-03-08 19:57:57 +01:00
Vanellope
0dff413e17 Fix a bug in seek caused by Graph refactoring (#1250)
* Fixed a bug in seek
2019-03-08 19:24:59 +02:00
Itay Cohen
d46ff14a21
Start using "gui.navbar.seek" color instead of "gui.navbar.err" to show seek cursor (#1244)
* fix navbar to use seek

* honor navbar.seek

* honor navbar.seek in Sections widget

* fix typo
2019-03-07 07:26:26 +02:00
xarkes
003d0d3c26
Modified documentation format (#1240) 2019-03-06 21:30:39 +01:00
Gaurav Kumar Ghildiyal
687ef2d799 Added feature to link a type to an address (#1219)
* Added feature to link a type to an address
2019-03-04 23:45:17 +02:00
Vanellope
c78957b328 Better solution for the infinite loop (#1232) 2019-03-02 09:07:05 +01:00
Vanellope
2208d3c134 Fix an infinite loop bug (#1218) 2019-02-26 11:24:49 +00:00
Vanellope
fa708143ac Overview does not disappear anymore when it is moved to the same dock as Graph (#1212)
* Overview does not disappear anymore when it is moved to same dock as Graph, Gray out Overview menu when Graph is not active
2019-02-24 07:15:40 +00:00
xarkes
ab27e09b91 Splitted Cutter.h and moved everything in core (#1201)
Sometimes it is not necessary to include the whole Cutter.h file
Hence, it's been splitted so you can include only what you require
E.g. #include "core/CutterCommon.h" to have access to the common types
2019-02-22 17:50:45 +01:00
xarkes
a93c5e225f Added a BasicBlock highlighting API 2019-02-21 22:57:26 +01:00
Florian Märkl
280e10d154 Subclass CutterDockWidget in Python Plugin
Refactor CutterPlugin::setupInterface() and fix C++ sample
2019-02-21 22:57:26 +01:00
xarkes
a1110ee2ac WIP Python plugin PoC 2019-02-21 22:57:26 +01:00
Gaurav Kumar Ghildiyal
a83791a3e0 Fix arch and bits in Hexdump Widget (#1209) 2019-02-20 21:16:56 +01:00
Vanellope
4a9b6182f5 Fix a bug which causes segfault when adding another Graph (#1202) 2019-02-19 15:56:50 +00:00
Gaurav Kumar Ghildiyal
a8fbe72bf7 Show sizes of structs and unions (#1203)
Show sizes of structs and unions and update radare2 submodule for r_core_save_parsed_type()
2019-02-19 14:11:01 +00:00
Vanellope
cd96856959 Fixed a scaling issue of Graph (#1200)
* Fixed a scaling issue of Graph

* Thoroughly fixed for the scaling

* double click fixed
2019-02-17 13:31:00 +00:00
Vanellope
f8cebe0e30 Graph scrolling forever (#1195)
* Replace scroll algorithm with just using offset

* WIP

* Text is now shown properly on each node

* WIP

* Scaling well WIP

* Fix positioning for Graph

* Overview properly displays Rect WIP

* Rect in overview moves along with the mouse WIP

* Overview rect properly moves WIP

* mouse properly moves WIP

* in middle of fixing resizing WIP

* scaling issue WIP

* Properly zooms

* almost done

* Edge width fixed for the overview

* Fixed a small bug

* Clean up
2019-02-16 17:17:11 +00:00
Florian Märkl
9a02dd24a7 Fix FunctionsWidget Tooltip Colors 2019-02-15 18:39:47 +01:00
Florian Märkl
9f31fd40b4 Move HTML Disasm formatting to Cutter 2019-02-15 18:39:47 +01:00
xarkes
2132b5cb09
Fixed a typo (#1192) 2019-02-13 15:35:38 +01:00
Adam Zambrzycki
ef2f8f6772 Fix graph header resizing (#1189)
* Fix graph header resizing

* Remove 'this'

* Fix formatting

* Add comment
2019-02-13 07:37:05 +00:00
Itay Cohen
b5a69357d6
Fix SDB Browser docking problem and rename the whole thing (#1188)
* Fix sdbBrowser docking and renaming

* Fix SdbBrowser docking and naming
2019-02-13 06:38:47 +00:00
Gaurav Kumar Ghildiyal
2f804380fc Fixed memory leak and refactored code (#1181) 2019-02-11 14:54:02 +00:00
Gaurav Kumar Ghildiyal
c9ce15f6dd Added load, delete and export features in the Types Widget (#1158)
* Added export types feature in types widget

* Added load new types option

* Added delete types option

* Removed redundant files

* Fix for translation

* Added popups in TypesWidget and related dialogs

* Added addTypes() in CutterCore and changed code to use it.

* Update r2 submodule for r_parse_c_string()

* Added override keyword for overridden functions

* Added comments and removed popup question.

* Added comments and confirmation dialog for delete
2019-02-11 09:34:15 +00:00
Vanellope
1a132ecf83 Fix an wrong positioning of the rect of Overview (#1171)
* Fix an wrong positioning of the rect of Overview

* Fix commenting and a resizing issue
2019-02-07 20:39:37 +00:00
Florian Märkl
3a80b111b3 Add Actions to Create/Rename/Delete Classes 2019-02-07 14:53:14 +01:00
Florian Märkl
bcb3a162f7
Use REvent for classes (#1169)
* React to Anal Class REvents

* Correctly react to specific Class Events

* Adapt to Class REvent changes

* Update r2 submodule for Class REvents
2019-02-07 11:42:53 +01:00
Adam Zambrzycki
6ad7900a3f Improved big blocks rendering performance (#1166) 2019-02-06 14:42:03 +01:00
Adam Zambrzycki
3493eae194 Fix graph blocks rendering optimization (#1164) 2019-02-05 16:21:02 +01:00
Vanellope
85a57f9e17 Proper fix for the infinite loop that had occurred to the Overview (#1156) 2019-02-03 08:54:28 +01:00
Florian Märkl
1ee1d7d948 Fix Seek to VTable and add some docs 2019-02-02 15:17:50 +01:00
Florian Märkl
dae04b8609 Rename Anal to Analysis in ClassesWidget 2019-02-02 15:17:50 +01:00
Florian Märkl
1864e7b95d Finish EditMethodDialog 2019-02-02 15:17:50 +01:00
Florian Märkl
7bdc28d07d Make EditMethodDialog Method Loading work 2019-02-02 15:17:50 +01:00
Florian Märkl
159d04e4c5 Re-enable Proxy Model for Classes Widget 2019-02-02 15:17:50 +01:00
Florian Märkl
2f0fd91137 Polish Classes Widget 2019-02-02 15:17:50 +01:00
Florian Märkl
c54f7df3cb Add Icons to ClassWidget 2019-02-02 15:17:50 +01:00
Florian Märkl
af20c35ab0 Show Anal Class Attributes 2019-02-02 15:17:50 +01:00
Florian Märkl
6087ab8016 Add Methods to fetch Anal class attrs 2019-02-02 15:17:50 +01:00
Florian Märkl
c7d582a893 Basic Display of Anal Classes in ClassesWidget
Fetch Anal Classes

Display vtable info in ClassesWidget

Add Context Menu to ClassesWidget

Show Base Classes in ClassesWidget

Add EditMethodDialog

Fix Anal Classes List

Set Anal as the default Classes Source

Display Anal Classes from SDB in ClassesWidget
2019-02-02 15:17:50 +01:00
Gaurav Kumar Ghildiyal
601339d86f Added some of the features mentioned in the Types Widget Project. (#1153)
* Added filter widget to types widget

* Added filter capibility in types widget

* Added comments and refactored some code

* Corrected some details
2019-02-01 18:11:50 +02:00
Vanellope
f5709830b9 Fix graph zoom for overview (#1152) 2019-01-31 13:14:15 +01:00
xarkes
8c6db6e3bb Fixed infinite recursion in OverviewView (#1144)
It was calling itself at the end of the function
instead of calling the parent's mousePressEvent
function.
2019-01-27 10:55:53 +02:00
vane11ope
43363f25e6 Fix a resizing issue 2019-01-24 20:45:35 +01:00
Vanellope
b25afecc2c Graph Overview (#1120)
Added a Graph Overview
2019-01-24 18:13:04 +01:00
Florian Märkl
f917921d49
Fix r2 injection in FunctionsWidget tooltip (#1122) 2019-01-20 12:51:02 +01:00
xarkes
fdf619a762 Moved CutterSeekable to common directory
It used to be in widgets for no reason, it is
just a regular class that is commonly used by some
widgets.
2019-01-15 08:21:35 +01:00
a1ext
1a748903e4 Fixed DisassemblyWidget's eventFilter crash (#1111)
* Fixed DisassemblyWidget's eventFilter crash (usage of a non-initialized member before assignment)

* Alignment fix, just to trigger appveyor build
2019-01-15 08:48:30 +02:00
xarkes
3c27c62b2d Fix Graph refresh 2019-01-14 18:50:20 +01:00
xarkes
b27cd39ddc Added RefreshDeferrer to emulation widgets 2019-01-14 18:50:20 +01:00
xarkes
06da378362 Readded SectionWidget with RefreshDeferrer 2019-01-14 18:50:20 +01:00
Florian Märkl
0ebe1cf728 Fix some minor issues and leaks 2019-01-14 18:50:20 +01:00
Florian Märkl
bbd5ad6b38 Document RefreshDeferrer 2019-01-14 18:50:20 +01:00
Florian Märkl
9ef971263f Fix DisassemblyWidget refreshing 2019-01-14 18:50:20 +01:00
Florian Märkl
d651a0d8be Add createReplacingRefreshDeferrer for convenience 2019-01-14 18:50:20 +01:00
Florian Märkl
b8c92a460d Add RefreshDeferrer 2019-01-14 18:50:20 +01:00
Florian Märkl
3728f977a2 Split isVisibleToUser and refreshing in Dock Widgets 2019-01-14 18:50:20 +01:00
xarkes
f4c720cffa WIP First PoC to draw only visible after seek 2019-01-14 18:50:20 +01:00
Adam Zambrzycki
d05fdd3d44 Add 'Copy' context menu option to graph view (#1097) 2019-01-14 09:16:10 +01:00
xarkes
b0bb1f0610
Fixed many warnings in DisassemblerGraphView (#1103)
Most of them were qreal to integer precision
loss, so I added static_cast to remove the
warnings.
2019-01-13 15:40:37 +01:00
xarkes
f385cf26d5 Refactored CutterSeekableWidget to CutterSeekable (#1099)
This commit refactors the CutterSeekableWidget class
and adds some documentation.
2019-01-13 16:20:07 +02:00
Itay Cohen
3666c97178 Highlight program counter in Navbar widget (#1095)
Highlight program counter in navbar and add navbar cursor
colors to native theme configuration.
2019-01-12 10:02:07 +01:00
Florian Märkl
f189fb423c
Remove Fallback for afcf in Graph Header (#1090)
since afcf now works for all functions in r2 this is not needed anymore and will greatly improve performance
2019-01-10 15:49:31 +01:00
a1ext
9aec148218 FunctionsWidget: tooltip data retrieving optimized (print limited number of instructions instead of printing the whole function) (#1088) 2019-01-09 07:45:07 +02:00
a1ext
78fe3eb3c1 Removed useless information from tooltip and removed very slow data retrieving with afij (#1087)
Now tooltip will show Disasm Preview and Highlights
2019-01-08 14:23:17 +02:00
Vanellope
975fd77116 Adjust size of each section in the address maps of Section Widget (#1086) 2019-01-07 12:43:44 +02:00
Vanellope
8e76a9aca5 Click and Seek implemented for the address maps in the Section Widget (#1046)
* Touch and Seek implemented, not yet refactoring

* Done
2018-12-30 17:13:27 +01:00
Florian Märkl
9a3844f5d1 Kill SidebarWidget 2018-12-25 00:08:19 +01:00
Florian Märkl
97cacd15f4 Fix Graph Refreshing 2018-12-24 13:49:17 +01:00