summaryrefslogtreecommitdiff
path: root/shiftos_next/file skimmer.vb
blob: 3e3e7262e96b94b83763c24a74c12eb30e9592ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Public Class file_skimmer

    Public mode As String
    Public application As String 'The application sending either an open or save mode.
    Public currentdir As String = home

    Public Sub setupmenufonts()
        For Each item In topmenu.Items
            item.ForeColor = Color.White
            item.Font = New Font("Courier New", 8.25)
            For Each SubItem In item.DropDownItems
                SubItem.ForeColor = Color.White
                SubItem.font = New Font("Courier New", 8.25)
            Next
        Next
    End Sub

    Public Sub showfiles()
        Dim lv As ListView = lvfiles
        lv.Items.Clear()
        lv.View = View.Tile
        lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
        Dim upone As New ListViewItem
        upone.Text = "Up one"
        lv.Items.Add(upone)
        upone.SubItems.Add("directory")

        For Each dir As String In My.Computer.FileSystem.GetDirectories(currentdir)
            Dim dirinf As New IO.DirectoryInfo(dir)
            Dim lvitem As New ListViewItem
            lvitem.Text = dirinf.Name
            lvitem.Tag = dirinf.FullName
            lv.Items.Add(lvitem)
            lvitem.SubItems.Add("Directory")
            lvitem.SubItems.Add(dirinf.LastAccessTime)

        Next
        For Each file As String In My.Computer.FileSystem.GetFiles(currentdir)
            Dim filinf As New IO.DirectoryInfo(file)
            Dim lvitem As New ListViewItem
            lvitem.Text = filinf.Name
            lvitem.Tag = filinf.FullName
            lv.Items.Add(lvitem)

            lvitem.SubItems.Add(GetFileType(filinf.Extension))
            lvitem.SubItems.Add(filinf.LastAccessTime)
        Next
        lbcurrentdir.Text = currentdir.Replace(root, "~").Replace("\", "/")
    End Sub

    Public Function GetFileType(ext As String)
        Dim FileType As String
        Select Case ext
            Case ".txt"
                FileType = "Text File"
            Case ".pkg"
                FileType = "Application"
            Case ".deb"
                FileType = "Application Installer"
            Case ".sft"
                FileType = "Data File"
            Case ".dri"
                FileType = "Driver"
            Case Else
                FileType = "Unknown File"
        End Select
        Return FileType
    End Function

    Public Sub OpenFile(file As String)
        If IO.Directory.Exists(file) Then
            currentdir = file
            showfiles()
        Else
            Dim filinf As New IO.FileInfo(file)
            Select Case filinf.Extension
                Case Else
                    basicwm_infobox.showinfo("Exodus - File Format not valid", "The format of the file """ & filinf.Name & """ is not a format in which Exodus File Browser can read.")
            End Select
        End If
    End Sub
    Private Sub lvfiles_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lvfiles.DoubleClick
        Try
            If lvfiles.SelectedItems(0).Text = "Up one" Then
                If Not currentdir = root Then
                    currentdir = IO.Directory.GetParent(currentdir).ToString
                    showfiles()
                End If
            Else
                If mode = "open" Then
                    Select Case application
                        Case "textpad"
                            Dim sr As New IO.StreamReader(lvfiles.SelectedItems(0).Tag.ToString)
                            TextPad.txtfilebody.Text = sr.ReadToEnd()
                            sr.Close()
                            Me.Close()
                    End Select
                Else
                    OpenFile(lvfiles.SelectedItems(0).Tag)
                End If
                End If
        Catch
        End Try
    End Sub

    Private Sub file_skimmer_Load(sender As Object, e As EventArgs) Handles Me.Load
        topmenu.Renderer = New basicwm_renderer()
        tools.Renderer = New basicwm_renderer()
        setupmenufonts()
        setupui()
        showfiles()
    End Sub

    Public Sub setupui()
        FolderToolStripMenuItem.Visible = boughtfileskimmernewfolder
        newseperator.Visible = boughtfileskimmernewfolder
        btnnewfolder.Visible = boughtfileskimmernewfolder
        btndelete.Visible = boughtfileskimmerdelete
        If mode = "save" Then
            pnlsave.Visible = True
        Else
            pnlsave.Visible = False
        End If
    End Sub

    Private Sub ExitSessionToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitSessionToolStripMenuItem.Click
        Me.Close()
    End Sub

    Private Sub ProductInfoToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProductInfoToolStripMenuItem.Click
        basicwm_infobox.showinfo("File Skimmer - v1.2", "Browse, edit, move, copy and delete the files on your computer.")
    End Sub



    Private Sub FolderToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FolderToolStripMenuItem.Click, btnnewfolder.Click
        basicwm_infobox.showinfo("Create New Folder", "Please specify a name for your folder.", True)
        If Not IO.Directory.Exists(currentdir & "\" & basicwm_infobox.userinput) Then
            IO.Directory.CreateDirectory(currentdir & "\" & basicwm_infobox.userinput)
        Else
            basicwm_infobox.showinfo("Create New Folder", "The specified folder already exists!")
        End If
        showfiles()
    End Sub

    Private Sub btndelete_Click(sender As Object, e As EventArgs) Handles btndelete.Click
        Try
            If IO.Directory.Exists(lvfiles.SelectedItems(0).Tag) Then
                IO.Directory.Delete(lvfiles.SelectedItems(0).Tag, True)
            ElseIf IO.File.Exists(lvfiles.SelectedItems(0).Tag) Then
                IO.File.Delete(lvfiles.SelectedItems(0).Tag)
            End If
        Catch ex As Exception
            basicwm_infobox.showinfo("Error!", "The following Visual Basic exception has occurred: " & vbNewLine & vbNewLine & ex.Message)
        End Try
    End Sub

    Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click
        If Not txtfilename.Text = "" Then
            If IO.Directory.Exists(currentdir + "\" + txtfilename.Text) Then
                basicwm_infobox.showinfo("Invalid File Name", "You can't save a file ontop of a directory with the same name!")
            Else
                Select Case application
                    Case "textpad"
                        Dim sw As New IO.StreamWriter(currentdir + "\" + txtfilename.Text)
                        sw.Write(TextPad.txtfilebody.Text)
                        sw.Close()
                        Me.Close()
                End Select
            End If
        Else
            basicwm_infobox.showinfo("Invalid File Name", "Please specify a file name, and not leave it blank!")
        End If
    End Sub
End Class