das-labor / panopticon

A libre cross-platform disassembler.
https://panopticon.re
GNU General Public License v3.0
1.43k stars 80 forks source link

Issue in Window.qml: can't find ControlFlowWidget #345

Open nbigaouette opened 6 years ago

nbigaouette commented 6 years ago

I've followed the README to build panopticon (33ffec0d6d379d51b38d6ea00d040f54b1356ae4) on macOS using homebrew (qt 5.10.1). panopticon fails to start:

> cargo run -p panopticon --release
warning: path `/Users/nicolas/panopticon.git/cli/src/main.rs` was erroneously implicitly accepted for binary `panop`,
please set bin.path in Cargo.toml
    Finished release [optimized] target(s) in 0.0 secs
     Running `target/release/panopticon`
QQmlApplicationEngine failed to load component
file:///Users/nicolas/panopticon.git/qml/Panopticon/Window.qml:173 ControlFlowWidget is not a type

Looking at the Window.qml file, I see a ControlFlowWidget QML component being instanciated, and I can see that the qml/Panopticon/ControlFlowWidget.qml file exists, but why can't it find it?

Also, the README mention launching the panopticon-qt crate, which does not exists:

> cargo run -p panopticon-qt --release
error: package `panopticon-qt` is not a member of the workspace

The first error happens when launching the panopticon crate instead.

nbigaouette commented 6 years ago

It seems the qml files are not properly listed in qml/Panopticon/qmldir.

If I manually add them all, I can launch the UI successfully:

qml/Panopticon/qmldir
diff --git a/qml/Panopticon/qmldir b/qml/Panopticon/qmldir
index 9a1af07..463989a 100644
--- a/qml/Panopticon/qmldir
+++ b/qml/Panopticon/qmldir
@@ -1,6 +1,14 @@
 module Panopticon
+BasicBlock 1.0 BasicBlock.qml
 ColumnHeader 1.0 ColumnHeader.qml
+CommentOverlay 1.0 CommentOverlay.qml
+ControlFlowWidget 1.0 ControlFlowWidget.qml
+EditPopover 1.0 EditPopover.qml
+Label 1.0 Label.qml
+MessageBlock 1.0 MessageBlock.qml
+Monospace 1.0 Monospace.qml
+PreviewOverlay 1.0 PreviewOverlay.qml
 Sidebar 1.0 Sidebar.qml
 Welcome 1.0 Welcome.qml
 Window 1.0 Window.qml

Would it be that simple...?

Should qml/qmldir be adapted too?

flanfly commented 6 years ago

Odd, it worked until recently. I guess Qt changed/fixed the semantics here. EDIT: The module Panopticon should include Panopticon/qmldir, so no.