Compare commits
8 Commits
fa128ca284
...
f785463540
Author | SHA1 | Date |
---|---|---|
Nefo Fortressia | f785463540 | |
Nefo Fortressia | e0d353a10b | |
Nefo Fortressia | b53915afa0 | |
Nefo Fortressia | 9b99932fdd | |
Nefo Fortressia | 8e31be7e47 | |
Nefo Fortressia | c8fd305d90 | |
Nefo Fortressia | 10ae0cf783 | |
Nefo Fortressia | 9e06e96fed |
|
@ -1 +0,0 @@
|
||||||
"clippy::style" = "deny"
|
|
|
@ -21,47 +21,47 @@ impl EchidnaCoreEditor {
|
||||||
// Without cloning it, for some reasons the Rust compiler complains about &this.to_imp().sourceview not being IsA<sourceview::View>
|
// Without cloning it, for some reasons the Rust compiler complains about &this.to_imp().sourceview not being IsA<sourceview::View>
|
||||||
this_imp.minimap.set_view(&this_imp.sourceview.clone());
|
this_imp.minimap.set_view(&this_imp.sourceview.clone());
|
||||||
|
|
||||||
if file.is_some() {
|
match file {
|
||||||
let file = file.unwrap();
|
Some(file) => {
|
||||||
let file_location = file
|
let file_location = file
|
||||||
.location()
|
.location()
|
||||||
.expect("file is required to have a location");
|
.expect("file is required to have a location");
|
||||||
|
|
||||||
this.set_property("file", &file)
|
this.set_property("file", &file)
|
||||||
.expect("Could not set the 'file' property of EchidnaCoreEditor");
|
.expect("Could not set the 'file' property of EchidnaCoreEditor");
|
||||||
|
|
||||||
let cancellable = gio::Cancellable::new();
|
let cancellable = gio::Cancellable::new();
|
||||||
let filepath = file_location.path().expect("No filepath");
|
let filepath = file_location.path().expect("No filepath");
|
||||||
let info = file_location
|
let info = file_location
|
||||||
.query_info("*", gio::FileQueryInfoFlags::NONE, Some(&cancellable))
|
.query_info("*", gio::FileQueryInfoFlags::NONE, Some(&cancellable))
|
||||||
.expect("Could not query the info for file");
|
.expect("Could not query the info for file");
|
||||||
|
|
||||||
let content_type = info
|
let content_type = info
|
||||||
.content_type()
|
.content_type()
|
||||||
.expect(format!("It does not seem like {:?} has a type", filepath).as_str());
|
.expect(format!("It does not seem like {:?} has a type", filepath).as_str());
|
||||||
{
|
{
|
||||||
println!(
|
println!(
|
||||||
"Opened {} and found its content type is {}.",
|
"Opened {} and found its content type is {}.",
|
||||||
"file",
|
"file",
|
||||||
content_type.to_string()
|
content_type.to_string()
|
||||||
);
|
);
|
||||||
let buffer = this_imp.sourceview.buffer().downcast::<Buffer>().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA<sourceview::Buffer>.");
|
let buffer = this_imp.sourceview.buffer().downcast::<Buffer>().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA<sourceview::Buffer>.");
|
||||||
let language_manager = LanguageManager::new();
|
let language_manager = LanguageManager::new();
|
||||||
let language = language_manager.guess_language(
|
let language = language_manager.guess_language(
|
||||||
Some(&info.name().to_str().expect(
|
Some(&info.name().to_str().expect(
|
||||||
"Could not open the file because its name is not supported by Unicode.",
|
"Could not open the file because its name is not supported by Unicode.",
|
||||||
)),
|
)),
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
match language {
|
match language {
|
||||||
Some(lang) => buffer.set_language(Some(&lang)),
|
Some(lang) => buffer.set_language(Some(&lang)),
|
||||||
None => {}
|
None => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
let file_loader: FileLoader = FileLoader::new(&buffer, &file);
|
let file_loader: FileLoader = FileLoader::new(&buffer, &file);
|
||||||
|
|
||||||
file_loader.load_async(
|
file_loader.load_async(
|
||||||
glib::Priority::default(),
|
glib::Priority::default(),
|
||||||
Some(&cancellable),
|
Some(&cancellable),
|
||||||
|_, _| {},
|
|_, _| {},
|
||||||
|
@ -71,7 +71,9 @@ impl EchidnaCoreEditor {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
None => {}
|
||||||
}
|
}
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,3 +15,9 @@ impl EchidnaSidebar {
|
||||||
glib::Object::new(&[]).expect("Failed to create 'EchidnaSidebar' component.")
|
glib::Object::new(&[]).expect("Failed to create 'EchidnaSidebar' component.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for EchidnaSidebar {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -36,9 +36,9 @@ impl BuildableImpl for TabLabel {
|
||||||
fn add_child(
|
fn add_child(
|
||||||
&self,
|
&self,
|
||||||
buildable: &Self::Type,
|
buildable: &Self::Type,
|
||||||
builder: >k::Builder,
|
_builder: >k::Builder,
|
||||||
child: &glib::Object,
|
child: &glib::Object,
|
||||||
type_: Option<&str>,
|
_type_: Option<&str>,
|
||||||
) {
|
) {
|
||||||
buildable.prepend(child.downcast_ref::<gtk::Widget>().unwrap());
|
buildable.prepend(child.downcast_ref::<gtk::Widget>().unwrap());
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,9 @@ impl TabLabel {
|
||||||
pub fn new<U: IsA<gtk::Widget>>(tab_label: Option<&U>) -> Self {
|
pub fn new<U: IsA<gtk::Widget>>(tab_label: Option<&U>) -> Self {
|
||||||
let this: Self = glib::Object::new(&[]).expect("Failed to create 'TabLabel' component.");
|
let this: Self = glib::Object::new(&[]).expect("Failed to create 'TabLabel' component.");
|
||||||
|
|
||||||
if tab_label.is_some() {
|
match tab_label {
|
||||||
this.prepend(tab_label.unwrap());
|
Some(tab_label) => this.prepend(tab_label),
|
||||||
|
None => {}
|
||||||
}
|
}
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ impl FileImplementedEditor for super::EchidnaWindow {
|
||||||
notebook.prepend_closable_page(
|
notebook.prepend_closable_page(
|
||||||
&editor_page,
|
&editor_page,
|
||||||
Some(&Label::new(Some(
|
Some(&Label::new(Some(
|
||||||
&file_location
|
file_location
|
||||||
.path()
|
.path()
|
||||||
.expect("The file's path is missing")
|
.expect("The file's path is missing")
|
||||||
.file_name()
|
.file_name()
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
use crate::components::tab_label::TabLabel;
|
use crate::components::tab_label::TabLabel;
|
||||||
use glib::IsA;
|
use glib::IsA;
|
||||||
use gtk::{prelude::*, Box, Button, Widget};
|
use gtk::{prelude::*, Widget};
|
||||||
|
|
||||||
pub trait ClosableTabImplementedNotebook {
|
pub trait ClosableTabImplementedNotebook {
|
||||||
fn prepend_closable_page<T: IsA<Widget>, U: IsA<Widget>>(
|
fn prepend_closable_page<T: IsA<Widget>, U: IsA<Widget>>(
|
||||||
|
|
Loading…
Reference in New Issue