tools/hhtracer/Main.qml
author unC0Rr
Mon, 27 Jan 2025 13:08:58 +0100
changeset 16063 ec4fc7eb6acd
parent 16056 9ad74696ddec
permissions -rw-r--r--
Add some further work on hhtracer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     1
import QtQuick
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     2
import QtQuick.Controls
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     3
import QtQuick.Dialogs
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     4
import QtQuick.Layouts
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     5
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     6
ApplicationWindow {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     7
  height: 900
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     8
  title: qsTr("Tracer")
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
     9
  visible: true
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    10
  width: 1200
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    11
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    12
  header: ToolBar {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    13
    RowLayout {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    14
      Button {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    15
        text: qsTr("Choose Image...")
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    16
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    17
        onClicked: fileDialog.open()
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    18
      }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    19
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    20
      Button {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    21
        text: qsTr("Start")
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    22
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    23
        onClicked: {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    24
          stepTimer.start();
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    25
        }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    26
      }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    27
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    28
      Button {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    29
        text: qsTr("Stop")
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    30
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    31
        onClicked: {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    32
          stepTimer.stop();
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    33
        }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    34
      }
16056
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
    35
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
    36
      Label {
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
    37
        text: "Best: %1".arg(tracer.bestSolution)
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
    38
      }
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    39
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    40
      Label {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    41
        text: "Gen: %1".arg(tracer.generation)
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    42
      }
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    43
    }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    44
  }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    45
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    46
  FileDialog {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    47
    id: fileDialog
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    48
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    49
    nameFilters: ["Hedgehog images (*.png)"]
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    50
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    51
    onAccepted: {
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    52
      console.log("Hello");
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    53
      baseImage.source = selectedFile;
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    54
      tracer.start(fileDialog.selectedFile);
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    55
      tracer.generation = 0;
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    56
    }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    57
  }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    58
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    59
  Tracer {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    60
    id: tracer
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    61
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    62
    property int generation: 0
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    63
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    64
    atoms: [
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    65
      {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    66
        "type": "polygon",
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    67
        "length": 3,
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    68
        "pens": ["#9f086e", "#54a2fa"],
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    69
        "brushes": ["#2c78d2", "#54a2fa"]
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    70
      },
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    71
      {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    72
        "type": "circle",
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    73
        "pens": ["#9f086e", "#f29ce7"],
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    74
        "brushes": ["#d66bcc",  "#f29ce7"]
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    75
      },
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    76
      {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    77
        "type": "circle",
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    78
        "pens": ["#000000"],
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    79
        "brushes": [ "#000000"]
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    80
      },
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    81
      {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    82
        "type": "circle",
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    83
        "pens": ["#ffffff"],
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    84
        "brushes": [ "#ffffff"]
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    85
      }
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    86
    ]
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    87
  }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    88
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    89
  Timer {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    90
    id: stepTimer
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    91
16056
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
    92
    interval: 120
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    93
    repeat: true
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    94
    running: false
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    95
    triggeredOnStart: true
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
    96
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    97
    onTriggered: {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    98
      tracer.generation = tracer.generation + 1;
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
    99
      tracer.step();
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   100
    }
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   101
  }
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   102
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   103
  Rectangle {
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   104
    anchors.fill: parent
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   105
    color: "#a0c0a0"
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   106
  }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   107
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   108
  ColumnLayout {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   109
    anchors.fill: parent
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   110
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   111
    Image {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   112
      id: baseImage
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   113
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   114
      Layout.fillWidth: true
16056
9ad74696ddec Add some progress on hhtracer
unC0Rr
parents: 16055
diff changeset
   115
      Layout.preferredHeight: 32
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   116
      fillMode: Image.PreserveAspectFit
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   117
    }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   118
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   119
    GridLayout {
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   120
      Layout.fillHeight: true
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   121
      Layout.fillWidth: true
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   122
      columns: 30
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   123
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   124
      Repeater {
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   125
        model: tracer.solutions
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   126
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   127
        Image {
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   128
          fillMode: Image.PreserveAspectFit
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   129
          height: 32
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   130
          source: "file://" + modelData
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   131
          width: 32
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   132
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   133
          Rectangle {
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   134
            anchors.fill: parent
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   135
            border.color: "black"
16063
ec4fc7eb6acd Add some further work on hhtracer
unC0Rr
parents: 16056
diff changeset
   136
            border.width: 1
16055
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   137
            color: "transparent"
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   138
          }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   139
        }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   140
      }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   141
    }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   142
  }
2d65bd46c92f Start work on hedgehog tracer
unC0Rr
parents:
diff changeset
   143
}