diff --git a/hsfm.cabal b/hsfm.cabal index 8e9c2e7..e202bb6 100644 --- a/hsfm.cabal +++ b/hsfm.cabal @@ -17,6 +17,7 @@ data-files: data/Gtk/builder.xml data/Gtk/icons/gtk-directory.png data/Gtk/icons/gtk-file.png data/Gtk/icons/hsfm.png + hsfm.cabal LICENSE diff --git a/src/GUI/Gtk.hs b/src/GUI/Gtk.hs index 1c790a7..a7f3643 100644 --- a/src/GUI/Gtk.hs +++ b/src/GUI/Gtk.hs @@ -84,6 +84,10 @@ import IO.Error import IO.File import IO.Utils import MyPrelude +import Paths_hsfm + ( + getDataFileName + ) import Safe ( headDef @@ -160,7 +164,7 @@ startMainWindow startdir = do operationBuffer <- newTVarIO None builder <- builderNew - builderAddFromFile builder "data/Gtk/builder.xml" + builderAddFromFile builder =<< getDataFileName "data/Gtk/builder.xml" -- get the pre-defined gui widgets rootWin <- builderGetObject builder castToWindow @@ -288,6 +292,6 @@ startMainWindow startdir = do containerAdd scroll treeView -- sets the default icon - windowSetDefaultIconFromFile "data/Gtk/icons/hsfm.png" + windowSetDefaultIconFromFile =<< getDataFileName "data/Gtk/icons/hsfm.png" widgetShowAll rootWin diff --git a/src/GUI/Gtk/Dialogs.hs b/src/GUI/Gtk/Dialogs.hs index a51f082..4837cf6 100644 --- a/src/GUI/Gtk/Dialogs.hs +++ b/src/GUI/Gtk/Dialogs.hs @@ -63,7 +63,10 @@ import Graphics.UI.Gtk import GUI.Gtk.Data import IO.Error import IO.File - +import Paths_hsfm + ( + getDataFileName + ) @@ -143,9 +146,11 @@ withCopyModeDialog fa = showAboutDialog :: IO () showAboutDialog = do ad <- aboutDialogNew - lstr <- readFile "LICENSE" - hsfmicon <- pixbufNewFromFile "data/Gtk/icons/hsfm.png" - pdesc <- packageDescription <$> readPackageDescription silent "hsfm.cabal" + lstr <- readFile =<< getDataFileName "LICENSE" + hsfmicon <- pixbufNewFromFile =<< getDataFileName "data/Gtk/icons/hsfm.png" + pdesc <- fmap packageDescription + (readPackageDescription silent + =<< getDataFileName "hsfm.cabal") set ad [ aboutDialogProgramName := (unPackageName . pkgName . package) pdesc , aboutDialogName := (unPackageName . pkgName . package) pdesc diff --git a/src/GUI/Gtk/Icons.hs b/src/GUI/Gtk/Icons.hs index a7de7dc..56321f5 100644 --- a/src/GUI/Gtk/Icons.hs +++ b/src/GUI/Gtk/Icons.hs @@ -24,6 +24,10 @@ module GUI.Gtk.Icons where import Graphics.UI.Gtk import Graphics.UI.Gtk.Gdk.Pixbuf +import Paths_hsfm + ( + getDataFileName + ) -- |Icon type we use in our GUI. @@ -44,7 +48,7 @@ getIcon icon itheme isize = do mpix <- iconThemeLoadIcon itheme iname isize IconLookupUseBuiltin case mpix of Just pix -> return pix - Nothing -> pixbufNewFromFile ("data/Gtk/icons/" ++ iname) + Nothing -> pixbufNewFromFile =<< getDataFileName ("data/Gtk/icons/" ++ iname) where iconToStr IFolder = "gtk-directory" iconToStr IFile = "gtk-file"