Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions .github/workflows/_build_and_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,25 +76,25 @@ jobs:
benchmark: ${{ inputs.benchmark }}
publishBenchmarks: ${{ inputs.publishBenchmarks }}

Package:
needs: Build
strategy:
fail-fast: false
matrix:
os: [ macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: 'Download Source Tarfiles'
uses: actions/download-artifact@v4
with:
name: source
# Package:
# needs: Build
# strategy:
# fail-fast: false
# matrix:
# os: [ macos-latest, windows-latest ]
# runs-on: ${{ matrix.os }}
# steps:
# - name: 'Download Source Tarfiles'
# uses: actions/download-artifact@v4
# with:
# name: source

- name: 'Unpack Source'
shell: bash
run: tar -xvf dissolve-versioned-source.tar
# - name: 'Unpack Source'
# shell: bash
# run: tar -xvf dissolve-versioned-source.tar

- name: "Package (${{ matrix.os }})"
uses: "./.github/workflows/package"
with:
currentVersion: ${{ inputs.currentVersion }}
qtVersion: ${{ inputs.qtVersion }}
# - name: "Package (${{ matrix.os }})"
# uses: "./.github/workflows/package"
# with:
# currentVersion: ${{ inputs.currentVersion }}
# qtVersion: ${{ inputs.qtVersion }}
8 changes: 4 additions & 4 deletions .github/workflows/package/osx/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ runs:
export PATH="$(python3 -m site --user-base)/bin:$PATH"

# Set variables
appName=Dissolve-GUI-${{ runner.arch }}
appName=Dissolve-GUI-QML-${{ runner.arch }}
appDirName=${appName}.app
packageName=Dissolve-GUI-${{ runner.arch }}-${{ inputs.currentVersion }}
packageName=Dissolve-GUI-QML-${{ runner.arch }}-${{ inputs.currentVersion }}

# Prepare the dmg file content
./prep-dmg -a Dissolve-GUI-${{ runner.arch }} -v ${{ inputs.currentVersion }} -b build/bin/dissolve-gui.app/Contents/MacOS/dissolve-gui -d ${Qt6_ROOT} -i icon/icon-1024x1024.png -p build/bin/dissolve-gui.app/Contents/Info.plist -q src/gui/qml
./prep-dmg -a Dissolve-GUI-QML-${{ runner.arch }} -v ${{ inputs.currentVersion }} -b build/bin/dissolve-gui-qml.app/Contents/MacOS/dissolve-gui-qml -d ${Qt6_ROOT} -i icon/icon-1024x1024.png -p build/bin/dissolve-gui-qml.app/Contents/Info.plist -q src/gui/qml

# Copy dependencies into Frameworks folder in app bundle
cp -v ./build/antlr4-cppruntime/lib/*.dylib ${packageName}/${appDirName}/Contents/Frameworks/
Expand All @@ -64,7 +64,7 @@ runs:
export PATH="$(python3 -m site --user-base)/bin:$PATH"

# Set variables
appName=Dissolve-GUI-${{ runner.arch }}
appName=Dissolve-GUI-QML-${{ runner.arch }}
appDirName=${appName}.app
packageName=Dissolve-GUI-${{ runner.arch }}-${{ inputs.currentVersion }}
dmgName=Dissolve-GUI-${{ inputs.currentVersion }}-${{ runner.arch }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ tests/epsr/H2OX-weighted-total.gr.broad
tests/epsr/HDO-ReferenceData.q
tests/epsr/HDO-ReferenceData.r
tests/data/dissolve/input/TestOutput_*
tests/data/*restart.txt

# Visual Studio
.vscode/
Expand Down
57 changes: 0 additions & 57 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -245,24 +245,6 @@ target_include_directories(
# Add GUI targets
if(GUI)

# Main Dissolve GUI
qt_add_executable(${gui_target_name} MACOSX_BUNDLE ${SRCS}/dissolve-gui.cpp)

# Set project-local include directories for target
target_include_directories(
${gui_target_name}
PRIVATE ${PROJECT_SOURCE_DIR}/src
${PROJECT_BINARY_DIR}/src
${CMAKE_BINARY_DIR}/src/gui/gui_autogen/include
${FREETYPE_INCLUDE_DIRS}
${Qt6Core_INCLUDE_DIRS}
${Qt6Gui_INCLUDE_DIRS}
${Qt6OpenGL_INCLUDE_DIRS}
${Qt6Widgets_INCLUDE_DIRS}
${Qt6OpenGL_INCLUDE_DIRS}
${Qt6OpenGLWidgets_INCLUDE_DIRS}
)

# Dissolve QML GUI
qt_add_executable(${qmlgui_target_name} MACOSX_BUNDLE ${SRCS}/dissolve-gui-qml.cpp)
set_source_files_properties(${SRCS}/gui-qml/qml/DissolveMain.qml PROPERTIES QT_RESOURCE_ALIAS qml/DissolveMain.qml)
Expand Down Expand Up @@ -361,34 +343,6 @@ if(GUI)

add_subdirectory(QuickPlot/src)

# Main Dissolve GUI
target_link_libraries(
${gui_target_name}
PUBLIC ${WHOLE_ARCHIVE_FLAG}
${BASIC_LINK_LIBS}
# Module gui libs
${MODULEGUI_LINK_LIBS}
moduleWidgetProducer
# Main gui libs
render
widgets
keywordWidgets
delegates
models
gui
${NO_WHOLE_ARCHIVE_FLAG}
PRIVATE # External libs
Qt6::Widgets
Qt6::Core
Qt6::Quick3D
OpenGL::GL
${GUI_LINK_LIBS}
${FREETYPE_LIBRARIES}
${FTGL_LIBRARIES}
${CORE_LINK_LIBS}
${THREADING_LINK_LIBS}
)

set_target_properties(${qmlgui_target_name} PROPERTIES QML_IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY})

# Link to models when developing QML Dissolve in Visual Studio
Expand All @@ -414,17 +368,6 @@ if(GUI)
Qt6::Quick3D Qt6::Qml Qt6::Widgets ${CORE_LINK_LIBS} ${THREADING_LINK_LIBS}
)

qt_generate_deploy_qml_app_script(
TARGET
${gui_target_name}
FILENAME_VARIABLE
deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
MACOS_BUNDLE_POST_BUILD
NO_UNSUPPORTED_PLATFORM_ERROR
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
)
install(SCRIPT ${deploy_script})
endif(GUI)

# Install for MSVC
Expand Down
9 changes: 1 addition & 8 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,6 @@
"displayName": "CLI Debug Nix Build",
"description": "The preset for a CLI debug build on a Nix system with tests",
"inherits": ["base", "Debug", "nix"]
},

{
"name": "SCARF",
"displayName": "SCARF build",
"description": "Best setup for SCARF",
"inherits" : ["MPI-Release"]
}
}
]
}
12 changes: 6 additions & 6 deletions ci/windows/dissolve-gui.iss
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#define MyAppVersion GetEnv('DISSOLVE_VERSION')
#define MyAppPublisher "Team Dissolve"
#define MyAppURL "https://www.projectdissolve.com/"
#define MyAppExeName "Dissolve-GUI.exe"
#define MyAppExeName "Dissolve-GUI-QML.exe"

; Locations of bin directories of Dissolve, Qt, GnuWin, MinGW etc.
#define DissolveDir GetEnv('DISSOLVE_DIR')
Expand All @@ -27,11 +27,11 @@ AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={commonpf}\Dissolve-GUI
DefaultDirName={commonpf}\Dissolve-GUI-QML
DefaultGroupName={#MyAppName}
LicenseFile=..\..\LICENSE.txt
OutputDir=..\..\
OutputBaseFilename=Dissolve-GUI-{#MyAppVersion}-Win64
OutputBaseFilename=Dissolve-GUI-QML-{#MyAppVersion}-Win64
SetupIconFile=Dissolve.ico
Compression=lzma
SolidCompression=yes
Expand All @@ -44,9 +44,9 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{

[Files]
Source: "{#DeployDir}\install\bin\*"; DestDir: "{app}\bin"
Source: "{#DeployDir}\install\plugins\*"; DestDir: "{app}\plugins"; Flags: recursesubdirs
Source: "{#DeployDir}\install\qml\*"; DestDir: "{app}\qml"; Flags: recursesubdirs
Source: "{#DeployDir}\install\translations\*"; DestDir: "{app}\translations"
; Source: "{#DeployDir}\install\plugins\*"; DestDir: "{app}\plugins"; Flags: recursesubdirs
; Source: "{#DeployDir}\install\qml\*"; DestDir: "{app}\qml"; Flags: recursesubdirs
; Source: "{#DeployDir}\install\translations\*"; DestDir: "{app}\translations"
Source: "Dissolve.ico"; DestDir: "{app}\bin"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: "{#FreetypeDir}\freetype.dll"; DestDir: "{app}\bin"
Expand Down
1 change: 0 additions & 1 deletion src/gui/configurationTab.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

#include "base/units.h"
#include "gui/mainTab.h"
#include "gui/models/enumOptionsModel.h"
#include "gui/models/externalPotentialModel.h"
#include "gui/models/generatorModel.h"
#include "gui/models/globalPotentialFilterProxy.h"
Expand Down
5 changes: 2 additions & 3 deletions src/gui/keywordWidgets/fileAndFormat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "gui/keywordWidgets/fileAndFormat.h"
#include "gui/keywordWidgets/dialog.h"
#include "gui/models/nodeGraph/enumRegistry.h"
#include "io/fileAndFormat.h"
#include "main/dissolve.h"
#include <QComboBox>
Expand All @@ -15,13 +16,11 @@ FileAndFormatKeywordWidget::FileAndFormatKeywordWidget(QWidget *parent, FileAndF
{
ui_.setupUi(this);

enumOptionsModel_.setData(keyword_->data().formats());

refreshing_ = true;

// Populate combo with the file formats available
ui_.FormatCombo->clear();
ui_.FormatCombo->setModel(&enumOptionsModel_);
ui_.FormatCombo->setModel(EnumRegistry::options(typeid(int)).get());

// If the FileAndFormat has keyword options, enable the options button.
ui_.OptionsButton->setEnabled(keyword_->hasOptions());
Expand Down
3 changes: 0 additions & 3 deletions src/gui/keywordWidgets/fileAndFormat.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

#include "gui/keywordWidgets/base.h"
#include "gui/keywordWidgets/ui_fileAndFormat.h"
#include "gui/models/enumOptionsModel.h"
#include "keywords/fileAndFormat.h"
#include <QWidget>

Expand Down Expand Up @@ -34,8 +33,6 @@ class FileAndFormatKeywordWidget : public QWidget, public KeywordWidgetBase
private:
// Main form declaration
Ui::FileAndFormatWidget ui_;
// Model for enum options
EnumOptionsModel enumOptionsModel_;

private Q_SLOTS:
void on_FileEdit_editingFinished();
Expand Down
4 changes: 2 additions & 2 deletions src/gui/keywordWidgets/interactionPotential.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// Copyright (c) 2025 Team Dissolve and contributors

#include "gui/keywordWidgets/interactionPotential.h"
#include "gui/models/nodeGraph/enumRegistry.h"
#include "main/dissolve.h"
#include <QComboBox>

Expand All @@ -14,9 +15,8 @@ InteractionPotentialKeywordWidget::InteractionPotentialKeywordWidget(QWidget *pa
refreshing_ = true;

// Populate combo with the available forms
formModel_.setData(keyword_->formOptions());
ui_.FormCombo->clear();
ui_.FormCombo->setModel(&formModel_);
ui_.FormCombo->setModel(EnumRegistry::options(typeid(int)).get());

// Set current information
updateWidgetValues(coreData_);
Expand Down
2 changes: 1 addition & 1 deletion src/gui/keywordWidgets/interactionPotential.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#include "gui/keywordWidgets/base.h"
#include "gui/keywordWidgets/ui_interactionPotential.h"
#include "gui/models/enumOptionsModel.h"
#include "gui/models/nodeGraph/enumOptionsModel.h"
#include "keywords/interactionPotential.h"
#include <QWidget>

Expand Down
3 changes: 0 additions & 3 deletions src/gui/models/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ set(models_MOC_HDRS
configurationModel.h
dataManagerSimulationModel.h
dissolveModel.h
enumOptionsModel.h
forcefieldModel.h
isotopologueSetModel.h
masterAngleModel.h
Expand Down Expand Up @@ -69,7 +68,6 @@ set(models_SRCS
dissolveModel.cpp
dissolveModelImageProvider.cpp
dissolveModelImageProvider.h
enumOptionsModel.cpp
expressionVariableVectorModel.cpp
externalPotentialModel.cpp
ffSortFilterModel.cpp
Expand Down Expand Up @@ -125,7 +123,6 @@ qt6_wrap_cpp(
atomTypeModel.h
braggReflectionModel.h
dataManagerSimulationModel.h
enumOptionsModel.h
expressionVariableVectorModel.h
forcefieldModel.h
isotopologueSetModel.h
Expand Down
13 changes: 11 additions & 2 deletions src/gui/models/nodeGraph/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
set(nodeGraphModels_MOC_HDRS exampleGraphModel.h graphModelBase.h graphEdgeModel.h graphNodeModel.h generatorGraphModel.h nodeWrapper.h)
set(nodeGraphModels_MOC_HDRS
enumOptionsModel.h
enumRegistry.h
exampleGraphModel.h
graphModelBase.h
graphEdgeModel.h
graphNodeModel.h
generatorGraphModel.h
nodeWrapper.h
)

set(nodeGraphModel_SRCS graphEdgeModel.cpp graphModel.cpp graphNodeModel.cpp parameterModel.cpp)
set(nodeGraphModel_SRCS enumOptionsModel.cpp enumRegistry.cpp graphEdgeModel.cpp graphModel.cpp graphNodeModel.cpp parameterModel.cpp)

find_package(Qt6 REQUIRED COMPONENTS Core Qml)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
// SPDX-License-Identifier: GPL-3.0-or-later
// Copyright (c) 2025 Team Dissolve and contributors

#include "gui/models/enumOptionsModel.h"
#include "gui/models/nodeGraph/enumOptionsModel.h"
#include "base/enumOptionsBase.h"

// Set source AtomType data

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No prizes for guessing where this code originated! :)

void EnumOptionsModel::setData(const EnumOptionsBase &options)
void EnumOptionsModel::setData(std::shared_ptr<const EnumOptionsBase> options)
{
beginResetModel();

enumOptions_ = options;
endResetModel();
}
Expand All @@ -19,15 +20,15 @@ void EnumOptionsModel::setData(const EnumOptionsBase &options)
int EnumOptionsModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return enumOptions_ ? enumOptions_->get().nOptions() : 0;
return enumOptions_ ? enumOptions_->nOptions() : 0;
}

QVariant EnumOptionsModel::data(const QModelIndex &index, int role) const
{
if (role != Qt::DisplayRole || index.column() != 0)
return {};

return QString::fromStdString(enumOptions_->get().keywordByIndex(index.row()));
return QString::fromStdString(enumOptions_->keywordByIndex(index.row()));
}

Qt::ItemFlags EnumOptionsModel::flags(const QModelIndex &index) const
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ class EnumOptionsModel : public QAbstractListModel

private:
// Source EnumOptions data
OptionalReferenceWrapper<const EnumOptionsBase> enumOptions_;
std::shared_ptr<const EnumOptionsBase> enumOptions_;

public:
// Set source EnumOptions data
void setData(const EnumOptionsBase &options);
void setData(std::shared_ptr<const EnumOptionsBase> options);

/*
* QAbstractItemModel overrides
Expand Down
Loading
Loading