rust side builds but having trouble linking in main.cpp

This commit is contained in:
Chris Cochrun 2025-03-12 09:35:36 -05:00
parent fbcb6afc7a
commit 92f2b18a20
14 changed files with 377 additions and 140 deletions

View file

@ -2,6 +2,7 @@
mod service_item_model {
unsafe extern "C++" {
include!(< QAbstractListModel >);
type QAbstractListModel;
include!("cxx-qt-lib/qhash.h");
type QHash_i32_QByteArray =
cxx_qt_lib::QHash<cxx_qt_lib::QHashPair_i32_QByteArray>;
@ -45,7 +46,7 @@ mod service_item_model {
unsafe extern "RustQt" {
#[qobject]
#[base = "QAbstractListModel"]
#[base = QAbstractListModel]
#[qml_element]
#[qproperty(i32, count)]
#[qproperty(f32, save_progress)]
@ -54,6 +55,7 @@ mod service_item_model {
#[inherit]
#[qsignal]
#[cxx_name = "dataChanged"]
fn data_changed(
self: Pin<&mut ServiceItemModel>,
top_left: &QModelIndex,
@ -182,17 +184,18 @@ mod service_item_model {
#[qinvokable]
fn save(self: Pin<&mut ServiceItemModel>, file: QUrl)
-> bool;
-> bool;
#[qinvokable]
fn load(self: Pin<&mut ServiceItemModel>, file: QUrl)
-> bool;
-> bool;
}
impl cxx_qt::Threading for ServiceItemModel {}
unsafe extern "RustQt" {
#[inherit]
#[cxx_name = "beginInsertRows"]
unsafe fn begin_insert_rows(
self: Pin<&mut ServiceItemModel>,
parent: &QModelIndex,
@ -201,9 +204,11 @@ mod service_item_model {
);
#[inherit]
#[cxx_name = "endInsertRows"]
unsafe fn end_insert_rows(self: Pin<&mut ServiceItemModel>);
#[inherit]
#[cxx_name = "beginRemoveRows"]
unsafe fn begin_remove_rows(
self: Pin<&mut ServiceItemModel>,
parent: &QModelIndex,
@ -212,6 +217,7 @@ mod service_item_model {
);
#[inherit]
#[cxx_name = "beginMoveRows"]
unsafe fn begin_move_rows(
self: Pin<&mut ServiceItemModel>,
source_parent: &QModelIndex,
@ -222,18 +228,23 @@ mod service_item_model {
) -> bool;
#[inherit]
#[cxx_name = "endMoveRows"]
unsafe fn end_move_rows(self: Pin<&mut ServiceItemModel>);
#[inherit]
#[cxx_name = "endRemoveRows"]
unsafe fn end_remove_rows(self: Pin<&mut ServiceItemModel>);
#[inherit]
#[cxx_name = "beginResetModel"]
unsafe fn begin_reset_model(self: Pin<&mut ServiceItemModel>);
#[inherit]
#[cxx_name = "endResetModel"]
unsafe fn end_reset_model(self: Pin<&mut ServiceItemModel>);
#[inherit]
#[cxx_name = "canFetchMore"]
fn can_fetch_more(
self: &ServiceItemModel,
parent: &QModelIndex,
@ -257,12 +268,14 @@ mod service_item_model {
#[qinvokable]
#[cxx_override]
#[cxx_name = "roleNames"]
fn role_names(
self: &ServiceItemModel,
) -> QHash_i32_QByteArray;
#[qinvokable]
#[cxx_override]
#[cxx_name = "rowCount"]
fn row_count(
self: &ServiceItemModel,
_parent: &QModelIndex,
@ -277,7 +290,7 @@ use self::service_item_model::{
};
use crate::service_item_model::service_item_model::QList_QString;
use crate::slide_types::SlideType;
use crate::songs::song_model::{get_song, Song};
use crate::songs::song_model::{Song, get_song};
use crate::{image_model, presentation_model, video_model};
use cxx_qt::{CxxQtType, Threading};
use cxx_qt_lib::{
@ -285,7 +298,7 @@ use cxx_qt_lib::{
};
use dirs;
// use lumina_core::service_items::ServiceItem as SI;
use serde_json::{json, Value};
use serde_json::{Value, json};
use std::iter;
use std::path::{Path, PathBuf};
use std::pin::Pin;
@ -1295,7 +1308,9 @@ impl service_item_model::ServiceItemModel {
..Default::default()
};
self.as_mut().add_service_item(&service_item);
error!("Loaded service item with generic type since it was an unknown type.");
error!(
"Loaded service item with generic type since it was an unknown type."
);
// // files implement the Read trait
}
}