Skip to content
API Documentation
BastionGuard™
FileItem Class Reference
Inheritance diagram for FileItem:

Public Member Functions

 FileItem (string name)
FileItem. from_disk_path_with_basic_info (string _file_path)
FileItem. from_path_and_type (string _file_path, FileType _file_type)
int compare_to (FileItem b)
void query_file_info ()
void query_file_info_basic ()
Gdk.? Pixbuf get_icon (int icon_size, bool add_transparency, bool add_emblems)

Public Attributes

string file_name = ""
string file_location = ""
string file_path = ""
string file_path_prefix = ""
FileType file_type = FileType.REGULAR
DateTime modified
string permissions = ""
string owner_user = ""
string owner_group = ""
string content_type = ""
string file_status = ""
bool is_selected = false
bool is_symlink = false
string symlink_target = ""
long file_count = 0
long dir_count = 0
GLib.Icon icon

Properties

int64 size [get]

Private Attributes

int64 _size = 0

Detailed Description

Definition at line 37 of file FileItem.vala.

Constructor & Destructor Documentation

◆ FileItem()

FileItem.FileItem ( string name)
inline

Definition at line 63 of file FileItem.vala.

63 {
64 file_name = name;
65 }
string file_name
Definition FileItem.vala:39

References file_name.

Referenced by compare_to(), from_disk_path_with_basic_info(), and from_path_and_type().

Member Function Documentation

◆ compare_to()

int FileItem.compare_to ( FileItem b)
inline

Definition at line 91 of file FileItem.vala.

91 {
92 if (this.file_type != b.file_type) {
93 if (this.file_type == FileType.DIRECTORY) {
94 return -1;
95 }
96 else {
97 return +1;
98 }
99 }
100 else {
101 //if (view.sort_column_desc) {
102 return strcmp(this.file_name.down(), b.file_name.down());
103 //}
104 //else {
105 //return -1 * strcmp(a.file_name.down(), b.file_name.down());
106 //}
107 }
108 }
FileType file_type
Definition FileItem.vala:43

References file_name, file_type, and FileItem().

◆ from_disk_path_with_basic_info()

FileItem. FileItem.from_disk_path_with_basic_info ( string _file_path)
inline

Definition at line 67 of file FileItem.vala.

67 {
68 file_path = _file_path;
69 file_name = file_basename(_file_path);
70 file_location = file_parent(_file_path);
72 }
string file_location
Definition FileItem.vala:40
void query_file_info_basic()
string file_path
Definition FileItem.vala:41
string file_basename(string file_path)
string file_parent(string file_path)

References TeeJee.FileSystem.file_basename(), file_location, file_name, TeeJee.FileSystem.file_parent(), file_path, FileItem(), and query_file_info_basic().

Referenced by RsyncTask.parse_log().

◆ from_path_and_type()

FileItem. FileItem.from_path_and_type ( string _file_path,
FileType _file_type )
inline

Definition at line 74 of file FileItem.vala.

74 {
75 file_path = _file_path;
76 file_name = file_basename(_file_path);
77 file_location = file_parent(_file_path);
78 file_type = _file_type;
79 }

References TeeJee.FileSystem.file_basename(), file_location, file_name, TeeJee.FileSystem.file_parent(), file_path, file_type, and FileItem().

◆ get_icon()

Gdk.? Pixbuf FileItem.get_icon ( int icon_size,
bool add_transparency,
bool add_emblems )
inline

Definition at line 227 of file FileItem.vala.

227 {
228
229 Gdk.Pixbuf? pixbuf = null;
230
231 if (icon != null) {
232 pixbuf = IconManager.lookup_gicon(icon, icon_size);
233 }
234
235 if (pixbuf == null){
236 if (file_type == FileType.DIRECTORY) {
237 pixbuf = IconManager.lookup("folder", icon_size, false);
238 }
239 else{
240 pixbuf = IconManager.lookup("text-x-preview", icon_size, false);
241 }
242 }
243
244 return pixbuf;
245 }
GLib.Icon icon
Definition FileItem.vala:59

References file_type, icon, IconManager.lookup(), and IconManager.lookup_gicon().

Referenced by RsyncLogBox.create_log_row().

◆ query_file_info()

void FileItem.query_file_info ( )
inline

Definition at line 112 of file FileItem.vala.

