Compare commits

..

2 Commits

Author SHA1 Message Date
27f9a8e10b refactor: pre-release build 2024-08-19 03:14:39 -07:00
229f525653 some changes + fix grammar mistakes 2024-08-18 13:41:54 -07:00
19 changed files with 218 additions and 15 deletions

BIN
.vs/AIT/v17/.wsuo Normal file

Binary file not shown.

View File

@@ -0,0 +1,54 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\msys64\\home\\doryan\\AIT\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\msys64\\home\\doryan\\AIT\\src\\main.rs||{3B902123-F8A7-4915-9F01-361F908088D0}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\main.rs||{3B902123-F8A7-4915-9F01-361F908088D0}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\msys64\\home\\doryan\\AIT\\.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": ".gitignore",
"DocumentMoniker": "C:\\msys64\\home\\doryan\\AIT\\.gitignore",
"RelativeDocumentMoniker": ".gitignore",
"ToolTip": "C:\\msys64\\home\\doryan\\AIT\\.gitignore",
"RelativeToolTip": ".gitignore",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVDhPjVNLTgJBEG1lwpoFB3GNK9fieA48hD8iwT/ihwgSDAIHgAGXXsEV18CNzL/LquqZdsYM6kteXqcy3fWqpmpNRBgOhyABBEgpAFVKPIMUcYzUyOU\u002BXM/b2qtU3vkSfRjjZTCAMAw1A2LwzdFoBPP5HNqdzuL27n4juibWI\u002BUshBA1DIkhEx9iEorFotgslQqGYbxxAGFEqt1MxmPWJLbLZdZ\u002Bv89q5PMFPiTR6z2zdaxR0fXA0XTBcVywkb4fwHXjRteecIDNQ7UmExVYAdPcxYaqclN46na5WenMKjtlVnTYwcXlVYaDqImW9beD5N/TeGy32QHXm6hZ03ZgiSQHp2fnWQ4oBmJqWSqwAqZpZjt4aLXAD4J0VqyZsmoubfB8H2r1eoaD6NXZ9HcHO\u002BSA3f4AjifXl8rItOETM8ckB9WTWpYD9RdeZ1PWVWAHWXPQaDb59f/w8LiqHeh1pvGkCaP6qB8yXusoxmuNZ7XmII4O9vGuEF86osuDYRkpYQAAAABJRU5ErkJggg==",
"WhenOpened": "2024-08-18T21:59:06.655Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "main.rs",
"DocumentMoniker": "C:\\msys64\\home\\doryan\\AIT\\src\\main.rs",
"RelativeDocumentMoniker": "src\\main.rs",
"ToolTip": "C:\\msys64\\home\\doryan\\AIT\\src\\main.rs",
"RelativeToolTip": "src\\main.rs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
"WhenOpened": "2024-08-18T21:59:04.875Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -0,0 +1,53 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\msys64\\home\\doryan\\AIT\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\msys64\\home\\doryan\\AIT\\src\\main.rs||{3B902123-F8A7-4915-9F01-361F908088D0}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\main.rs||{3B902123-F8A7-4915-9F01-361F908088D0}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\msys64\\home\\doryan\\AIT\\.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": ".gitignore",
"DocumentMoniker": "C:\\msys64\\home\\doryan\\AIT\\.gitignore",
"RelativeDocumentMoniker": ".gitignore",
"ToolTip": "C:\\msys64\\home\\doryan\\AIT\\.gitignore",
"RelativeToolTip": ".gitignore",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVDhPjVNLTgJBEG1lwpoFB3GNK9fieA48hD8iwT/ihwgSDAIHgAGXXsEV18CNzL/LquqZdsYM6kteXqcy3fWqpmpNRBgOhyABBEgpAFVKPIMUcYzUyOU\u002BXM/b2qtU3vkSfRjjZTCAMAw1A2LwzdFoBPP5HNqdzuL27n4juibWI\u002BUshBA1DIkhEx9iEorFotgslQqGYbxxAGFEqt1MxmPWJLbLZdZ\u002Bv89q5PMFPiTR6z2zdaxR0fXA0XTBcVywkb4fwHXjRteecIDNQ7UmExVYAdPcxYaqclN46na5WenMKjtlVnTYwcXlVYaDqImW9beD5N/TeGy32QHXm6hZ03ZgiSQHp2fnWQ4oBmJqWSqwAqZpZjt4aLXAD4J0VqyZsmoubfB8H2r1eoaD6NXZ9HcHO\u002BSA3f4AjifXl8rItOETM8ckB9WTWpYD9RdeZ1PWVWAHWXPQaDb59f/w8LiqHeh1pvGkCaP6qB8yXusoxmuNZ7XmII4O9vGuEF86osuDYRkpYQAAAABJRU5ErkJggg==",
"WhenOpened": "2024-08-18T21:59:06.655Z"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "main.rs",
"DocumentMoniker": "C:\\msys64\\home\\doryan\\AIT\\src\\main.rs",
"RelativeDocumentMoniker": "src\\main.rs",
"ToolTip": "C:\\msys64\\home\\doryan\\AIT\\src\\main.rs",
"RelativeToolTip": "src\\main.rs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
"WhenOpened": "2024-08-18T21:59:04.875Z",
"EditorCaption": ""
}
]
}
]
}
]
}

