Commit Graph

1316 Commits

Author SHA1 Message Date
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
a39b579d2b
Only require Shiboken2 and PySide2 Version up to Minor (#1491) 2019-04-27 11:46:45 +02: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
1d4bd7ee7f Show recent files ordered by opening time. (#1462) 2019-04-17 11:02:06 +03:00
optizone
fd4b4b623a Improve project choose page (#1451) 2019-04-16 11:31:02 +02: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
800594551b
Bump version to 1.8.1 (#1456) 2019-04-14 22:06:24 +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
xarkes
5b0ef4c445 Removed max bbsize analysis option (#1424) 2019-04-14 12:36:13 +03: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
c6866df71e Focus on visible disasm or graph (#1444)
* focus on MainWindow by default
2019-04-12 08:22:06 +03:00
Florian Märkl
177e436a2e Use Args List to start Crash Handler 2019-04-11 20:27:03 +02:00
optizone
059723b013 Navigate through graph view with arrows (#1441) 2019-04-10 21:07:53 +02:00
Florian Märkl
4673a23f05 Crash Message Rewording 2019-04-10 13:33:35 +02:00
Florian Märkl
5add53cbf8 Start Crash Handler detached 2019-04-10 13:33:35 +02:00
optizone
c2deabee5d Use forked process to handle crashes (#1443) 2019-04-09 21:33:13 +02:00
Florian Märkl
1cb314d674
Add crash handling system using Breakpad (#1439) 2019-04-09 09:44:44 +02:00
ncyellow
b6406e6ac6 fix compile ubuntu gcc7 (#1442) 2019-04-08 22:12:56 +02:00
Paul I
3d454cdaa0 Use Python stable ABI >= 3.5 (#1426) 2019-04-08 22:07:35 +02:00
Florian Märkl
65850d6aee
Replace GraphView::useCache with dirty flag (#1437) 2019-04-08 08:59:16 +02:00
Florian Märkl
1cb5c1a8a9
Bring back Launch Script for macOS (#1438) 2019-04-07 20:03:19 +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
ncyellow
ae35ac9d08 Minor Header Optimizations (#1429)
1. remove unnecessary includes. compile optimization
2. add more const for getter functions
2019-04-06 14:04:55 +02:00
Paul I
5477054d5e
R2PluginsDialog: Sort plugins by name in ascending order (#1431) 2019-04-06 13:45:15 +03:00
Paul I
fe762b53a9 Meson: remove workaround for qtmain lib (#1430) 2019-04-06 10:54:33 +02:00
karliss
df65f250e5 Make graph layout more failure resistant. (#1427) 2019-04-05 09:28:11 +03:00
Itay Cohen
158ed7a656
Make plugins path selectable and bold (#1422) 2019-04-04 22:30:27 +03:00
Paul I
b701d5a9ad Load plugins from app dir on Windows (#1408) 2019-04-04 10:58:36 +02: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
Itay Cohen
8cffd7e07d
Implement Getter for MainWindow's menus (#1418)
* implement getter for MainWindow's menus
2019-04-03 10:50:25 +03:00
Florian Märkl
3292cb22cc
Update r2 and adapt Cutter (#1412) 2019-03-31 10:50:53 +02:00
ncyellow
d0540d7655 Get color for optimization (#1404)
* small optimization function getColorFor
2019-03-30 09:13:01 +03:00
Florian Märkl
41af189312
Update radare2 and adapt Cutter (#1406)
* Update radare2 and adapt Cutter

* Fix QByteArray creation in CutterCore::assemble()
2019-03-29 18:11:41 +01:00
Paul I
c50b19df90 Appveyor: use new cutter-deps package (#1403) 2019-03-29 18:11:29 +01:00
Florian Märkl
f514a1c3c7
Init Layout after loading Plugin UI (#1407)
* Init Layout after loading Plugin UI

* Make sure all Dock Widgets are part of the MainWindow
2019-03-29 18:02:27 +01:00
karliss
45698112c2 Enable dock grouped dragging when available. (#1402) 2019-03-28 11:17:01 +02:00
ncyellow
fbe9aea7d1 Xrefs select top item (#1401)
* closes #1363
select top item from refs or xrefs
2019-03-27 22:40:54 +02: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
Romeu Gomes
a2eb0011f4 Add emu.str in Preferences->Metadata (#1369) 2019-03-25 00:08:49 +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
Florian Märkl
76bcac8aa7
Delete all PySide2 QObjects before Py_Finalize() (#1386) 2019-03-24 13:11:54 +01:00
Paul I
c7adeb4dd6
Update radare2 (#1381) 2019-03-24 12:39:54 +03:00
Florian Märkl
894a79b0cc
Add CutterPlugin::terminate() (#1372) 2019-03-23 12:23:31 +01: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
Tatsh
fa6e465bd4 Build an app bundle on macOS (#1355) 2019-03-23 11:47:47 +01: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
a1ext
1422013d99 Fix crash because of mixing debug and release CRT. (#1361)
Memory allocated in r2-side has to be released with `r_free`
2019-03-23 07:15:03 +02:00
Florian Märkl
c84546e828
Extend FindPySide2.cmake and FindShiboken2.cmake for current versions (#1358) 2019-03-22 21:54:51 +01:00
Vanellope
7fd815bd40 Fixed a bug related to reset_settings (#1349) 2019-03-21 21:14:52 +01:00
Vanellope
72e8cd664e reset settings should reset layout as well (#1334) 2019-03-19 20:15:38 +01:00
Vanellope
6f1309452a revert shitty fix (#1335) 2019-03-19 20:15:14 +01:00
Florian Märkl
9f582b3e03 Use QVersionNumber for Version Comparison 2019-03-18 21:42:46 +01:00
Florian Märkl
a3e4daecca Release Bump 1.8.0 2019-03-18 20:22:24 +01:00
Florian Märkl
dd934443a7 Fix changing Variable Name in EditVariablesDialog 2019-03-18 20:14:28 +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
Vanellope
6f324496be Force overview to update itself when the settings are changed (#1314) 2019-03-17 13:50:36 +01:00
Florian Märkl
aa591e1a47 Add Plugins Section to Preferences 2019-03-16 20:24:28 +01:00
ncyellow
dffb9dccb9 append layout to OpenFileDialog, so the dialog more flexible (#1293)
* append layout to OpenFileDialog, so the dialog more flexible

* "Select file" button alignement.g

* new variant layout for OpenFileDialog in 3 column
2019-03-16 14:39:15 +02:00
Florian Märkl
8061120657
Use cutter-deps on Windows (#1286)
Also enable python plugins for Windows builds
2019-03-16 11:35:31 +01: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
31a832c34d Add PluginManager::getPluginsDirectory() 2019-03-11 11:55:02 +01:00
Florian Märkl
193fef46df Fix some warnings 2019-03-11 11:38:53 +01:00
Florian Märkl
c3f1636aee Fix NewFileDialog positioning on macOS 2019-03-11 10:42:22 +01: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
Florian Märkl
48260cc534 Implement finding PySide2 and Shiboken2 without config 2019-03-11 10:42:22 +01:00
Florian Märkl
defc9ead43 Add basic find modules for PySide2 and Shiboken2 2019-03-11 10:42:22 +01:00
Itay Cohen
1af9195e21
Replace red syntax highlighting with blueish color (#1261)
* remove bolding
* change highlight color from red to blueish
2019-03-10 15:09:02 +02:00
Itay Cohen
8b7d795a15
Add configurable graph overview node color (#1259) 2019-03-10 09:53:06 +02:00
optizone
3fed97ad86 Auto update check (#1235)
* init commit

* bug fix

* call slot of null object bug fix

* delete extra disconnect() func

* change api and add doc

* run astyle

* some improvements

* memory leak fix

* add check on start checkbox

* add checkbox to about page

* serve version check reply using lambda instead of slot

* fix grammar mistakes

* more docs

* save some lines

* change button text

* astyle

* change message text

* dont use QApplication pointer as a parent for network manager

* proper deletion of QNetworkReply*

* VersionChecker -> UpdateWorker

* windows dll hack

* after rebase fix

* some improvements

* better determination of arch

* more docs

* improvements

* add UpdateWorker::showUpdateDialog

* remove odd condition

* more improvements

* fix windows bug

* make dialog non-blocking

* change text in download progress dialog

* bug fix

* remove debug conditions

* change docs format
2019-03-09 14:11:39 +01:00
Florian Märkl
d4a6b031ff Use only cutter module in sample plugin 2019-03-09 14:07:20 +01:00
Florian Märkl
7315f8e102 Use template in bindings.xml 2019-03-09 14:07:20 +01:00
Paul I
7554cb5461 Disable aan (#1253) 2019-03-09 09:09:37 +02:00
Florian Märkl
732f2d8cde
Use cutter-deps on macOS (#1238)
* Update deps scripts for macOS

* Update deps

* Update appbundle_embed_python.sh

* Use cutter-deps for macOS

* Remove qt from Brewfile

* Fix .travis.yml

* Disable Homebrew update

* Fix llvm for macOS

* Fix regex in update_deps.py

* Fix PYTHON_FRAMEWORK_DIR

* Some debug output in travis

* Enable Python Bindings for cmake on macOS

* QMake debug

* Update deps

* Hopefully fix pkg-config

* QMake hack for shiboken2 and pyside2

* Deploy on deps-test

* Update deps

* Fix call to appbundle_embed_python.sh

* Update deps

* Fix Python for cmake on macOS

* Update deps

* Fix appbundle_embed_python.sh

* Copy pyside libs in appbundle_embed_python.sh

* Fix includes for CMake on macOS

* Copy PySide2 and Shiboke2 libs to Frameworks dir

* Manually deploy QtDBus and QtPrintSupport

* Print plugins dir

* Fix appbundle_embed_python.sh

* Update deps

* Remove some debug output

* Use last release of linuxdeployqt
2019-03-09 00:01:24 +01: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
Florian Märkl
8bfa653909
Use cutter-deps on Linux (#1217)
* Use cutter-deps for Linux

* Update CMakeLists.txt for newer PySide2

* Add llvm-config --libdir to LD_LIBRARY_PATH in Travis

* Update cutter-deps

* Fix Python Prefix for Deploy

* Update cutter-deps

* Install Jupyter in Travis

* Add update_deps.py and update

* Enable Python Bindings for qmake in Travis

* Use absolute path for src_list.py in qmake

* Use python directly for src_list.py in qmake

* Keep env for linuxdeployqt

* Embed PySide2 in AppImage

* Fix appimage_embed_python.sh
2019-02-28 14:56:54 +01:00
xarkes
711ed505dc
Updated links to the documentation (#1229)
* Updated links to the documentation
2019-02-28 11:21:21 +01:00
Florian Märkl
1f4339bed2
Fix Jupyter (#1223)
* Call PyErr_Print() in QtResImport()

* Fix Jupyter
2019-02-27 14:54:47 +01:00
Vanellope
2208d3c134 Fix an infinite loop bug (#1218) 2019-02-26 11:24:49 +00:00
Gaurav Kumar Ghildiyal
a10ca8f033 Add feature to apply structure offset and fix some issues in EditVariablesDialog (#1215)
* Fixed EditVariablesDialog

* Added feature to apply structure offset in disassembly and graph view
2019-02-24 17:25:38 +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
6a77db67ff
Disabled Python building by default (#1214)
Many people do not have shibokken or jupyter or the
python libraries on their computer, so it's better
not to enable those by default.
2019-02-23 08:24:31 +01: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
Florian Märkl
2d2b9c8a28
Change organizationName and use QSettings:IniFormat (#1213)
* Remove organizationName

* Use QSettings::IniFormat and migrate if possible

* Use RadareOrg as the organizationName
2019-02-22 14:38:02 +01:00
Florian Märkl
5313017c54 Fix Segfault when jupyter is not installed 2019-02-21 22:57:26 +01:00
ITAYC0HEN
3cdc6a5230 Add Plugins submenu 2019-02-21 22:57:26 +01:00
Florian Märkl
d1f5da9946 Init Python before RCore 2019-02-21 22:57:26 +01:00
xarkes
a93c5e225f Added a BasicBlock highlighting API 2019-02-21 22:57:26 +01:00
Florian Märkl
7caabf5350 Fix Python for CMake in Travis 2019-02-21 22:57:26 +01:00
Florian Märkl
acca40b978 Include and meson fixes
Fix QDir include in PythonManager

Fix cassert include

Fix assert include in PluginManager.cpp
2019-02-21 22:57:26 +01:00
Florian Märkl
70e7840e75 Temporarily disable Bindings in CI, QMake Fixes 2019-02-21 22:57:26 +01:00
Florian Märkl
f5fb9f364f Fix segfault when CutterCore is destructed 2019-02-21 22:57:26 +01:00
Florian Märkl
2b8a0df4cc Use correct shiboken executable in CMake 2019-02-21 22:57:26 +01:00
Florian Märkl
804bd5ef08 Build Python Bindings with meson 2019-02-21 22:57:26 +01:00
Florian Märkl
aaf88e85aa Fix CUTTER_ENABLE_PYTHON_BINDINGS in cmake 2019-02-21 22:57:26 +01:00
Florian Märkl
f945ebf9ae Add enable_python option to meson 2019-02-21 22:57:26 +01:00
Florian Märkl
2be8ec8456 Generate Bindings in QMake
Fix typesystem-paths
2019-02-21 22:57:26 +01:00
xarkes
436842222e Modified some APIs for more consistence
Correct null check after create_cutter_plugin()

Fix cutter.core()
2019-02-21 22:57:26 +01:00
Florian Märkl
18b40a8b90 Automatically determine Bindings cpp files
Enhance src_list.py
2019-02-21 22:57:26 +01:00
Florian Märkl
950f24eaf3 Fix build without Python 2019-02-21 22:57:26 +01:00
Florian Märkl
40274e4bf4 Kill CutterPythonPlugin and use Bindings instead
Simplify CutterPlugin Interface

Pull Python Plugin Metadata from class vars

Also kill cutter_plugin.py

Fix Python Plugin Module Loading
2019-02-21 22:57:26 +01:00
Florian Märkl
d544bbed77 Create Plugins dir automatically 2019-02-21 22:57:26 +01:00
Florian Märkl
ea6dea3cc1 Load Plugins from QStandardPaths::AppDataLocation 2019-02-21 22:57:26 +01:00
Florian Märkl
986041380c Add PluginManager 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
Florian Märkl
23115d7b1c Generate Bindings for CutterCore in CMake
Refactor CMakeLists.txt for bindings

Fix for CUTTER_ENABLE_JUPYTER=OFF
2019-02-21 22:57:26 +01:00
Florian Märkl
1c98a1c42e Partially fix shutting down Python 2019-02-21 22:57:26 +01:00
xarkes
da3e1fad29 Cleaned a bit and added a widget example 2019-02-21 22:57:26 +01:00
Florian Märkl
74a201ecba Move everything Jupyter related out of PythonManager
Fix importing cutter in Python
2019-02-21 22:57:26 +01:00
Florian Märkl
b9c859bc0c Get Python Plugin Metadata 2019-02-21 22:57:26 +01:00
Florian Märkl
1f3315d020 Find MainWindow in Python
Return Pointer from setupInterface() in Python Plugin

Load plugins before creating MainWindow
2019-02-21 22:57:26 +01:00
Florian Märkl
7798021f03 Print Python Errors from setupPlugin() and setupInterface() 2019-02-21 22:57:26 +01:00
xarkes
73c40da3f9 PyDecref python plugin instance, Cleanup 2019-02-21 22:57:26 +01:00
xarkes
650823409d Test setupInterface 2019-02-21 22:57:26 +01:00
xarkes
9c2de3e23d Calling setupPlugin from python 2019-02-21 22:57:26 +01:00
xarkes
a1110ee2ac WIP Python plugin PoC 2019-02-21 22:57:26 +01:00