112 {
113
114 try {
115 FileInfo info;
116 File file = File.parse_name (file_path);
117
118 if (file.query_exists()) {
119
120 // get type without following symlinks
121
122 info = file.query_info("%s,%s,%s".printf(
123 FileAttribute.STANDARD_TYPE,
124 FileAttribute.STANDARD_ICON,
125 FileAttribute.STANDARD_SYMLINK_TARGET),
126 FileQueryInfoFlags.NOFOLLOW_SYMLINKS);
127
128 var item_file_type = info.get_file_type();
129
130 this.icon = info.get_icon();
131
132 if (item_file_type == FileType.SYMBOLIC_LINK) {
133 //this.icon = GLib.Icon.new_for_string("emblem-symbolic-link");
134 this.is_symlink = true;
135 this.symlink_target = info.get_symlink_target();
136 }
137 else {
138
139 this.is_symlink = false;
140 this.symlink_target = "";
141
142 if (item_file_type == FileType.REGULAR){
143 //log_msg(file_basename(file_path) + " (gicon): " + icon.to_string());
144
145 /*var themed_icon = (GLib.ThemedIcon) icon;
146
147 string txt = "-> ";
148 foreach(var name in themed_icon.names){
149 txt += ", " + name;
150 }
151 log_msg(txt);*/
152 }
153 }
154
155 // get file info - follow symlinks
156
157 info = file.query_info("%s,%s,%s,%s,%s,%s,%s,%s".printf(
158 FileAttribute.STANDARD_TYPE,
159 FileAttribute.STANDARD_SIZE,
160 FileAttribute.STANDARD_ICON,
161 FileAttribute.STANDARD_CONTENT_TYPE,
162 FileAttribute.TIME_MODIFIED,
163 FileAttribute.OWNER_USER,
164 FileAttribute.OWNER_GROUP,
165 FileAttribute.FILESYSTEM_FREE
166 ), 0);
167
168 if (this.is_symlink){
169 // get icon for the resolved file
170 this.icon = info.get_icon();
171 }
172
173 // file type resolved
174 this.file_type = info.get_file_type();
175
176 // content type
177 this.content_type = info.get_content_type();
178
179 // size
180 if (!this.is_symlink && (this.file_type == FileType.REGULAR)) {
181 this._size = info.get_size();
182 }
183
184 // modified
185 this.modified = info.get_modification_date_time().to_local();
186
187 // owner_user
188 this.owner_user = info.get_attribute_string(FileAttribute.OWNER_USER);
189
190 // owner_group
191 this.owner_group = info.get_attribute_string(FileAttribute.OWNER_GROUP);
192
193 }
194 }
195 catch (Error e) {
196 log_error (e.message);
197 }
198 }
bool is_symlink
Definition FileItem.vala:52
void log_error(string message, bool highlight=false, bool is_warning=false)

References Error, file_path, and TeeJee.Logging.log_error().

◆ query_file_info_basic()

void FileItem.query_file_info_basic ( )
inline

Definition at line 200 of file FileItem.vala.

200 {
201
202 try {
203 FileInfo info;
204 File file = File.parse_name(file_path);
205
206 if (file.query_exists()) {
207
208 // get type and icon -- follow symlinks
209
210 info = file.query_info("%s,%s".printf(
211 FileAttribute.STANDARD_TYPE,
212 FileAttribute.STANDARD_ICON
213 ), 0);
214
215 this.icon = info.get_icon();
216
217 this.file_type = info.get_file_type();
218 }
219 }
220 catch (Error e) {
221 log_error (e.message);
222 }
223 }

References Error, file_path, and TeeJee.Logging.log_error().

Referenced by from_disk_path_with_basic_info().

Member Data Documentation

◆ _size

int64 FileItem._size = 0
private

Definition at line 57 of file FileItem.vala.

◆ content_type

string FileItem.content_type = ""

Definition at line 48 of file FileItem.vala.

◆ dir_count

long FileItem.dir_count = 0

Definition at line 56 of file FileItem.vala.

◆ file_count

long FileItem.file_count = 0

Definition at line 55 of file FileItem.vala.

◆ file_location

string FileItem.file_location = ""

Definition at line 40 of file FileItem.vala.

Referenced by from_disk_path_with_basic_info(), and from_path_and_type().

◆ file_name

string FileItem.file_name = ""

◆ file_path

string FileItem.file_path = ""

◆ file_path_prefix

string FileItem.file_path_prefix = ""

Definition at line 42 of file FileItem.vala.

◆ file_status

string FileItem.file_status = ""

Definition at line 49 of file FileItem.vala.

Referenced by RsyncLogBox.display_status(), and RsyncLogBox.item_matches().

◆ file_type

FileType FileItem.file_type = FileType.REGULAR

Definition at line 43 of file FileItem.vala.

Referenced by compare_to(), from_path_and_type(), and get_icon().

◆ icon

GLib.Icon FileItem.icon

Definition at line 59 of file FileItem.vala.

Referenced by get_icon().

◆ is_selected

bool FileItem.is_selected = false

Definition at line 51 of file FileItem.vala.

◆ is_symlink

bool FileItem.is_symlink = false

Definition at line 52 of file FileItem.vala.

◆ modified

DateTime FileItem.modified

Definition at line 44 of file FileItem.vala.

◆ owner_group

string FileItem.owner_group = ""

Definition at line 47 of file FileItem.vala.

◆ owner_user

string FileItem.owner_user = ""

Definition at line 46 of file FileItem.vala.

◆ permissions

string FileItem.permissions = ""

Definition at line 45 of file FileItem.vala.

◆ symlink_target

string FileItem.symlink_target = ""

Definition at line 53 of file FileItem.vala.

Property Documentation

◆ size

int64 FileItem.size
get

Definition at line 83 of file FileItem.vala.

83 {
84 get{
85 return _size;
86 }
87 }
int64 _size
Definition FileItem.vala:57

The documentation for this class was generated from the following file:
  • BastionGuard/thirdparty/bastionguard-backup/src/Utility/FileItem.vala