adding slide_object.rs
This commit is contained in:
parent
4a118271c0
commit
2011a176bf
1 changed files with 105 additions and 0 deletions
105
src/rust/slide_object.rs
Normal file
105
src/rust/slide_object.rs
Normal file
|
@ -0,0 +1,105 @@
|
|||
#[cxx_qt::bridge]
|
||||
mod slide_object {
|
||||
// use cxx_qt_lib::QVariantValue;
|
||||
use std::path::Path;
|
||||
|
||||
unsafe extern "C++" {
|
||||
// include!("cxx-qt-lib/qstring.h");
|
||||
// type QString = cxx_qt_lib::QString;
|
||||
// include!("cxx-qt-lib/qurl.h");
|
||||
// type QUrl = cxx_qt_lib::QUrl;
|
||||
include!("cxx-qt-lib/qvariant.h");
|
||||
type QVariant = cxx_qt_lib::QVariant;
|
||||
}
|
||||
|
||||
pub trait Slide {
|
||||
fn set_text(text: String) -> bool;
|
||||
fn set_type(ty: String) -> bool;
|
||||
fn set_audio(audio: String) -> bool;
|
||||
fn set_image_background(ib: String) -> bool;
|
||||
fn set_video_background(vb: String) -> bool;
|
||||
fn set_vtext_align(vta: String) -> bool;
|
||||
fn set_htext_align(hta: String) -> bool;
|
||||
fn set_font(font: String) -> bool;
|
||||
fn set_font_size(font_size: i32) -> bool;
|
||||
fn set_looping(lp: bool) -> bool;
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
#[cxx_qt::qobject]
|
||||
pub struct SlideObject {
|
||||
#[qproperty]
|
||||
slide_index: i32,
|
||||
#[qproperty]
|
||||
slide_size: i32,
|
||||
#[qproperty]
|
||||
is_playing: bool,
|
||||
#[qproperty]
|
||||
looping: bool,
|
||||
#[qproperty]
|
||||
text: QString,
|
||||
#[qproperty]
|
||||
ty: QString,
|
||||
#[qproperty]
|
||||
audio: QString,
|
||||
#[qproperty]
|
||||
image_background: QString,
|
||||
#[qproperty]
|
||||
video_background: QString,
|
||||
#[qproperty]
|
||||
vtext_alignment: QString,
|
||||
#[qproperty]
|
||||
htext_alignment: QString,
|
||||
#[qproperty]
|
||||
font: QString,
|
||||
#[qproperty]
|
||||
font_size: i32,
|
||||
}
|
||||
|
||||
impl Default for SlideObject {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
slide_index: 0,
|
||||
slide_size: 0,
|
||||
is_playing: false,
|
||||
looping: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Slide for SlideObject {
|
||||
fn set_text(&self, text: String) -> bool {
|
||||
text = QString::from(text);
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl qobject::SlideObject {
|
||||
#[qinvokable]
|
||||
pub fn load(self: Pin<&mut Self>, file: i32) -> Vec<String> {
|
||||
println!("{file}");
|
||||
vec!["hi".to_string()]
|
||||
}
|
||||
|
||||
#[qinvokable]
|
||||
pub fn change_slide(self: Pin<&mut Self>, item: QMapPair_QString_QVariant, index: i32) {
|
||||
if item.get("text").to_string() != text {
|
||||
set_text(item.get("text").to_string());
|
||||
};
|
||||
let file_string = file.to_string();
|
||||
let _file_string = file_string.strip_prefix("file://");
|
||||
match _file_string {
|
||||
None => {
|
||||
let _exists = Path::new(&file.to_string()).exists();
|
||||
println!("{file} exists? {_exists}");
|
||||
_exists
|
||||
}
|
||||
Some(file) => {
|
||||
let _exists = Path::new(&file).exists();
|
||||
println!("{file} exists? {_exists}");
|
||||
_exists
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue