From 369bf440c4ab2edb213e1c7a56f70721225afcab Mon Sep 17 00:00:00 2001 From: travis-ci Date: Sun, 12 Jun 2016 22:03:54 +0000 Subject: [PATCH] Lastest docs updated travis build: 39 commit: df0b5e3e1603a170126d65901717ff7ff657d7b6 auto-pushed to gh-pages --- HSFM-FileSystem-FileType.html | 9 +- HSFM-Utils-MyPrelude.html | 4 +- Paths_hsfm.html | 2 +- doc-index-All.html | 2 +- doc-index-F.html | 2 +- doc-index-G.html | 2 +- doc-index-M.html | 2 +- hsfm.haddock | Bin 50705 -> 49403 bytes mini_HSFM-FileSystem-FileType.html | 2 +- mini_HSFM-Utils-MyPrelude.html | 2 +- src/HSFM-GUI-Gtk-Dialogs.html | 2 +- src/HSFM-GUI-Gtk-MyView.html | 733 ++++++++++++++--------------- src/HSFM-Utils-MyPrelude.html | 20 +- 13 files changed, 373 insertions(+), 409 deletions(-) diff --git a/HSFM-FileSystem-FileType.html b/HSFM-FileSystem-FileType.html index 5d266bb..9159411 100644 --- a/HSFM-FileSystem-FileType.html +++ b/HSFM-FileSystem-FileType.html @@ -10,13 +10,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HSFM-FileSystem-FileTy happening on filesystem level.

If you interact with low-level libraries, you must not pattern match on the `File a` type. Instead, you should only use the saved path and make no assumptions about the file the path might or - might not point to.

Synopsis

Documentation

data File a Source #

The String in the path field is always a full path. + might not point to.

Synopsis

Documentation

data File a Source #

The String in the path field is always a full path. The free type variable is used in the File/Dir constructor and can hold Handles, Strings representing a file's contents or anything else you can think of.

Constructors

Dir 

Fields

RegFile 

Fields

SymLink 

Fields

BlockDev 

Fields

CharDev 

Fields

NamedPipe 

Fields

Socket 

Fields

Instances

Eq a => Eq (File a) Source # 

Methods

(==) :: File a -> File a -> Bool #

(/=) :: File a -> File a -> Bool #

Ord (File FileInfo) Source #

