GTK: implement home and up buttons wrt #40

This commit is contained in:
2016-04-17 01:01:04 +02:00
parent c0bd5f3c37
commit e98fb577ed
4 changed files with 57 additions and 9 deletions

View File

@@ -63,7 +63,10 @@ import System.Glib.UTFString
(
glibToString
)
import System.Posix.Env.ByteString
(
getEnv
)
@@ -128,6 +131,10 @@ setCallbacks mygui myview = do
-- GUI events
_ <- urlBar mygui `on` entryActivated $ urlGoTo mygui myview
_ <- upViewB mygui `on` buttonActivated $
upDir mygui myview
_ <- homeViewB mygui `on` buttonActivated $
goHome mygui myview
_ <- refreshViewB mygui `on` buttonActivated $ do
cdir <- liftIO $ getCurrentDir myview
refreshView' mygui myview cdir
@@ -234,6 +241,12 @@ urlGoTo mygui myview = withErrorDialog $ do
refreshView mygui myview (Just fp')
goHome :: MyGUI -> MyView -> IO ()
goHome mygui myview = withErrorDialog $ do
mhomedir <- getEnv "HOME"
refreshView mygui myview (P.parseAbs =<< mhomedir)
-- |Supposed to be used with 'withRows'. Opens a file or directory.
open :: [Item] -> MyGUI -> MyView -> IO ()
open [item] mygui myview = withErrorDialog $

View File

@@ -72,6 +72,8 @@ data MyGUI = MkMyGUI {
, rcFileRename :: ImageMenuItem
, rcFilePaste :: ImageMenuItem
, rcFileDelete :: ImageMenuItem
, upViewB :: Button
, homeViewB :: Button
, refreshViewB :: Button
, urlBar :: Entry
, statusBar :: Statusbar

View File

@@ -99,6 +99,10 @@ createMyGUI = do
"rcFilePaste"
rcFileDelete <- builderGetObject builder castToImageMenuItem
"rcFileDelete"
upViewB <- builderGetObject builder castToButton
"upViewB"
homeViewB <- builderGetObject builder castToButton
"homeViewB"
refreshViewB <- builderGetObject builder castToButton
"refreshViewB"
menubarViewTree <- builderGetObject builder castToImageMenuItem