diff --git a/data/Gtk/builder.xml b/data/Gtk/builder.xml index 40990f3..6e57043 100644 --- a/data/Gtk/builder.xml +++ b/data/Gtk/builder.xml @@ -7,88 +7,6 @@ False gtk-edit - - True - False - - - gtk-open - True - False - True - True - - - - - gtk-execute - True - False - True - True - - - - - gtk-new - True - False - True - True - - - - - True - False - - - - - gtk-cut - True - False - True - True - - - - - gtk-copy - True - False - True - True - - - - - Rename - True - False - image1 - False - - - - - gtk-paste - True - False - True - True - - - - - gtk-delete - True - False - True - True - - - True False @@ -430,4 +348,115 @@ + + True + False + gtk-directory + + + True + False + + + gtk-open + True + False + True + True + + + + + gtk-execute + True + False + True + True + + + + + gtk-new + True + False + True + True + + + True + False + + + gtk-file + True + False + True + True + + + + + directory + True + False + image6 + False + + + + + + + + + True + False + + + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + Rename + True + False + image1 + False + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + diff --git a/src/HSFM/GUI/Gtk/Callbacks.hs b/src/HSFM/GUI/Gtk/Callbacks.hs index 7fbea36..4e1aa78 100644 --- a/src/HSFM/GUI/Gtk/Callbacks.hs +++ b/src/HSFM/GUI/Gtk/Callbacks.hs @@ -206,8 +206,10 @@ setCallbacks mygui myview = do liftIO $ withItems mygui myview open _ <- rcFileExecute mygui `on` menuItemActivated $ liftIO $ withItems mygui myview execute - _ <- rcFileNew mygui `on` menuItemActivated $ + _ <- rcFileNewRegFile mygui `on` menuItemActivated $ liftIO $ newFile mygui myview + _ <- rcFileNewDir mygui `on` menuItemActivated $ + liftIO $ newDir mygui myview _ <- rcFileCopy mygui `on` menuItemActivated $ liftIO $ withItems mygui myview copyInit _ <- rcFileRename mygui `on` menuItemActivated $ @@ -353,7 +355,7 @@ upDir mygui myview = withErrorDialog $ do refreshView' mygui myview nv --- |Go up one directory and visualize it in the treeView. +-- |Create a new file. newFile :: MyGUI -> MyView -> IO () newFile _ myview = withErrorDialog $ do mfn <- textInputDialog "Enter file name" @@ -363,6 +365,16 @@ newFile _ myview = withErrorDialog $ do createFile cdir fn +-- |Create a new directory. +newDir :: MyGUI -> MyView -> IO () +newDir _ myview = withErrorDialog $ do + mfn <- textInputDialog "Enter directory name" + let pmfn = P.parseFn =<< P.userStringToFP <$> mfn + for_ pmfn $ \fn -> do + cdir <- getCurrentDir myview + createDir cdir fn + + renameF :: [Item] -> MyGUI -> MyView -> IO () renameF [item] _ _ = withErrorDialog $ do mfn <- textInputDialog "Enter new file name" diff --git a/src/HSFM/GUI/Gtk/Data.hs b/src/HSFM/GUI/Gtk/Data.hs index 0c3cfbd..0072223 100644 --- a/src/HSFM/GUI/Gtk/Data.hs +++ b/src/HSFM/GUI/Gtk/Data.hs @@ -66,7 +66,8 @@ data MyGUI = MkMyGUI { , rcMenu :: Menu , rcFileOpen :: ImageMenuItem , rcFileExecute :: ImageMenuItem - , rcFileNew :: ImageMenuItem + , rcFileNewRegFile :: ImageMenuItem + , rcFileNewDir :: ImageMenuItem , rcFileCut :: ImageMenuItem , rcFileCopy :: ImageMenuItem , rcFileRename :: ImageMenuItem diff --git a/src/HSFM/GUI/Gtk/MyGUI.hs b/src/HSFM/GUI/Gtk/MyGUI.hs index 49bbed3..6939d4a 100644 --- a/src/HSFM/GUI/Gtk/MyGUI.hs +++ b/src/HSFM/GUI/Gtk/MyGUI.hs @@ -87,8 +87,10 @@ createMyGUI = do "rcFileOpen" rcFileExecute <- builderGetObject builder castToImageMenuItem "rcFileExecute" - rcFileNew <- builderGetObject builder castToImageMenuItem - "rcFileNew" + rcFileNewRegFile <- builderGetObject builder castToImageMenuItem + "rcFileNewRegFile" + rcFileNewDir <- builderGetObject builder castToImageMenuItem + "rcFileNewDir" rcFileCut <- builderGetObject builder castToImageMenuItem "rcFileCut" rcFileCopy <- builderGetObject builder castToImageMenuItem