| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add mnemonics.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
If the window grows larger, the permissions look pushed to the left.
Same problem with the "Change permissions..." dialog, which is wider
by default due to a long window title.
So, in both cases, let's center the contents.
|
|
|
|
|
|
|
|
|
|
|
| |
The Open With tab makes the whole dialog wider than it needs to be,
making other labs look stretched.
This is because the label has a very high natural width, in spite of
wrapping, which is attributable to the max-width-chars property.
So, halve the value of that propert to give the Properties window a
more fitting natural width.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GNOME Human Interface Guidelines include spacing rules for widgets
laid out in a grid, and spacing from window edges:
https://developer.gnome.org/hig/stable/visual-layout.html.en
For vertical spacing between groups of controls, we have been using
empty label widgets. This doesn't give us the control over the heigh
that we need, so shall use margins instead. In case of the Basic page,
due to the conditionality of the first widget in a group, instead of
propper margins we use an empty box with a set heigh as a spacer.
Also, prefer the GtkBox:spacing property over the padding child prop.
|
|
|
|
|
|
|
|
| |
With the title labels aligned to the right, the icon widget is isolated
at the left side, pushed to the edge and disconnected.
Center the icon horizontally, at the top of the page, for better visual
balance. Also, make it slightly larger, using standard icon size.
|
|
|
|
|
|
| |
the outermost GtkBox is set to use 'view'
style class for a better contrast between
background and the dimmed title lables.
|
|
|
|
|
|
| |
* All the title labels are right Aligned
* All labels appear in a lighter shade - dim-label styling
* ':' symbol has been removed which succeeds the title labels
|
|
|
|
|
|
|
|
|
| |
When the Contents field displays a multi line message
the Contents label needs to be aligned to the first line.
Traditional implementation achieved this by conditionally
appending a newline character, however now that valign
property could be used to achieve the same, by setting it
to "Start"
|
| |
|
|
|
|
|
| |
now, value_field_update() and value_field_update_internal()
are merged into value_filed_update()
|
|
|
|
| |
This is always the same for all labels, so there is no point.
|
|
|
|
| |
They lost their UI-building role to GtkBuilder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The window->change_permission_combos list is populated each time the
"Change Permissions of Enclosed Files" button is clicked.
This list is cleared when the Properties window is destroyed, but
not when the "Change Permissions of Enclosed Files" dialog is. As a
result, if the button is clicked again, new combos are prepended to
the list but the previous (now-dangling) pointers are still there.
If GLib is built without -DG_DISABLE_CAST_CHECKS, then trying to use
this dialog a second time to change permissions of enclosed files will
result in a crash due to the dangling pointers failing a cast check.
But even though production code will not crash this way, leaving
dangling pointers in the list is a bad idea.
Before this dialog was ported to a GtkBuilder UI definition, this bug
was masked by a leak of floating references.
To properly manage the lifecycle of this list, let's clear it whenever
the dialog is destroyed.
|
|
|
|
|
|
| |
Until the previous commit, its single user was the Properties window.
Now it's unused, so we can remove the its source files completely.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The template UI definition has the Open With tab empty. This is
because its contents come from the NautilusMimeApplicationChooser
widget.
But a separate abstraction for choosing appications based on MIME
types isn't required as GTK provides GtkAppChooser.
The other widgets can be neatly tucked away in the UI built using
XML templates to achieve the same results, and at the same time
allowing the open-with page to be customizable in Glade.
Some functions are adapted from mime-application-chooser.c, but
modified to remove any dependency on that class.
|
|
|
|
|
|
| |
This commit only creates outer container of the Open With tab.
Inner widgets are ported in the next commit.
|
|
|
|
|
|
|
|
|
|
|
|
| |
"Change Permissions of Enclosed Files" dialog is now built using XML
UI definition. This is present as a seperate .ui file apart from
nautilus-properties-window.ui because a .ui file file containing a
widget declared as a template cannot have other external widgets to
be built independently from the template.
This .ui file is not produced or editable usingg Glade as it doesn't
recognize "action" type children as found in GtkDialog. This issue is
already reported in https://gitlab.gnome.org/GNOME/glade/-/issues/392
|
|
|
|
|
| |
The dialog the "Change Permissions for Enclosed Files…" button opens is
going to be ported in the next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Combo boxes are empty in the template. Their models and renderers are
still handled programatically, because porting them posed many issues:
- User lists and groups lists are not staic.
- Permissions list stores have a column for permissions enum.
While we can use the enum value symbol in C, we would have to use a
numeric value in Glade, which is going to be quite obscure and hard
to document.
- Porting the models to GtkBuilder UI definition isn’t really improving
hackability / design-ability much because of how Glade handles it.
- The comboBox itself is already defined in the .ui file, so it’s
possible to tweak the design even if the comboBoxes look empty
It would make things more complicated, so it’s more reasonable to let
the code handle this.
|
|
|
|
| |
Also document the code generating label text containing file names.
|
|
|
|
| |
Internal widgets will be populated from template in the next commits.
|
|
|
|
|
|
| |
The skeleton, layouting of grid cells, and styling of widgets
inside the volume usage widget is done in the template. Only the
GtkDrawing areas are drawn using code, in callbacks for ::draw.
|