@@ -91,9 +91,14 @@ func activateCallback(app *gtk.Application, config *common.Config, configPath st
9191
9292 header , _ := gtk .HeaderBarNew ()
9393 header .SetShowCloseButton (true )
94- header .SetTitle ("onedriver " )
94+ header .SetTitle ("OneDriver " )
9595 window .SetTitlebar (header )
9696
97+ err := window .SetIconFromFile ("/usr/share/icons/onedriver/onedriver.svg" )
98+ if err != nil {
99+ log .Error ().Err (err ).Msg ("Could not find logo." )
100+ }
101+
97102 listbox , _ := gtk .ListBoxNew ()
98103 window .Add (listbox )
99104
@@ -148,7 +153,7 @@ func activateCallback(app *gtk.Application, config *common.Config, configPath st
148153 settings , _ := gtk .ModelButtonNew ()
149154 settings .SetLabel ("Settings" )
150155 settings .Connect ("clicked" , func (button * gtk.ModelButton ) {
151- newSettingsWindow (config , configPath )
156+ newSettingsDialog (config , configPath , window )
152157 })
153158 popoverBox .PackStart (settings , false , true , 0 )
154159
@@ -157,6 +162,7 @@ func activateCallback(app *gtk.Application, config *common.Config, configPath st
157162 about .SetLabel ("About" )
158163 about .Connect ("clicked" , func (button * gtk.ModelButton ) {
159164 aboutDialog , _ := gtk .AboutDialogNew ()
165+ aboutDialog .SetProgramName ("OneDriver Launcher" )
160166 aboutDialog .SetAuthors ([]string {"Jeff Stafford" , "https://github.com/jstaf" })
161167 aboutDialog .SetWebsite ("https://github.com/jstaf/onedriver" )
162168 aboutDialog .SetWebsiteLabel ("github.com/jstaf/onedriver" )
@@ -168,6 +174,8 @@ func activateCallback(app *gtk.Application, config *common.Config, configPath st
168174 } else {
169175 aboutDialog .SetLogo (logo .GetPixbuf ())
170176 }
177+ aboutDialog .SetTransientFor (window )
178+ aboutDialog .Connect ("response" , aboutDialog .Destroy )
171179 aboutDialog .Run ()
172180 })
173181 popoverBox .PackStart (about , false , true , 0 )
@@ -317,7 +325,7 @@ func newMountRow(config common.Config, mount string) (*gtk.ListBoxRow, *gtk.Swit
317325 }
318326 // rename the mount by rewriting the .xdg-volume-info file
319327 renameMountpointEntry , _ := gtk .EntryNew ()
320- renameMountpointEntry .SetTooltipText ("Change the label that your file browser uses for this drive" )
328+ renameMountpointEntry .SetTooltipText ("The label that your file browser uses for this drive" )
321329 renameMountpointEntry .SetText (driveName )
322330 // runs on enter
323331 renameMountpointEntry .Connect ("activate" , func (entry * gtk.Entry ) {
@@ -374,7 +382,7 @@ func newMountRow(config common.Config, mount string) (*gtk.ListBoxRow, *gtk.Swit
374382 popoverBox .Add (separator )
375383
376384 // create a button to enable/disable the mountpoint
377- unitEnabledBtn , _ := gtk .CheckButtonNewWithLabel (" Start drive on login " )
385+ unitEnabledBtn , _ := gtk .CheckButtonNewWithLabel ("Start Drive on Login " )
378386 unitEnabledBtn .SetTooltipText ("Start this drive automatically when you login" )
379387 enabled , err := systemd .UnitIsEnabled (unitName )
380388 if err == nil {
@@ -401,7 +409,7 @@ func newMountRow(config common.Config, mount string) (*gtk.ListBoxRow, *gtk.Swit
401409
402410 // button to delete the mount
403411 deleteMountpointBtn , _ := gtk .ModelButtonNew ()
404- deleteMountpointBtn .SetLabel ("Remove drive " )
412+ deleteMountpointBtn .SetLabel ("Remove Drive " )
405413 deleteMountpointBtn .SetTooltipText ("Remove OneDrive account from local computer" )
406414 deleteMountpointBtn .Connect ("clicked" , func (button * gtk.ModelButton ) {
407415 log .Trace ().
@@ -444,16 +452,16 @@ func newMountRow(config common.Config, mount string) (*gtk.ListBoxRow, *gtk.Swit
444452 return row , mountToggle
445453}
446454
447- func newSettingsWindow (config * common.Config , configPath string ) {
455+ func newSettingsDialog (config * common.Config , configPath string , parent gtk. IWindow ) {
448456 const offset = 15
449457
450- settingsWindow , _ := gtk .WindowNew ( gtk . WINDOW_TOPLEVEL )
451- settingsWindow .SetResizable (false )
452- settingsWindow .SetTitle ("Settings" )
458+ settingsDialog , _ := gtk .DialogNew ( )
459+ settingsDialog .SetResizable (false )
460+ settingsDialog .SetTitle ("Settings" )
453461
454462 // log level settings
455463 settingsRowLog , _ := gtk .BoxNew (gtk .ORIENTATION_HORIZONTAL , offset )
456- logLevelLabel , _ := gtk .LabelNew ("Log level " )
464+ logLevelLabel , _ := gtk .LabelNew ("Log Level " )
457465 settingsRowLog .PackStart (logLevelLabel , false , false , 0 )
458466
459467 logLevelSelector , _ := gtk .ComboBoxTextNew ()
@@ -475,7 +483,7 @@ func newSettingsWindow(config *common.Config, configPath string) {
475483
476484 // cache dir settings
477485 settingsRowCacheDir , _ := gtk .BoxNew (gtk .ORIENTATION_HORIZONTAL , offset )
478- cacheDirLabel , _ := gtk .LabelNew ("Cache directory " )
486+ cacheDirLabel , _ := gtk .LabelNew ("Cache Directory " )
479487 settingsRowCacheDir .PackStart (cacheDirLabel , false , false , 0 )
480488
481489 cacheDirPicker , _ := gtk .ButtonNew ()
@@ -485,7 +493,7 @@ func newSettingsWindow(config *common.Config, configPath string) {
485493 oldPath , _ := button .GetLabel ()
486494 oldPath = ui .UnescapeHome (oldPath )
487495 path := ui .DirChooser ("Select an empty directory to use for storage" )
488- if ! ui .CancelDialog (settingsWindow , "Remount all drives?" , "" ) {
496+ if ! ui .CancelDialog (settingsDialog , "Remount all drives?" , "" ) {
489497 return
490498 }
491499 log .Warn ().
@@ -508,7 +516,7 @@ func newSettingsWindow(config *common.Config, configPath string) {
508516 err := systemd .UnitSetActive (unitName , false )
509517 if err != nil {
510518 ui .Dialog ("Could not disable mount: " + err .Error (),
511- gtk .MESSAGE_ERROR , settingsWindow )
519+ gtk .MESSAGE_ERROR , settingsDialog )
512520 log .Error ().
513521 Err (err ).
514522 Str ("mount" , mount ).
@@ -520,7 +528,7 @@ func newSettingsWindow(config *common.Config, configPath string) {
520528 err = os .Rename (filepath .Join (oldPath , mount ), filepath .Join (path , mount ))
521529 if err != nil {
522530 ui .Dialog ("Could not move cache for mount: " + err .Error (),
523- gtk .MESSAGE_ERROR , settingsWindow )
531+ gtk .MESSAGE_ERROR , settingsDialog )
524532 log .Error ().
525533 Err (err ).
526534 Str ("mount" , mount ).
@@ -549,10 +557,20 @@ func newSettingsWindow(config *common.Config, configPath string) {
549557 settingsRowCacheDir .PackEnd (cacheDirPicker , false , false , 0 )
550558
551559 // assemble rows
552- settingsWindowBox , _ := gtk .BoxNew (gtk .ORIENTATION_VERTICAL , offset )
553- settingsWindowBox .SetBorderWidth (offset )
554- settingsWindowBox .PackStart (settingsRowLog , true , true , 0 )
555- settingsWindowBox .PackStart (settingsRowCacheDir , true , true , 0 )
556- settingsWindow .Add (settingsWindowBox )
557- settingsWindow .ShowAll ()
560+ settingsDialogBox , _ := gtk .BoxNew (gtk .ORIENTATION_VERTICAL , offset )
561+ settingsDialogBox .SetBorderWidth (offset )
562+ settingsDialogBox .PackStart (settingsRowLog , true , true , 0 )
563+ settingsDialogBox .PackStart (settingsRowCacheDir , true , true , 0 )
564+
565+ contentArea , err := settingsDialog .GetContentArea ()
566+ if err != nil {
567+ log .Error ().Err (err ).Msg ("Failed to get settings dialog content area." )
568+ return
569+ }
570+
571+ contentArea .Add (settingsDialogBox )
572+
573+ settingsDialog .SetModal (true )
574+ settingsDialog .SetTransientFor (parent )
575+ settingsDialog .ShowAll ()
558576}
0 commit comments