3
.vs/ProjectSettings.json Normal file
View File

@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

View File

@@ -0,0 +1,7 @@
{
"ExpandedNodes": [
"",
"\\src"
],
"PreviewInSolutionExplorer": false
}

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

45
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,45 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'AIT'",
"cargo": {
"args": [
"build",
"--bin=AIT",
"--package=AIT"
],
"filter": {
"name": "AIT",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'AIT'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=AIT",
"--package=AIT"
],
"filter": {
"name": "AIT",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}

21
Cargo.lock generated
View File

@@ -11,6 +11,7 @@ dependencies = [
"gtk4",
"libadwaita",
"tokio",
"winres",
]
[[package]]
@@ -712,7 +713,7 @@ dependencies = [
"cfg-expr",
"heck",
"pkg-config",
"toml",
"toml 0.8.19",
"version-compare",
]
@@ -750,6 +751,15 @@ dependencies = [
"syn",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "toml"
version = "0.8.19"
@@ -898,6 +908,15 @@ dependencies = [
"memchr",
]
[[package]]
name = "winres"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
dependencies = [
"toml 0.5.11",
]
[[package]]
name = "wyz"
version = "0.5.1"

View File

@@ -6,8 +6,11 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
adw = { version = "0.7.0", package = "libadwaita", features = ["v1_4"] }
adw = { version = "0.7.0", package = "libadwaita"}
bitvec = "1.0.1"
gio = { version = "0.20.0", features = ["v2_74"] }
gtk = { version = "0.9.0", package = "gtk4", features = ["v4_12"] }
tokio = { version = "1.39.2", features = ["rt", "time", "rt-multi-thread", "macros", "sync"] }
[build-dependencies]
winres = "0.1"

9
build.rs Normal file
View File

@@ -0,0 +1,9 @@
extern crate winres;
fn main() {
if cfg!(target_os = "windows") {
let mut res = winres::WindowsResource::new();
res.set_icon("./src/view/resources/icon.ico"); // Replace this with the filename of your .ico file.
res.compile().unwrap();
}
}

View File

@@ -22,7 +22,7 @@ pub fn open_about_dialogue(_action: &SimpleAction, _var: Option<&Variant>) {
AboutDialog::builder()
.authors(vec!["Сагиев А.Д.", "Ефимов И.П."])
.version("1.0-beta")
.program_name("Прикладная теория информаций")
.program_name("Прикладная теория информации")
.license_type(License::Apache20)
.logo(&logo)
.website("https://gitea.doryan04.ru/doryan/AIT")
@@ -57,8 +57,8 @@ pub fn open_help_dialogue(_action: &SimpleAction, _var: Option<&Variant>) {
let custom_header = HeaderBar::new();
Window::builder()
.width_request(400)
.height_request(300)
.width_request(800)
.height_request(600)
.name("help")
.title("Помощь")
.titlebar(&custom_header)

View File

@@ -3,11 +3,11 @@
В данной лабораторной работе используется код Хэмминга 7-4, другими словами, код, который нужно закодировать, имеет длину в 4 бита, в то же время выходной код будет иметь 7 бит.
Программа умеет как закодировать ключевые слова, так и их проверять.
Программа умеет как кодировать ключевые слова, так и проверять их.
<b> Режим кодирования </b>
В этом режиме мы вводим код, в котором каждое "слово" имеет 4 бита. Это должно выглядеть следующим образом:
В этом режиме мы вводим код, в котором каждое "слово" имеет 4 бита. Это может выглядеть следующим образом:
<tt>1010 1100 1110 0000</tt>
@@ -15,13 +15,13 @@
<tt>1100110 0111100 0101010 0000000</tt>
В противном случае вылезет информационный блок с предупреждением: "Проверьте корректность кода".
В противном случае появится информационный блок с предупреждением: "Проверьте корректность кода".
<b> Режим проверки </b>
Данный режим проверяет код на ошибки. Проверка в лучшем случае пишет: "Все коды корректны", в противном случае, построчно показывает, в каких кодах есть ошибка.
Данный режим проверяет код на ошибки. Проверка в лучшем случае пишет: "Все коды корректны". При ошибочно введённом коде, программа построчно отобразит в каких кодах есть ошибка.
Пример ввода возьмём из предыдущего примера:
Пример ввода аналогичен предыдущему:
<tt>1100110 0111100 0101010 0000000</tt>
@@ -44,8 +44,8 @@
<span size="x-large"><b> Затухание сигнала </b></span>
Лабораторная работа подразумевает рассчитать для 19 значений частоты реактивное сопротивление конденсатора X<sub>c</sub>, напряжения сигнала на стороне приёмника информации V<sub>п</sub> и коэффициент затухания сигнала ζ.
Лабораторная работа подразумевает рассчитать для каждого из девятнадцати значений частоты реактивного сопротивление конденсатора X<sub>c</sub>, напряжение сигнала на стороне приёмника информации V<sub>п</sub> и коэффициент затухания сигнала ζ.
Значения вводятся согласно исходным данным для расчёта затухания сигнала. Значения можно вводить как с ",", так и ".".
Значения вводятся согласно исходным данным для расчёта затухания сигнала. Значения можно вводить как с ",", так и с ".".
При вводе одних и тех же данных без изменений будет вылезать предупреждение и операция расчёта не будет выполнена. Можно не менять данные в случае частоты, чтобы обновить данные расчёта в соответствии с новыми (К примеру, в случае длины провода, или сопротивления провода).
При вводе одних и тех же данных без изменений, будет показано предупреждение и операция расчёта не будет выполнена. Можно не менять данные в случае частоты, чтобы обновить данные расчёта в соответствии с новыми (К примеру, в случае длины провода, или сопротивления провода).

BIN
src/view/resources/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
src/view/resources/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 B

View File

@@ -1,3 +1,6 @@
label{
font-size: 11pt;
}
textview {
border-radius: 7px;
padding: 7px 8px;

View File

@@ -1,7 +1,10 @@
label{
font-size: 11pt;
}
textview {
border-radius: 7px;
padding: 7px 8px;
background: rgba(141, 141, 141, 0.5);
background: rgba(141, 141, 141, 0.18);
outline-offset: 2px;
outline: 2px solid #81ABDF00;
transition-duration: .15s;

View File

@@ -22,6 +22,10 @@ pub fn ui(application: &adw::Application) {
let default_settings = Settings::default();
if let Some(settings) = default_settings {
{
#[cfg(target_os = "windows")]
settings.set_gtk_font_name(Some("Segoe UI 9"));
}
settings.connect_gtk_application_prefer_dark_theme_notify(load_css);
settings.connect_gtk_theme_name_notify(load_css);
load_css(&settings);
@@ -82,7 +86,7 @@ pub fn ui(application: &adw::Application) {
.hexpand(true)
.vexpand(true)
.use_markup(true)
.label("<b>Комплексная программа для лаб. работ</b>")
.label("<span size=\"larger\"><b>Комплексная программа для лаб. работ</b></span>")
.build(),
);
title_bar.append(menu_button.get_button());