First compare constructors: Failed < Dir < File... + we need to know where it points to

  • rawdest :: !ByteString
     
  • BlockDev 

    Fields

    CharDev 

    Fields

    NamedPipe 

    Fields

    Socket 

    Fields

    Instances

    Eq a => Eq (File a) Source # 

    Methods

    (==) :: File a -> File a -> Bool #

    (/=) :: File a -> File a -> Bool #

    Ord (File FileInfo) Source #

    First compare constructors: Failed < Dir < File... Then compare name... - Then compare free variable parameter of File constructors

    Show a => Show (File a) Source # 

    Methods

    showsPrec :: Int -> File a -> ShowS #

    show :: File a -> String #

    showList :: [File a] -> ShowS #

    data FileInfo Source #

    Low-level file information.

    Instances

    Eq FileInfo Source # 
    Ord FileInfo Source # 
    Show FileInfo Source # 
    Ord (File FileInfo) Source #

    First compare constructors: Failed < Dir < File... + Then compare free variable parameter of File constructors

    Show a => Show (File a) Source # 

    Methods

    showsPrec :: Int -> File a -> ShowS #

    show :: File a -> String #

    showList :: [File a] -> ShowS #

    data FileInfo Source #

    Low-level file information.

    Instances

    Eq FileInfo Source # 
    Ord FileInfo Source # 
    Show FileInfo Source # 
    Ord (File FileInfo) Source #

    First compare constructors: Failed < Dir < File... Then compare name... Then compare free variable parameter of File constructors

    pattern FileLike :: File FileInfo -> File FileInfo Source #

    Matches on any non-directory kind of files, excluding symlinks.

    pattern DirList :: [File FileInfo] -> [File FileInfo] Source #

    Matches a list of directories or symlinks pointing to directories.

    pattern FileLikeList :: [File FileInfo] -> [File FileInfo] Source #

    Matches a list of any non-directory kind of files or symlinks pointing to such.

    pattern FileLikeSym :: File FileInfo -> File FileInfo Source #

    Matches on symlinks pointing to file-like files only.

    pattern BrokenSymlink :: File FileInfo -> File FileInfo Source #

    Matches on broken symbolic links.

    pattern DirOrSym :: File FileInfo -> File FileInfo Source #

    Matches on directories or symlinks pointing to directories. @@ -30,5 +30,4 @@ window.onload = function () {pageLoad();setSynopsis("mini_HSFM-FileSystem-FileTy variables via the given function.

    readDirectoryContents Source #

    Arguments

    :: (Path Abs -> IO a)

    fills free a variable

    -> Path Abs

    path to read

    -> IO [File a] 

    Get the contents of a given directory and return them as a list of AnchoredFile.

    getContents :: (Path Abs -> IO a) -> File FileInfo -> IO [File a] Source #

    A variant of readDirectoryContents where the second argument is a File. If a non-directory is passed returns an empty list.

    goUp :: File FileInfo -> IO (File FileInfo) Source #

    Go up one directory in the filesystem hierarchy.

    goUp' :: Path Abs -> IO (File FileInfo) Source #

    Go up one directory in the filesystem hierarchy.

    getFileInfo :: Path Abs -> IO FileInfo Source #

    Gets all file information.

    isBrokenSymlink :: File FileInfo -> Bool Source #

    Checks if a symlink is broken by examining the constructor of the - symlink destination.

    When called on a non-symlink, returns False.

    packModTime :: File FileInfo -> String Source #

    Pack the modification time into a string.

    packAccessTime :: File FileInfo -> String Source #

    Pack the modification time into a string.

    packPermissions :: File FileInfo -> String Source #

    Pack the permissions into a string, similar to what "ls -l" does.

    fromFreeVar :: Default d => (a -> d) -> File a -> d Source #

    Apply a function on the free variable. If there is no free variable - for the given constructor the value from the Default class is used.

    getFreeVar :: File a -> Maybe a Source #

    Gets the free variable. Returns Nothing if the constructor is of Failed.

    \ No newline at end of file + symlink destination.

    When called on a non-symlink, returns False.

    packModTime :: File FileInfo -> String Source #

    Pack the modification time into a string.

    packAccessTime :: File FileInfo -> String Source #

    Pack the modification time into a string.

    epochToString :: EpochTime -> String Source #

    packPermissions :: File FileInfo -> String Source #

    Pack the permissions into a string, similar to what "ls -l" does.

    packFileType :: File a -> String Source #

    packLinkDestination :: File a -> Maybe ByteString Source #

    getFPasStr :: File a -> String Source #

    \ No newline at end of file diff --git a/HSFM-Utils-MyPrelude.html b/HSFM-Utils-MyPrelude.html index 817e36b..13c72f4 100644 --- a/HSFM-Utils-MyPrelude.html +++ b/HSFM-Utils-MyPrelude.html @@ -1,6 +1,6 @@ HSFM.Utils.MyPrelude

    hsfm-gtk

    Safe HaskellNone
    LanguageHaskell2010

    HSFM.Utils.MyPrelude

    Synopsis

    Documentation

    listIndices :: [a] -> [Int] Source #

    Turns any list into a list of the same length with the values +

    Safe HaskellSafe
    LanguageHaskell2010

    HSFM.Utils.MyPrelude

    Synopsis

    Documentation

    listIndices :: [a] -> [Int] Source #

    Turns any list into a list of the same length with the values being the indices. - E.g.: "abdasd" -> [0,1,2,3,4,5]

    maybeD :: Default b => (a -> b) -> Maybe a -> b Source #

    A maybe flavor using the Default class.

    \ No newline at end of file + E.g.: "abdasd" -> [0,1,2,3,4,5]

    \ No newline at end of file diff --git a/Paths_hsfm.html b/Paths_hsfm.html index 9edbce3..0bd468a 100644 --- a/Paths_hsfm.html +++ b/Paths_hsfm.html @@ -1,4 +1,4 @@ Paths_hsfm

    hsfm-gtk

    Safe HaskellSafe
    LanguageHaskell2010

    Paths_hsfm

    \ No newline at end of file +

    hsfm-gtk

    Safe HaskellSafe
    LanguageHaskell2010

    Paths_hsfm

    \ No newline at end of file diff --git a/doc-index-All.html b/doc-index-All.html index 6e53c88..dfbb97d 100644 --- a/doc-index-All.html +++ b/doc-index-All.html @@ -1,4 +1,4 @@ hsfm-gtk (Index)

    hsfm-gtk

    Index

    accessTimeHSFM.FileSystem.FileType
    accessTimeHiResHSFM.FileSystem.FileType
    backViewBHSFM.GUI.Gtk.Data
    backwardsHistoryHSFM.History
    BlockDevHSFM.FileSystem.FileType
    BrokenSymlinkHSFM.FileSystem.FileType
    brokenSymlinkHSFM.FileSystem.FileType
    BrowsingHistory 
    1 (Type/Class)HSFM.History
    2 (Data Constructor)HSFM.History
    CharDevHSFM.FileSystem.FileType
    clearStatusBarHSFM.GUI.Gtk.Data
    closeTabHSFM.GUI.Gtk.Callbacks
    CloseTabKeyHSFM.GUI.Gtk.Settings
    CloseTabModifierHSFM.GUI.Gtk.Settings
    comparingConstrHSFM.FileSystem.FileType
    constructViewHSFM.GUI.Gtk.MyView
    Copy 
    1 (Type/Class)HSFM.FileSystem.UtilTypes
    2 (Data Constructor)HSFM.FileSystem.UtilTypes
    copyInitHSFM.GUI.Gtk.Callbacks
    CopyKeyHSFM.GUI.Gtk.Settings
    CopyModifierHSFM.GUI.Gtk.Settings
    createIconViewHSFM.GUI.Gtk.MyView
    createMyGUIHSFM.GUI.Gtk.MyGUI
    createMyViewHSFM.GUI.Gtk.MyView
    createTreeViewHSFM.GUI.Gtk.MyView
    currentDirHSFM.History
    cwdHSFM.GUI.Gtk.Data
    c_strlenHSFM.GUI.Glib.GlibString
    delHSFM.GUI.Gtk.Callbacks
    DeleteKeyHSFM.GUI.Gtk.Settings
    DeleteModifierHSFM.GUI.Gtk.Settings
    destroyViewHSFM.GUI.Gtk.MyView
    deviceIDHSFM.FileSystem.FileType
    diffCallbackHSFM.GUI.Gtk.Plugins
    diffFilterHSFM.GUI.Gtk.Plugins
    diffItemHSFM.GUI.Gtk.Plugins
    DirHSFM.FileSystem.FileType
    DirListHSFM.FileSystem.FileType
    DirOrSymHSFM.FileSystem.FileType
    DirSymHSFM.FileSystem.FileType
    dirSymHSFM.FileSystem.FileType
    doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
    epochToStringHSFM.FileSystem.FileType
    executeHSFM.GUI.Gtk.Callbacks
    FCollisonModeHSFM.FileSystem.UtilTypes
    FCopyHSFM.FileSystem.UtilTypes
    FDeleteHSFM.FileSystem.UtilTypes
    FExecuteHSFM.FileSystem.UtilTypes
    FileHSFM.FileSystem.FileType
    fileCollisionDialogHSFM.GUI.Gtk.Dialogs
    fileGroupHSFM.FileSystem.FileType
    fileIDHSFM.FileSystem.FileType
    FileInfo 
    1 (Type/Class)HSFM.FileSystem.FileType
    2 (Data Constructor)HSFM.FileSystem.FileType
    FileLikeHSFM.FileSystem.FileType
    fileLikeHSFM.FileSystem.FileType
    FileLikeListHSFM.FileSystem.FileType
    FileLikeOrSymHSFM.FileSystem.FileType
    FileLikeSymHSFM.FileSystem.FileType
    fileLikeSymHSFM.FileSystem.FileType
    fileListStoreHSFM.GUI.Gtk.Utils
    fileModeHSFM.FileSystem.FileType
    FileOperationHSFM.FileSystem.UtilTypes
    fileOwnerHSFM.FileSystem.FileType
    FilePropertyGridHSFM.GUI.Gtk.Data
    fileSizeHSFM.FileSystem.FileType
    filteredModelHSFM.GUI.Gtk.Data
    FMIconViewHSFM.GUI.Gtk.Data
    FMoveHSFM.FileSystem.UtilTypes
    FMSettingsHSFM.GUI.Gtk.Data
    FMTreeViewHSFM.GUI.Gtk.Data
    FMViewHSFM.GUI.Gtk.Data
    fmViewToContainerHSFM.GUI.Gtk.Data
    FOpenHSFM.FileSystem.UtilTypes
    forwardHistoryHSFM.History
    forwardViewBHSFM.GUI.Gtk.Data
    fpropHSFM.GUI.Gtk.Data
    fpropAcEntryHSFM.GUI.Gtk.Data
    fpropFnEntryHSFM.GUI.Gtk.Data
    fpropFTEntryHSFM.GUI.Gtk.Data
    fpropGridHSFM.GUI.Gtk.Data
    fpropLDEntryHSFM.GUI.Gtk.Data
    fpropLocEntryHSFM.GUI.Gtk.Data
    fpropModEntryHSFM.GUI.Gtk.Data
    fpropPermEntryHSFM.GUI.Gtk.Data
    fpropTsEntryHSFM.GUI.Gtk.Data
    fromFreeVarHSFM.FileSystem.FileType
    fvarHSFM.FileSystem.FileType
    getBinDirPaths_hsfm
    getContentsHSFM.FileSystem.FileType
    getCurrentDirHSFM.GUI.Gtk.Utils
    getDataDirPaths_hsfm
    getDataFileNamePaths_hsfm
    getFileInfoHSFM.FileSystem.FileType
    getFirstItemHSFM.GUI.Gtk.Utils
    getFPasStrHSFM.FileSystem.FileType
    getFreeVarHSFM.FileSystem.FileType
    getIconHSFM.GUI.Gtk.Icons
    getLibDirPaths_hsfm
    getLibexecDirPaths_hsfm
    getSelectedItemsHSFM.GUI.Gtk.Utils
    getSelectedTreePathsHSFM.GUI.Gtk.Utils
    getSymlinkIconHSFM.GUI.Gtk.Icons
    getSysconfDirPaths_hsfm
    goDirHSFM.GUI.Gtk.Callbacks.Utils
    goHistoryBackHSFM.GUI.Gtk.Callbacks
    goHistoryForwardHSFM.GUI.Gtk.Callbacks
    goHomeHSFM.GUI.Gtk.Callbacks
    goUpHSFM.FileSystem.FileType
    goUp'HSFM.FileSystem.FileType
    GtkExceptionHSFM.GUI.Gtk.Errors
    GtkIconHSFM.GUI.Gtk.Icons
    historyHSFM.GUI.Gtk.Data
    historyBackHSFM.History
    HistoryBackKeyHSFM.GUI.Gtk.Settings
    HistoryBackModifierHSFM.GUI.Gtk.Settings
    historyForwardHSFM.History
    HistoryForwardKeyHSFM.GUI.Gtk.Settings
    HistoryForwardModifierHSFM.GUI.Gtk.Settings
    historyNewPathHSFM.History
    homeHSFM.Settings
    homeViewBHSFM.GUI.Gtk.Data
    iconSizeHSFM.GUI.Gtk.Data
    IErrorHSFM.GUI.Gtk.Icons
    IFileHSFM.GUI.Gtk.Icons
    IFolderHSFM.GUI.Gtk.Icons
    inotifyHSFM.GUI.Gtk.Data
    insertPosHSFM.GUI.Gtk.Plugins
    isBlockCHSFM.FileSystem.FileType
    isBrokenSymlinkHSFM.FileSystem.FileType
    isCharCHSFM.FileSystem.FileType
    isDirCHSFM.FileSystem.FileType
    isFileCHSFM.FileSystem.FileType
    isLazyHSFM.GUI.Gtk.Data
    isNamedCHSFM.FileSystem.FileType
    isSocketCHSFM.FileSystem.FileType
    isSymCHSFM.FileSystem.FileType
    ItemHSFM.GUI.Gtk.Data
    linkCountHSFM.FileSystem.FileType
    listIndicesHSFM.Utils.MyPrelude
    mainMain
    maxSizeHSFM.History
    maybeDHSFM.Utils.MyPrelude
    MenuBarHSFM.GUI.Gtk.Data
    menubarHSFM.GUI.Gtk.Data
    menubarFileQuitHSFM.GUI.Gtk.Data
    menubarHelpAboutHSFM.GUI.Gtk.Data
    MkFilePropertyGridHSFM.GUI.Gtk.Data
    MkFMSettingsHSFM.GUI.Gtk.Data
    mkHistoryMenuBHSFM.GUI.Gtk.Callbacks
    mkHistoryMenuFHSFM.GUI.Gtk.Callbacks
    MkMenuBarHSFM.GUI.Gtk.Data
    MkMyGUIHSFM.GUI.Gtk.Data
    MkMyViewHSFM.GUI.Gtk.Data
    MkRightClickMenuHSFM.GUI.Gtk.Data
    modificationTimeHSFM.FileSystem.FileType
    modificationTimeHiResHSFM.FileSystem.FileType
    modifyTVarIOHSFM.Utils.IO
    Move 
    1 (Type/Class)HSFM.FileSystem.UtilTypes
    2 (Data Constructor)HSFM.FileSystem.UtilTypes
    moveInitHSFM.GUI.Gtk.Callbacks
    MoveKeyHSFM.GUI.Gtk.Settings
    MoveModifierHSFM.GUI.Gtk.Settings
    MyGUIHSFM.GUI.Gtk.Data
    mypluginsHSFM.GUI.Gtk.Plugins
    MyViewHSFM.GUI.Gtk.Data
    NamedPipeHSFM.FileSystem.FileType
    newDirHSFM.GUI.Gtk.Callbacks
    newFileHSFM.GUI.Gtk.Callbacks
    newTabHSFM.GUI.Gtk.MyView
    newTab'HSFM.GUI.Gtk.Callbacks
    NewTabKeyHSFM.GUI.Gtk.Settings
    NewTabModifierHSFM.GUI.Gtk.Settings
    NoneHSFM.FileSystem.UtilTypes
    noNullPtrsHSFM.GUI.Glib.GlibString
    notebookHSFM.GUI.Gtk.Data
    opeInNewTabHSFM.GUI.Gtk.Callbacks
    openHSFM.GUI.Gtk.Callbacks
    OpenKeyHSFM.GUI.Gtk.Settings
    OpenModifierHSFM.GUI.Gtk.Settings
    openTerminalHereHSFM.GUI.Gtk.Callbacks
    OpenTerminalKeyHSFM.GUI.Gtk.Settings
    OpenTerminalModifierHSFM.GUI.Gtk.Settings
    operationBufferHSFM.GUI.Gtk.Data
    operationFinalHSFM.GUI.Gtk.Callbacks
    OverwriteHSFM.FileSystem.UtilTypes
    OverwriteAllHSFM.FileSystem.UtilTypes
    packAccessTimeHSFM.FileSystem.FileType
    packFileTypeHSFM.FileSystem.FileType
    packLinkDestinationHSFM.FileSystem.FileType
    packModTimeHSFM.FileSystem.FileType
    packPermissionsHSFM.FileSystem.FileType
    PartialCopyHSFM.FileSystem.UtilTypes
    PartialMoveHSFM.FileSystem.UtilTypes
    PasteKeyHSFM.GUI.Gtk.Settings
    PasteModifierHSFM.GUI.Gtk.Settings
    pathHSFM.FileSystem.FileType
    popStatusbarHSFM.GUI.Gtk.Utils
    pushStatusBarHSFM.GUI.Gtk.Utils
    QuitKeyHSFM.GUI.Gtk.Settings
    QuitModifierHSFM.GUI.Gtk.Settings
    rawdestHSFM.FileSystem.FileType
    rawModelHSFM.GUI.Gtk.Data
    rawPathToItemHSFM.GUI.Gtk.Utils
    rawPathToIterHSFM.GUI.Gtk.Utils
    rcFileCopyHSFM.GUI.Gtk.Data
    rcFileCutHSFM.GUI.Gtk.Data
    rcFileDeleteHSFM.GUI.Gtk.Data
    rcFileExecuteHSFM.GUI.Gtk.Data
    rcFileIconViewHSFM.GUI.Gtk.Data
    rcFileNewDirHSFM.GUI.Gtk.Data
    rcFileNewRegFileHSFM.GUI.Gtk.Data
    rcFileNewTabHSFM.GUI.Gtk.Data
    rcFileNewTermHSFM.GUI.Gtk.Data
    rcFileOpenHSFM.GUI.Gtk.Data
    rcFilePasteHSFM.GUI.Gtk.Data
    rcFilePropertyHSFM.GUI.Gtk.Data
    rcFileRenameHSFM.GUI.Gtk.Data
    rcFileTreeViewHSFM.GUI.Gtk.Data
    rcMenuHSFM.GUI.Gtk.Data
    readDirectoryContentsHSFM.FileSystem.FileType
    readFileHSFM.FileSystem.FileType
    refreshViewHSFM.GUI.Gtk.MyView
    refreshViewBHSFM.GUI.Gtk.Data
    RegFileHSFM.FileSystem.FileType
    RenameHSFM.FileSystem.UtilTypes
    renameDialogHSFM.GUI.Gtk.Dialogs
    renameFHSFM.GUI.Gtk.Callbacks
    RightClickMenuHSFM.GUI.Gtk.Data
    rootWinHSFM.GUI.Gtk.Data
    scrollHSFM.GUI.Gtk.Data
    sdestHSFM.FileSystem.FileType
    sdirHSFM.FileSystem.FileType
    setGUICallbacksHSFM.GUI.Gtk.Callbacks
    settingsHSFM.GUI.Gtk.Data
    setViewCallbacksHSFM.GUI.Gtk.Callbacks
    sfileLikeHSFM.FileSystem.FileType
    showAboutDialogHSFM.GUI.Gtk.Dialogs
    showConfirmationDialogHSFM.GUI.Gtk.Dialogs
    showErrorDialogHSFM.GUI.Gtk.Dialogs
    showFilePropertyDialogHSFM.GUI.Gtk.Dialogs
    showHiddenHSFM.GUI.Gtk.Data
    ShowHiddenKeyHSFM.GUI.Gtk.Settings
    ShowHiddenModifierHSFM.GUI.Gtk.Settings
    showPopupHSFM.GUI.Gtk.Callbacks
    SkipHSFM.FileSystem.UtilTypes
    SocketHSFM.FileSystem.FileType
    sortedModelHSFM.GUI.Gtk.Data
    specialDeviceIDHSFM.FileSystem.FileType
    statusBarHSFM.GUI.Gtk.Data
    statusChangeTimeHSFM.FileSystem.FileType
    statusChangeTimeHiResHSFM.FileSystem.FileType
    StrictHSFM.FileSystem.UtilTypes
    switchViewHSFM.GUI.Gtk.MyView
    SymLHSFM.GUI.Gtk.Icons
    SymLinkHSFM.FileSystem.FileType
    terminalCommandHSFM.Settings
    textInputDialogHSFM.GUI.Gtk.Dialogs
    UnknownDialogButtonHSFM.GUI.Gtk.Errors
    upDirHSFM.GUI.Gtk.Callbacks
    UpDirKeyHSFM.GUI.Gtk.Settings
    UpDirModifierHSFM.GUI.Gtk.Settings
    upViewBHSFM.GUI.Gtk.Data
    urlBarHSFM.GUI.Gtk.Data
    urlGoToHSFM.GUI.Gtk.Callbacks
    versionPaths_hsfm
    viewHSFM.GUI.Gtk.Data
    viewBoxHSFM.GUI.Gtk.Data
    withConfirmationDialogHSFM.GUI.Gtk.Dialogs
    withErrorDialogHSFM.GUI.Gtk.Dialogs
    withItemsHSFM.GUI.Gtk.Utils
    writeTVarIOHSFM.Utils.IO
    _doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
    \ No newline at end of file +

    hsfm-gtk

    Index

    accessTimeHSFM.FileSystem.FileType
    accessTimeHiResHSFM.FileSystem.FileType
    backViewBHSFM.GUI.Gtk.Data
    backwardsHistoryHSFM.History
    BlockDevHSFM.FileSystem.FileType
    BrokenSymlinkHSFM.FileSystem.FileType
    brokenSymlinkHSFM.FileSystem.FileType
    BrowsingHistory 
    1 (Type/Class)HSFM.History
    2 (Data Constructor)HSFM.History
    CharDevHSFM.FileSystem.FileType
    clearStatusBarHSFM.GUI.Gtk.Data
    closeTabHSFM.GUI.Gtk.Callbacks
    CloseTabKeyHSFM.GUI.Gtk.Settings
    CloseTabModifierHSFM.GUI.Gtk.Settings
    comparingConstrHSFM.FileSystem.FileType
    constructViewHSFM.GUI.Gtk.MyView
    Copy 
    1 (Type/Class)HSFM.FileSystem.UtilTypes
    2 (Data Constructor)HSFM.FileSystem.UtilTypes
    copyInitHSFM.GUI.Gtk.Callbacks
    CopyKeyHSFM.GUI.Gtk.Settings
    CopyModifierHSFM.GUI.Gtk.Settings
    createIconViewHSFM.GUI.Gtk.MyView
    createMyGUIHSFM.GUI.Gtk.MyGUI
    createMyViewHSFM.GUI.Gtk.MyView
    createTreeViewHSFM.GUI.Gtk.MyView
    currentDirHSFM.History
    cwdHSFM.GUI.Gtk.Data
    c_strlenHSFM.GUI.Glib.GlibString
    delHSFM.GUI.Gtk.Callbacks
    DeleteKeyHSFM.GUI.Gtk.Settings
    DeleteModifierHSFM.GUI.Gtk.Settings
    destroyViewHSFM.GUI.Gtk.MyView
    deviceIDHSFM.FileSystem.FileType
    diffCallbackHSFM.GUI.Gtk.Plugins
    diffFilterHSFM.GUI.Gtk.Plugins
    diffItemHSFM.GUI.Gtk.Plugins
    DirHSFM.FileSystem.FileType
    DirListHSFM.FileSystem.FileType
    DirOrSymHSFM.FileSystem.FileType
    DirSymHSFM.FileSystem.FileType
    dirSymHSFM.FileSystem.FileType
    doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
    epochToStringHSFM.FileSystem.FileType
    executeHSFM.GUI.Gtk.Callbacks
    FCollisonModeHSFM.FileSystem.UtilTypes
    FCopyHSFM.FileSystem.UtilTypes
    FDeleteHSFM.FileSystem.UtilTypes
    FExecuteHSFM.FileSystem.UtilTypes
    FileHSFM.FileSystem.FileType
    fileCollisionDialogHSFM.GUI.Gtk.Dialogs
    fileGroupHSFM.FileSystem.FileType
    fileIDHSFM.FileSystem.FileType
    FileInfo 
    1 (Type/Class)HSFM.FileSystem.FileType
    2 (Data Constructor)HSFM.FileSystem.FileType
    FileLikeHSFM.FileSystem.FileType
    fileLikeHSFM.FileSystem.FileType
    FileLikeListHSFM.FileSystem.FileType
    FileLikeOrSymHSFM.FileSystem.FileType
    FileLikeSymHSFM.FileSystem.FileType
    fileLikeSymHSFM.FileSystem.FileType
    fileListStoreHSFM.GUI.Gtk.Utils
    fileModeHSFM.FileSystem.FileType
    FileOperationHSFM.FileSystem.UtilTypes
    fileOwnerHSFM.FileSystem.FileType
    FilePropertyGridHSFM.GUI.Gtk.Data
    fileSizeHSFM.FileSystem.FileType
    filteredModelHSFM.GUI.Gtk.Data
    FMIconViewHSFM.GUI.Gtk.Data
    FMoveHSFM.FileSystem.UtilTypes
    FMSettingsHSFM.GUI.Gtk.Data
    FMTreeViewHSFM.GUI.Gtk.Data
    FMViewHSFM.GUI.Gtk.Data
    fmViewToContainerHSFM.GUI.Gtk.Data
    FOpenHSFM.FileSystem.UtilTypes
    forwardHistoryHSFM.History
    forwardViewBHSFM.GUI.Gtk.Data
    fpropHSFM.GUI.Gtk.Data
    fpropAcEntryHSFM.GUI.Gtk.Data
    fpropFnEntryHSFM.GUI.Gtk.Data
    fpropFTEntryHSFM.GUI.Gtk.Data
    fpropGridHSFM.GUI.Gtk.Data
    fpropLDEntryHSFM.GUI.Gtk.Data
    fpropLocEntryHSFM.GUI.Gtk.Data
    fpropModEntryHSFM.GUI.Gtk.Data
    fpropPermEntryHSFM.GUI.Gtk.Data
    fpropTsEntryHSFM.GUI.Gtk.Data
    fvarHSFM.FileSystem.FileType
    getBinDirPaths_hsfm
    getContentsHSFM.FileSystem.FileType
    getCurrentDirHSFM.GUI.Gtk.Utils
    getDataDirPaths_hsfm
    getDataFileNamePaths_hsfm
    getFileInfoHSFM.FileSystem.FileType
    getFirstItemHSFM.GUI.Gtk.Utils
    getFPasStrHSFM.FileSystem.FileType
    getIconHSFM.GUI.Gtk.Icons
    getLibDirPaths_hsfm
    getLibexecDirPaths_hsfm
    getSelectedItemsHSFM.GUI.Gtk.Utils
    getSelectedTreePathsHSFM.GUI.Gtk.Utils
    getSymlinkIconHSFM.GUI.Gtk.Icons
    getSysconfDirPaths_hsfm
    goDirHSFM.GUI.Gtk.Callbacks.Utils
    goHistoryBackHSFM.GUI.Gtk.Callbacks
    goHistoryForwardHSFM.GUI.Gtk.Callbacks
    goHomeHSFM.GUI.Gtk.Callbacks
    goUpHSFM.FileSystem.FileType
    goUp'HSFM.FileSystem.FileType
    GtkExceptionHSFM.GUI.Gtk.Errors
    GtkIconHSFM.GUI.Gtk.Icons
    historyHSFM.GUI.Gtk.Data
    historyBackHSFM.History
    HistoryBackKeyHSFM.GUI.Gtk.Settings
    HistoryBackModifierHSFM.GUI.Gtk.Settings
    historyForwardHSFM.History
    HistoryForwardKeyHSFM.GUI.Gtk.Settings
    HistoryForwardModifierHSFM.GUI.Gtk.Settings
    historyNewPathHSFM.History
    homeHSFM.Settings
    homeViewBHSFM.GUI.Gtk.Data
    iconSizeHSFM.GUI.Gtk.Data
    IErrorHSFM.GUI.Gtk.Icons
    IFileHSFM.GUI.Gtk.Icons
    IFolderHSFM.GUI.Gtk.Icons
    inotifyHSFM.GUI.Gtk.Data
    insertPosHSFM.GUI.Gtk.Plugins
    isBlockCHSFM.FileSystem.FileType
    isBrokenSymlinkHSFM.FileSystem.FileType
    isCharCHSFM.FileSystem.FileType
    isDirCHSFM.FileSystem.FileType
    isFileCHSFM.FileSystem.FileType
    isLazyHSFM.GUI.Gtk.Data
    isNamedCHSFM.FileSystem.FileType
    isSocketCHSFM.FileSystem.FileType
    isSymCHSFM.FileSystem.FileType
    ItemHSFM.GUI.Gtk.Data
    linkCountHSFM.FileSystem.FileType
    listIndicesHSFM.Utils.MyPrelude
    mainMain
    maxSizeHSFM.History
    MenuBarHSFM.GUI.Gtk.Data
    menubarHSFM.GUI.Gtk.Data
    menubarFileQuitHSFM.GUI.Gtk.Data
    menubarHelpAboutHSFM.GUI.Gtk.Data
    MkFilePropertyGridHSFM.GUI.Gtk.Data
    MkFMSettingsHSFM.GUI.Gtk.Data
    mkHistoryMenuBHSFM.GUI.Gtk.Callbacks
    mkHistoryMenuFHSFM.GUI.Gtk.Callbacks
    MkMenuBarHSFM.GUI.Gtk.Data
    MkMyGUIHSFM.GUI.Gtk.Data
    MkMyViewHSFM.GUI.Gtk.Data
    MkRightClickMenuHSFM.GUI.Gtk.Data
    modificationTimeHSFM.FileSystem.FileType
    modificationTimeHiResHSFM.FileSystem.FileType
    modifyTVarIOHSFM.Utils.IO
    Move 
    1 (Type/Class)HSFM.FileSystem.UtilTypes
    2 (Data Constructor)HSFM.FileSystem.UtilTypes
    moveInitHSFM.GUI.Gtk.Callbacks
    MoveKeyHSFM.GUI.Gtk.Settings
    MoveModifierHSFM.GUI.Gtk.Settings
    MyGUIHSFM.GUI.Gtk.Data
    mypluginsHSFM.GUI.Gtk.Plugins
    MyViewHSFM.GUI.Gtk.Data
    NamedPipeHSFM.FileSystem.FileType
    newDirHSFM.GUI.Gtk.Callbacks
    newFileHSFM.GUI.Gtk.Callbacks
    newTabHSFM.GUI.Gtk.MyView
    newTab'HSFM.GUI.Gtk.Callbacks
    NewTabKeyHSFM.GUI.Gtk.Settings
    NewTabModifierHSFM.GUI.Gtk.Settings
    NoneHSFM.FileSystem.UtilTypes
    noNullPtrsHSFM.GUI.Glib.GlibString
    notebookHSFM.GUI.Gtk.Data
    opeInNewTabHSFM.GUI.Gtk.Callbacks
    openHSFM.GUI.Gtk.Callbacks
    OpenKeyHSFM.GUI.Gtk.Settings
    OpenModifierHSFM.GUI.Gtk.Settings
    openTerminalHereHSFM.GUI.Gtk.Callbacks
    OpenTerminalKeyHSFM.GUI.Gtk.Settings
    OpenTerminalModifierHSFM.GUI.Gtk.Settings
    operationBufferHSFM.GUI.Gtk.Data
    operationFinalHSFM.GUI.Gtk.Callbacks
    OverwriteHSFM.FileSystem.UtilTypes
    OverwriteAllHSFM.FileSystem.UtilTypes
    packAccessTimeHSFM.FileSystem.FileType
    packFileTypeHSFM.FileSystem.FileType
    packLinkDestinationHSFM.FileSystem.FileType
    packModTimeHSFM.FileSystem.FileType
    packPermissionsHSFM.FileSystem.FileType
    PartialCopyHSFM.FileSystem.UtilTypes
    PartialMoveHSFM.FileSystem.UtilTypes
    PasteKeyHSFM.GUI.Gtk.Settings
    PasteModifierHSFM.GUI.Gtk.Settings
    pathHSFM.FileSystem.FileType
    popStatusbarHSFM.GUI.Gtk.Utils
    pushStatusBarHSFM.GUI.Gtk.Utils
    QuitKeyHSFM.GUI.Gtk.Settings
    QuitModifierHSFM.GUI.Gtk.Settings
    rawdestHSFM.FileSystem.FileType
    rawModelHSFM.GUI.Gtk.Data
    rawPathToItemHSFM.GUI.Gtk.Utils
    rawPathToIterHSFM.GUI.Gtk.Utils
    rcFileCopyHSFM.GUI.Gtk.Data
    rcFileCutHSFM.GUI.Gtk.Data
    rcFileDeleteHSFM.GUI.Gtk.Data
    rcFileExecuteHSFM.GUI.Gtk.Data
    rcFileIconViewHSFM.GUI.Gtk.Data
    rcFileNewDirHSFM.GUI.Gtk.Data
    rcFileNewRegFileHSFM.GUI.Gtk.Data
    rcFileNewTabHSFM.GUI.Gtk.Data
    rcFileNewTermHSFM.GUI.Gtk.Data
    rcFileOpenHSFM.GUI.Gtk.Data
    rcFilePasteHSFM.GUI.Gtk.Data
    rcFilePropertyHSFM.GUI.Gtk.Data
    rcFileRenameHSFM.GUI.Gtk.Data
    rcFileTreeViewHSFM.GUI.Gtk.Data
    rcMenuHSFM.GUI.Gtk.Data
    readDirectoryContentsHSFM.FileSystem.FileType
    readFileHSFM.FileSystem.FileType
    refreshViewHSFM.GUI.Gtk.MyView
    refreshViewBHSFM.GUI.Gtk.Data
    RegFileHSFM.FileSystem.FileType
    RenameHSFM.FileSystem.UtilTypes
    renameDialogHSFM.GUI.Gtk.Dialogs
    renameFHSFM.GUI.Gtk.Callbacks
    RightClickMenuHSFM.GUI.Gtk.Data
    rootWinHSFM.GUI.Gtk.Data
    scrollHSFM.GUI.Gtk.Data
    sdestHSFM.FileSystem.FileType
    sdirHSFM.FileSystem.FileType
    setGUICallbacksHSFM.GUI.Gtk.Callbacks
    settingsHSFM.GUI.Gtk.Data
    setViewCallbacksHSFM.GUI.Gtk.Callbacks
    sfileLikeHSFM.FileSystem.FileType
    showAboutDialogHSFM.GUI.Gtk.Dialogs
    showConfirmationDialogHSFM.GUI.Gtk.Dialogs
    showErrorDialogHSFM.GUI.Gtk.Dialogs
    showFilePropertyDialogHSFM.GUI.Gtk.Dialogs
    showHiddenHSFM.GUI.Gtk.Data
    ShowHiddenKeyHSFM.GUI.Gtk.Settings
    ShowHiddenModifierHSFM.GUI.Gtk.Settings
    showPopupHSFM.GUI.Gtk.Callbacks
    SkipHSFM.FileSystem.UtilTypes
    SocketHSFM.FileSystem.FileType
    sortedModelHSFM.GUI.Gtk.Data
    specialDeviceIDHSFM.FileSystem.FileType
    statusBarHSFM.GUI.Gtk.Data
    statusChangeTimeHSFM.FileSystem.FileType
    statusChangeTimeHiResHSFM.FileSystem.FileType
    StrictHSFM.FileSystem.UtilTypes
    switchViewHSFM.GUI.Gtk.MyView
    SymLHSFM.GUI.Gtk.Icons
    SymLinkHSFM.FileSystem.FileType
    terminalCommandHSFM.Settings
    textInputDialogHSFM.GUI.Gtk.Dialogs
    UnknownDialogButtonHSFM.GUI.Gtk.Errors
    upDirHSFM.GUI.Gtk.Callbacks
    UpDirKeyHSFM.GUI.Gtk.Settings
    UpDirModifierHSFM.GUI.Gtk.Settings
    upViewBHSFM.GUI.Gtk.Data
    urlBarHSFM.GUI.Gtk.Data
    urlGoToHSFM.GUI.Gtk.Callbacks
    versionPaths_hsfm
    viewHSFM.GUI.Gtk.Data
    viewBoxHSFM.GUI.Gtk.Data
    withConfirmationDialogHSFM.GUI.Gtk.Dialogs
    withErrorDialogHSFM.GUI.Gtk.Dialogs
    withItemsHSFM.GUI.Gtk.Utils
    writeTVarIOHSFM.Utils.IO
    _doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
    \ No newline at end of file diff --git a/doc-index-F.html b/doc-index-F.html index aae3953..0a33d9b 100644 --- a/doc-index-F.html +++ b/doc-index-F.html @@ -1,4 +1,4 @@ hsfm-gtk (Index - F)

    hsfm-gtk

    \ No newline at end of file +

    hsfm-gtk

    \ No newline at end of file diff --git a/doc-index-G.html b/doc-index-G.html index bc770ca..2d0ab75 100644 --- a/doc-index-G.html +++ b/doc-index-G.html @@ -1,4 +1,4 @@ hsfm-gtk (Index - G)

    hsfm-gtk

    \ No newline at end of file +

    hsfm-gtk

    \ No newline at end of file diff --git a/doc-index-M.html b/doc-index-M.html index a9caf93..9164e20 100644 --- a/doc-index-M.html +++ b/doc-index-M.html @@ -1,4 +1,4 @@ hsfm-gtk (Index - M)

    hsfm-gtk

    \ No newline at end of file +

    hsfm-gtk

    \ No newline at end of file diff --git a/hsfm.haddock b/hsfm.haddock index e63e06161ee675678868af6393acd696231b55cd..438aa29d29d74775b6b0c1cc3e74466bf27e1599 100644 GIT binary patch delta 4435 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 HqwW3!;v=W* diff --git a/mini_HSFM-FileSystem-FileType.html b/mini_HSFM-FileSystem-FileType.html index d861eee..82e0ed9 100644 --- a/mini_HSFM-FileSystem-FileType.html +++ b/mini_HSFM-FileSystem-FileType.html @@ -1,4 +1,4 @@ HSFM.FileSystem.FileType

    HSFM.FileSystem.FileType

    \ No newline at end of file +

    HSFM.FileSystem.FileType

    \ No newline at end of file diff --git a/mini_HSFM-Utils-MyPrelude.html b/mini_HSFM-Utils-MyPrelude.html index c04642c..670b436 100644 --- a/mini_HSFM-Utils-MyPrelude.html +++ b/mini_HSFM-Utils-MyPrelude.html @@ -1,4 +1,4 @@ HSFM.Utils.MyPrelude

    HSFM.Utils.MyPrelude

    \ No newline at end of file +

    HSFM.Utils.MyPrelude

    \ No newline at end of file diff --git a/src/HSFM-GUI-Gtk-Dialogs.html b/src/HSFM-GUI-Gtk-Dialogs.html index 66c4012..dd22dd5 100644 --- a/src/HSFM-GUI-Gtk-Dialogs.html +++ b/src/HSFM-GUI-Gtk-Dialogs.html @@ -284,7 +284,7 @@ entrySetText (fpropFnEntry fprop') (maybe BS.empty P.fromRel $ P.basename . path $ item) entrySetText (fpropLocEntry fprop') (P.fromAbs . P.dirname . path $ item) - entrySetText (fpropTsEntry fprop') (fromFreeVar (show . fileSize) item) + entrySetText (fpropTsEntry fprop') (show . fileSize $ fvar item) entrySetText (fpropModEntry fprop') (packModTime item) entrySetText (fpropAcEntry fprop') (packAccessTime item) entrySetText (fpropFTEntry fprop') (packFileType item) diff --git a/src/HSFM-GUI-Gtk-MyView.html b/src/HSFM-GUI-Gtk-MyView.html index c211907..0f73658 100644 --- a/src/HSFM-GUI-Gtk-MyView.html +++ b/src/HSFM-GUI-Gtk-MyView.html @@ -72,401 +72,370 @@ import HSFM.GUI.Glib.GlibString() import HSFM.GUI.Gtk.Data import HSFM.GUI.Gtk.Icons -import HSFM.GUI.Gtk.Plugins -import HSFM.GUI.Gtk.Utils -import HSFM.History -import HSFM.Utils.IO -import Paths_hsfm - ( - getDataFileName - ) -import Prelude hiding(readFile) -import System.INotify - ( - addWatch - , initINotify - , killINotify - , EventVariety(..) - ) -import System.IO.Error - ( - catchIOError - , ioError - , isUserError - ) -import System.Posix.FilePath - ( - hiddenFile - ) +import HSFM.GUI.Gtk.Utils +import HSFM.History +import HSFM.Utils.IO +import Paths_hsfm + ( + getDataFileName + ) +import Prelude hiding(readFile) +import System.INotify + ( + addWatch + , initINotify + , killINotify + , EventVariety(..) + ) +import System.IO.Error + ( + catchIOError + , ioError + , isUserError + ) +import System.Posix.FilePath + ( + hiddenFile + ) + - --- |Creates a new tab with its own view and refreshes the view. -newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView -newTab mygui iofmv item pos = do +-- |Creates a new tab with its own view and refreshes the view. +newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView +newTab mygui iofmv item pos = do + - - -- create eventbox with label - label <- labelNewWithMnemonic - (maybe (P.fromAbs $ path item) P.fromRel $ P.basename $ path item) - ebox <- eventBoxNew - eventBoxSetVisibleWindow ebox False - containerAdd ebox label - widgetShowAll label - - myview <- createMyView mygui iofmv - _ <- notebookInsertPageMenu (notebook mygui) (viewBox myview) - ebox ebox pos - - -- set initial history - let historySize = 5 - putMVar (history myview) - (BrowsingHistory [] (path item) [] historySize) - - notebookSetTabReorderable (notebook mygui) (viewBox myview) True - - catchIOError (refreshView mygui myview item) $ \e -> do - file <- readFile getFileInfo . fromJust . P.parseAbs . fromString - $ "/" - refreshView mygui myview file - labelSetText label (fromString "/" :: String) - unless (isUserError e) (ioError e) - - -- close callback - _ <- ebox `on` buttonPressEvent $ do - eb <- eventButton - case eb of - MiddleButton -> liftIO $ do - n <- notebookGetNPages (notebook mygui) - when (n > 1) $ void $ destroyView mygui myview - return True - _ -> return False - - return myview + -- create eventbox with label + label <- labelNewWithMnemonic + (maybe (P.fromAbs $ path item) P.fromRel $ P.basename $ path item) + ebox <- eventBoxNew + eventBoxSetVisibleWindow ebox False + containerAdd ebox label + widgetShowAll label + + myview <- createMyView mygui iofmv + _ <- notebookInsertPageMenu (notebook mygui) (viewBox myview) + ebox ebox pos + + -- set initial history + let historySize = 5 + putMVar (history myview) + (BrowsingHistory [] (path item) [] historySize) + + notebookSetTabReorderable (notebook mygui) (viewBox myview) True + + catchIOError (refreshView mygui myview item) $ \e -> do + file <- readFile getFileInfo . fromJust . P.parseAbs . fromString + $ "/" + refreshView mygui myview file + labelSetText label (fromString "/" :: String) + unless (isUserError e) (ioError e) + + -- close callback + _ <- ebox `on` buttonPressEvent $ do + eb <- eventButton + case eb of + MiddleButton -> liftIO $ do + n <- notebookGetNPages (notebook mygui) + when (n > 1) $ void $ destroyView mygui myview + return True + _ -> return False + + return myview + - --- |Constructs the initial MyView object with a few dummy models. --- It also initializes the callbacks. -createMyView :: MyGUI - -> IO FMView - -> IO MyView -createMyView mygui iofmv = do - inotify <- newEmptyMVar - history <- newEmptyMVar - - builder <- builderNew - builderAddFromFile builder =<< getDataFileName "data/Gtk/builder.xml" - - -- create dummy models, so we don't have to use MVar - rawModel <- newTVarIO =<< listStoreNew [] - filteredModel <- newTVarIO =<< (\x -> treeModelFilterNew x []) - =<< readTVarIO rawModel - sortedModel <- newTVarIO =<< treeModelSortNewWithModel - =<< readTVarIO filteredModel - cwd <- newEmptyMVar - view' <- iofmv - view <- newTVarIO view' - - urlBar <- builderGetObject builder castToEntry - "urlBar" - rcMenu <- builderGetObject builder castToMenu - "rcMenu" - rcFileOpen <- builderGetObject builder castToImageMenuItem - "rcFileOpen" - rcFileExecute <- builderGetObject builder castToImageMenuItem - "rcFileExecute" - rcFileNewRegFile <- builderGetObject builder castToImageMenuItem - "rcFileNewRegFile" - rcFileNewDir <- builderGetObject builder castToImageMenuItem - "rcFileNewDir" - rcFileNewTab <- builderGetObject builder castToImageMenuItem - "rcFileNewTab" - rcFileNewTerm <- builderGetObject builder castToImageMenuItem - "rcFileNewTerm" - rcFileCut <- builderGetObject builder castToImageMenuItem - "rcFileCut" - rcFileCopy <- builderGetObject builder castToImageMenuItem - "rcFileCopy" - rcFileRename <- builderGetObject builder castToImageMenuItem - "rcFileRename" - rcFilePaste <- builderGetObject builder castToImageMenuItem - "rcFilePaste" - rcFileDelete <- builderGetObject builder castToImageMenuItem - "rcFileDelete" - rcFileProperty <- builderGetObject builder castToImageMenuItem - "rcFileProperty" - rcFileIconView <- builderGetObject builder castToImageMenuItem - "rcFileIconView" - rcFileTreeView <- builderGetObject builder castToImageMenuItem - "rcFileTreeView" - backViewB <- builderGetObject builder castToButton - "backViewB" - upViewB <- builderGetObject builder castToButton - "upViewB" - forwardViewB <- builderGetObject builder castToButton - "forwardViewB" - homeViewB <- builderGetObject builder castToButton - "homeViewB" - refreshViewB <- builderGetObject builder castToButton - "refreshViewB" - scroll <- builderGetObject builder castToScrolledWindow - "mainScroll" - viewBox <- builderGetObject builder castToBox - "viewBox" +-- |Constructs the initial MyView object with a few dummy models. +-- It also initializes the callbacks. +createMyView :: MyGUI + -> IO FMView + -> IO MyView +createMyView mygui iofmv = do + inotify <- newEmptyMVar + history <- newEmptyMVar + + builder <- builderNew + builderAddFromFile builder =<< getDataFileName "data/Gtk/builder.xml" + + -- create dummy models, so we don't have to use MVar + rawModel <- newTVarIO =<< listStoreNew [] + filteredModel <- newTVarIO =<< (\x -> treeModelFilterNew x []) + =<< readTVarIO rawModel + sortedModel <- newTVarIO =<< treeModelSortNewWithModel + =<< readTVarIO filteredModel + cwd <- newEmptyMVar + view' <- iofmv + view <- newTVarIO view' + + urlBar <- builderGetObject builder castToEntry + "urlBar" + + backViewB <- builderGetObject builder castToButton + "backViewB" + upViewB <- builderGetObject builder castToButton + "upViewB" + forwardViewB <- builderGetObject builder castToButton + "forwardViewB" + homeViewB <- builderGetObject builder castToButton + "homeViewB" + refreshViewB <- builderGetObject builder castToButton + "refreshViewB" + scroll <- builderGetObject builder castToScrolledWindow + "mainScroll" + viewBox <- builderGetObject builder castToBox + "viewBox" + + let myview = MkMyView {..} + + -- set the bindings + setViewCallbacks mygui myview + + -- add the treeview to the scroll container + let oview = fmViewToContainer view' + containerAdd scroll oview + + widgetShowAll viewBox + + return myview + + +-- |Switch the existing view in `MyView` with the one that the +-- io action returns. +switchView :: MyGUI -> MyView -> IO FMView -> IO () +switchView mygui myview iofmv = do + cwd <- getCurrentDir myview + + oldpage <- destroyView mygui myview + + -- create new view and tab page where the previous one was + nview <- newTab mygui iofmv cwd oldpage + + page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox nview) + notebookSetCurrentPage (notebook mygui) page + + refreshView mygui nview cwd - let rcmenu = MkRightClickMenu {..} - let myview = MkMyView {..} - - -- set the bindings - setViewCallbacks mygui myview - - -- add the treeview to the scroll container - let oview = fmViewToContainer view' - containerAdd scroll oview - - widgetShowAll viewBox - - return myview + +-- |Destroys the given view by disconnecting the watcher +-- and destroying the active FMView container. +-- +-- Everything that needs to be done in order to forget about a +-- view needs to be done here. +-- +-- Returns the page in the tab list this view corresponds to. +destroyView :: MyGUI -> MyView -> IO Int +destroyView mygui myview = do + -- disconnect watcher + mi <- tryTakeMVar (inotify myview) + for_ mi $ \i -> killINotify i - --- |Switch the existing view in `MyView` with the one that the --- io action returns. -switchView :: MyGUI -> MyView -> IO FMView -> IO () -switchView mygui myview iofmv = do - cwd <- getCurrentDir myview + page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox myview) + + -- destroy old view and tab page + view' <- readTVarIO $ view myview + widgetDestroy (fmViewToContainer view') + notebookRemovePage (notebook mygui) page - oldpage <- destroyView mygui myview + return page - -- create new view and tab page where the previous one was - nview <- newTab mygui iofmv cwd oldpage - - page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox nview) - notebookSetCurrentPage (notebook mygui) page - - refreshView mygui nview cwd - - --- |Destroys the given view by disconnecting the watcher --- and destroying the active FMView container. --- --- Everything that needs to be done in order to forget about a --- view needs to be done here. --- --- Returns the page in the tab list this view corresponds to. -destroyView :: MyGUI -> MyView -> IO Int -destroyView mygui myview = do - -- disconnect watcher - mi <- tryTakeMVar (inotify myview) - for_ mi $ \i -> killINotify i - - page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox myview) + +-- |Createss an IconView. +createIconView :: IO FMView +createIconView = do + iconv <- iconViewNew + iconViewSetSelectionMode iconv SelectionMultiple + iconViewSetColumns iconv (-1) + iconViewSetSpacing iconv 2 + iconViewSetMargin iconv 0 + {- set iconv [ iconViewItemOrientation := OrientationHorizontal ] -} + {- set iconv [ iconViewOrientation := OrientationHorizontal ] -} + + return $ FMIconView iconv + + +-- |Creates a TreeView. +createTreeView :: IO FMView +createTreeView = do + -- create the final view + treeView <- treeViewNew + -- set selection mode + tvs <- treeViewGetSelection treeView + treeSelectionSetMode tvs SelectionMultiple - -- destroy old view and tab page - view' <- readTVarIO $ view myview - widgetDestroy (fmViewToContainer view') - notebookRemovePage (notebook mygui) page - - return page + -- set drag and drop + tl <- targetListNew + atom <- atomNew ("HSFM" :: String) + targetListAdd tl atom [TargetSameApp] 0 + treeViewEnableModelDragDest treeView tl [ActionCopy] + treeViewEnableModelDragSource treeView [Button1] tl [ActionCopy] - --- |Createss an IconView. -createIconView :: IO FMView -createIconView = do - iconv <- iconViewNew - iconViewSetSelectionMode iconv SelectionMultiple - iconViewSetColumns iconv (-1) - iconViewSetSpacing iconv 2 - iconViewSetMargin iconv 0 - {- set iconv [ iconViewItemOrientation := OrientationHorizontal ] -} - {- set iconv [ iconViewOrientation := OrientationHorizontal ] -} - - return $ FMIconView iconv - - --- |Creates a TreeView. -createTreeView :: IO FMView -createTreeView = do - -- create the final view - treeView <- treeViewNew - -- set selection mode - tvs <- treeViewGetSelection treeView - treeSelectionSetMode tvs SelectionMultiple - - -- set drag and drop - tl <- targetListNew - atom <- atomNew ("HSFM" :: String) - targetListAdd tl atom [TargetSameApp] 0 - treeViewEnableModelDragDest treeView tl [ActionCopy] - treeViewEnableModelDragSource treeView [Button1] tl [ActionCopy] - - -- create final tree model columns - renderTxt <- cellRendererTextNew - renderPix <- cellRendererPixbufNew - let ct = cellText :: (CellRendererTextClass cr) => Attr cr String - cp = cellPixbuf :: (CellRendererPixbufClass self) => Attr self Pixbuf - - -- filename column - cF <- treeViewColumnNew - treeViewColumnSetTitle cF ("Filename" :: String) - treeViewColumnSetResizable cF True - treeViewColumnSetClickable cF True - treeViewColumnSetSortColumnId cF 1 - cellLayoutPackStart cF renderPix False - cellLayoutPackStart cF renderTxt True - _ <- treeViewAppendColumn treeView cF - cellLayoutAddColumnAttribute cF renderPix cp $ makeColumnIdPixbuf 0 - cellLayoutAddColumnAttribute cF renderTxt ct $ makeColumnIdString 1 - - -- date column - cMD <- treeViewColumnNew - treeViewColumnSetTitle cMD ("Date" :: String) - treeViewColumnSetResizable cMD True - treeViewColumnSetClickable cMD True - treeViewColumnSetSortColumnId cMD 2 - cellLayoutPackStart cMD renderTxt True - _ <- treeViewAppendColumn treeView cMD - cellLayoutAddColumnAttribute cMD renderTxt ct $ makeColumnIdString 2 - - -- permissions column - cP <- treeViewColumnNew - treeViewColumnSetTitle cP ("Permission" :: String) - treeViewColumnSetResizable cP True - treeViewColumnSetClickable cP True - treeViewColumnSetSortColumnId cP 3 - cellLayoutPackStart cP renderTxt True - _ <- treeViewAppendColumn treeView cP - cellLayoutAddColumnAttribute cP renderTxt ct $ makeColumnIdString 3 - - return $ FMTreeView treeView - - --- |Refreshes the View based on the given directory. --- --- Throws: --- --- - `userError` on inappropriate type -refreshView :: MyGUI - -> MyView - -> Item - -> IO () -refreshView mygui myview SymLink { sdest = Just d@Dir{} } = - refreshView mygui myview d -refreshView mygui myview item@Dir{} = do - newRawModel <- fileListStore item myview - writeTVarIO (rawModel myview) newRawModel - - view' <- readTVarIO $ view myview + -- create final tree model columns + renderTxt <- cellRendererTextNew + renderPix <- cellRendererPixbufNew + let ct = cellText :: (CellRendererTextClass cr) => Attr cr String + cp = cellPixbuf :: (CellRendererPixbufClass self) => Attr self Pixbuf + + -- filename column + cF <- treeViewColumnNew + treeViewColumnSetTitle cF ("Filename" :: String) + treeViewColumnSetResizable cF True + treeViewColumnSetClickable cF True + treeViewColumnSetSortColumnId cF 1 + cellLayoutPackStart cF renderPix False + cellLayoutPackStart cF renderTxt True + _ <- treeViewAppendColumn treeView cF + cellLayoutAddColumnAttribute cF renderPix cp $ makeColumnIdPixbuf 0 + cellLayoutAddColumnAttribute cF renderTxt ct $ makeColumnIdString 1 + + -- date column + cMD <- treeViewColumnNew + treeViewColumnSetTitle cMD ("Date" :: String) + treeViewColumnSetResizable cMD True + treeViewColumnSetClickable cMD True + treeViewColumnSetSortColumnId cMD 2 + cellLayoutPackStart cMD renderTxt True + _ <- treeViewAppendColumn treeView cMD + cellLayoutAddColumnAttribute cMD renderTxt ct $ makeColumnIdString 2 + + -- permissions column + cP <- treeViewColumnNew + treeViewColumnSetTitle cP ("Permission" :: String) + treeViewColumnSetResizable cP True + treeViewColumnSetClickable cP True + treeViewColumnSetSortColumnId cP 3 + cellLayoutPackStart cP renderTxt True + _ <- treeViewAppendColumn treeView cP + cellLayoutAddColumnAttribute cP renderTxt ct $ makeColumnIdString 3 + + return $ FMTreeView treeView + + +-- |Refreshes the View based on the given directory. +-- +-- Throws: +-- +-- - `userError` on inappropriate type +refreshView :: MyGUI + -> MyView + -> Item + -> IO () +refreshView mygui myview SymLink { sdest = Just d@Dir{} } = + refreshView mygui myview d +refreshView mygui myview item@Dir{} = do + newRawModel <- fileListStore item myview + writeTVarIO (rawModel myview) newRawModel + + view' <- readTVarIO $ view myview + + _ <- tryTakeMVar (cwd myview) + putMVar (cwd myview) item + + -- get selected items + tps <- getSelectedTreePaths mygui myview + trs <- catMaybes <$> mapM (treeRowReferenceNew newRawModel) tps + + constructView mygui myview + + -- reselect selected items + -- TODO: not implemented for icon view yet + case view' of + FMTreeView treeView -> do + tvs <- treeViewGetSelection treeView + ntps <- mapM treeRowReferenceGetPath trs + mapM_ (treeSelectionSelectPath tvs) ntps + _ -> return () +refreshView _ _ _ = ioError $ userError "Inappropriate type!" + + +-- |Constructs the visible View with the current underlying mutable models, +-- which are retrieved from 'MyGUI'. +-- +-- This sort of merges the components mygui and myview and fires up +-- the actual models. +constructView :: MyGUI + -> MyView + -> IO () +constructView mygui myview = do + settings' <- readTVarIO $ settings mygui - _ <- tryTakeMVar (cwd myview) - putMVar (cwd myview) item - - -- get selected items - tps <- getSelectedTreePaths mygui myview - trs <- catMaybes <$> mapM (treeRowReferenceNew newRawModel) tps - - constructView mygui myview - - -- reselect selected items - -- TODO: not implemented for icon view yet - case view' of - FMTreeView treeView -> do - tvs <- treeViewGetSelection treeView - ntps <- mapM treeRowReferenceGetPath trs - mapM_ (treeSelectionSelectPath tvs) ntps - _ -> return () -refreshView _ _ _ = ioError $ userError "Inappropriate type!" - + -- pix stuff + iT <- iconThemeGetDefault + folderPix <- getIcon IFolder iT (iconSize settings') + folderSymPix <- getSymlinkIcon IFolder iT (iconSize settings') + filePix <- getIcon IFile iT (iconSize settings') + fileSymPix <- getSymlinkIcon IFile iT (iconSize settings') + errorPix <- getIcon IError iT (iconSize settings') + let dirtreePix Dir{} = folderPix + dirtreePix FileLike{} = filePix + dirtreePix DirSym{} = folderSymPix + dirtreePix FileLikeSym{} = fileSymPix + dirtreePix BrokenSymlink{} = errorPix + dirtreePix _ = errorPix + + + view' <- readTVarIO $ view myview + + cdir <- getCurrentDir myview + let cdirp = path cdir --- |Constructs the visible View with the current underlying mutable models, --- which are retrieved from 'MyGUI'. --- --- This sort of merges the components mygui and myview and fires up --- the actual models. -constructView :: MyGUI - -> MyView - -> IO () -constructView mygui myview = do - settings' <- readTVarIO $ settings mygui - - -- pix stuff - iT <- iconThemeGetDefault - folderPix <- getIcon IFolder iT (iconSize settings') - folderSymPix <- getSymlinkIcon IFolder iT (iconSize settings') - filePix <- getIcon IFile iT (iconSize settings') - fileSymPix <- getSymlinkIcon IFile iT (iconSize settings') - errorPix <- getIcon IError iT (iconSize settings') - let dirtreePix Dir{} = folderPix - dirtreePix FileLike{} = filePix - dirtreePix DirSym{} = folderSymPix - dirtreePix FileLikeSym{} = fileSymPix - dirtreePix BrokenSymlink{} = errorPix - dirtreePix _ = errorPix - + -- update urlBar + entrySetText (urlBar myview) (P.fromAbs cdirp) + + rawModel' <- readTVarIO $ rawModel myview + + -- filtering + filteredModel' <- treeModelFilterNew rawModel' [] + writeTVarIO (filteredModel myview) filteredModel' + treeModelFilterSetVisibleFunc filteredModel' $ \iter -> do + hidden <- showHidden <$> readTVarIO (settings mygui) + item <- treeModelGetRow rawModel' iter >>= (P.basename . path) + if hidden + then return True + else return . not . hiddenFile . P.fromRel $ item + + -- sorting + sortedModel' <- treeModelSortNewWithModel filteredModel' + writeTVarIO (sortedModel myview) sortedModel' + treeSortableSetSortFunc sortedModel' 1 $ \iter1 iter2 -> do + cIter1 <- treeModelFilterConvertIterToChildIter filteredModel' iter1 + cIter2 <- treeModelFilterConvertIterToChildIter filteredModel' iter2 + item1 <- treeModelGetRow rawModel' cIter1 + item2 <- treeModelGetRow rawModel' cIter2 + return $ compare item1 item2 + treeSortableSetSortColumnId sortedModel' 1 SortAscending - view' <- readTVarIO $ view myview - - cdir <- getCurrentDir myview - let cdirp = path cdir - - -- update urlBar - entrySetText (urlBar myview) (P.fromAbs cdirp) - - rawModel' <- readTVarIO $ rawModel myview + -- set values + treeModelSetColumn rawModel' (makeColumnIdPixbuf 0) + dirtreePix + treeModelSetColumn rawModel' (makeColumnIdString 1) + (P.toFilePath . fromJust . P.basename . path) + treeModelSetColumn rawModel' (makeColumnIdString 2) + packModTime + treeModelSetColumn rawModel' (makeColumnIdString 3) + packPermissions - -- filtering - filteredModel' <- treeModelFilterNew rawModel' [] - writeTVarIO (filteredModel myview) filteredModel' - treeModelFilterSetVisibleFunc filteredModel' $ \iter -> do - hidden <- showHidden <$> readTVarIO (settings mygui) - item <- treeModelGetRow rawModel' iter >>= (P.basename . path) - if hidden - then return True - else return . not . hiddenFile . P.fromRel $ item - - -- sorting - sortedModel' <- treeModelSortNewWithModel filteredModel' - writeTVarIO (sortedModel myview) sortedModel' - treeSortableSetSortFunc sortedModel' 1 $ \iter1 iter2 -> do - cIter1 <- treeModelFilterConvertIterToChildIter filteredModel' iter1 - cIter2 <- treeModelFilterConvertIterToChildIter filteredModel' iter2 - item1 <- treeModelGetRow rawModel' cIter1 - item2 <- treeModelGetRow rawModel' cIter2 - return $ compare item1 item2 - treeSortableSetSortColumnId sortedModel' 1 SortAscending - - -- set values - treeModelSetColumn rawModel' (makeColumnIdPixbuf 0) - dirtreePix - treeModelSetColumn rawModel' (makeColumnIdString 1) - (P.toFilePath . fromJust . P.basename . path) - treeModelSetColumn rawModel' (makeColumnIdString 2) - packModTime - treeModelSetColumn rawModel' (makeColumnIdString 3) - packPermissions - - -- update model of view - case view' of - FMTreeView treeView -> do - treeViewSetModel treeView sortedModel' - treeViewSetRubberBanding treeView True - FMIconView iconView -> do - iconViewSetModel iconView (Just sortedModel') - iconViewSetPixbufColumn iconView - (makeColumnIdPixbuf 0 :: ColumnId item Pixbuf) - iconViewSetTextColumn iconView - (makeColumnIdString 1 :: ColumnId item String) - - -- add watcher - mi <- tryTakeMVar (inotify myview) - for_ mi $ \i -> killINotify i - newi <- initINotify - _ <- addWatch - newi - [Move, MoveIn, MoveOut, MoveSelf, Create, Delete, DeleteSelf] - (P.fromAbs cdirp) - (\_ -> postGUIAsync $ refreshView mygui myview cdir) - putMVar (inotify myview) newi - - return () + -- update model of view + case view' of + FMTreeView treeView -> do + treeViewSetModel treeView sortedModel' + treeViewSetRubberBanding treeView True + FMIconView iconView -> do + iconViewSetModel iconView (Just sortedModel') + iconViewSetPixbufColumn iconView + (makeColumnIdPixbuf 0 :: ColumnId item Pixbuf) + iconViewSetTextColumn iconView + (makeColumnIdString 1 :: ColumnId item String) + + -- add watcher + mi <- tryTakeMVar (inotify myview) + for_ mi $ \i -> killINotify i + newi <- initINotify + _ <- addWatch + newi + [Move, MoveIn, MoveOut, MoveSelf, Create, Delete, DeleteSelf] + (P.fromAbs cdirp) + (\_ -> postGUIAsync $ refreshView mygui myview cdir) + putMVar (inotify myview) newi + + return () diff --git a/src/HSFM-Utils-MyPrelude.html b/src/HSFM-Utils-MyPrelude.html index 02625c3..02e2180 100644 --- a/src/HSFM-Utils-MyPrelude.html +++ b/src/HSFM-Utils-MyPrelude.html @@ -28,20 +28,16 @@ module HSFM.Utils.MyPrelude where -import Data.Default -import Data.List +import Data.List + - --- |Turns any list into a list of the same length with the values --- being the indices. --- E.g.: "abdasd" -> [0,1,2,3,4,5] -listIndices :: [a] -> [Int] -listIndices = findIndices (const True) +-- |Turns any list into a list of the same length with the values +-- being the indices. +-- E.g.: "abdasd" -> [0,1,2,3,4,5] +listIndices :: [a] -> [Int] +listIndices = findIndices (const True) + - --- |A `maybe` flavor using the `Default` class. -maybeD :: (Default b) => (a -> b) -> Maybe a -> b -maybeD = maybe def