[Mono-list] ListViewItemSorter property for FileDialog to folow .Net functions

Petit Eric surfzoid at gmail.com
Tue Sep 16 18:02:46 EDT 2008


Sorry for that, i'm really newbie and it is my first really patch, i
just did copy/paste the content of the console in the patch file and ,
it doesn't work (UTF8 or something else) so here it is a new one with
: svn diff FileDialog.cs > FileDialog.diff and now it should work.

2008/9/16 Petit Eric <surfzoid at gmail.com>:
> As sayed on IRC, better to attach the patch file.
>
> 2008/9/16 Petit Eric <surfzoid at gmail.com>:
>> Hi
>> i add the listview item comparer for FileDialog, like this in a FSdlg,
>> yu can click to a collumn header (details view) to change the order,
>> like in .NET.
>> a perfect think, should be to add "order by group".
>>
>> At this time, this patch provide similar way as .NET, except for one
>> thing, with .NET that work as it, yu click on the first column header
>> it  order asc and class by the first column item, yu click on the 2th
>> column header, it order asc and class by the 2th clm header.
>> Mine patch, change order asc/desc, each time yu click on a column, it
>> will need to copy paste my method for each column and dont continu to
>> use the same click event void to use my order function/class.
>>
>>
>> [root at SurfzoidPC System.Windows.Forms]# svn diff FileDialog.cs
>> Index: FileDialog.cs
>> ===================================================================
>> --- FileDialog.cs       (révision 113212)
>> +++ FileDialog.cs       (copie de travail)
>> @@ -360,6 +360,9 @@
>>                        mwfFileView.SelectedFileChanged += new
>> EventHandler (OnSelectedFileChangedFileView);
>>                        mwfFileView.ForceDialogEnd += new EventHandler
>> (OnForceDialogEndFileView);
>>                        mwfFileView.SelectedFilesChanged += new
>> EventHandler (OnSelectedFilesChangedFileView);
>> +
>> +                       //Add Column click event for manual sorting. line 379
>> +                       mwfFileView.ColumnClick += new
>> System.Windows.Forms.ColumnClickEventHandler(mwfFileView_ColumnClick);
>>
>>                        dirComboBox.DirectoryChanged += new
>> EventHandler (OnDirectoryChangedDirComboBox);
>>                        popupButtonPanel.DirectoryChanged += new
>> EventHandler (OnDirectoryChangedPopupButtonPanel);
>> @@ -373,6 +376,25 @@
>>  #endif
>>                }
>>
>> +               bool AscDesc = true;
>> +               private void mwfFileView_ColumnClick(object sender,
>> ColumnClickEventArgs e)
>> +               {
>> +                       try
>> +                       {
>> +                               AscDesc = !AscDesc;
>> +
>> +                               // Set the ListViewItemSorter property
>> to a new ListViewItemComparer object.
>> +                               mwfFileView.ListViewItemSorter = new
>> ListViewItemComparer(e.Column, AscDesc);
>> +                               // Call the sort method to manually sort.
>> +                               mwfFileView.Sort();
>> +
>> +                       }
>> +                       catch (Exception ex)
>> +                       {
>> +                               Console.WriteLine(DateTime.Now + ": "
>> + ex.Message + Environment.NewLine + ex.StackTrace);
>> +                       }
>> +               }
>> +
>>                [DefaultValue(true)]
>>                public bool AddExtension {
>>                        get {
>> @@ -2198,6 +2220,41 @@
>>        }
>>        #endregion
>>
>> +       #region ListViewItemComparer Added by surfzoid at gmail.com
>> +    // Implements the manual sorting of items by column.
>> +    class ListViewItemComparer : IComparer
>> +    {
>> +               private int col;
>> +               private bool AscDescInternal;
>> +               public ListViewItemComparer()
>> +               {
>> +                       col = 0;
>> +               }
>> +
>> +               public ListViewItemComparer(int column, bool AscDesc)
>> +               {
>> +                       col = column;
>> +                       AscDescInternal = AscDesc;
>> +               }
>> +               public int Compare(object x, object y)
>> +               {
>> +                       int returnVal = -1;
>> +                       if (AscDescInternal == true)
>> +                       {
>> +                               returnVal =
>> String.Compare(((ListViewItem)x).SubItems[col].Text,
>> +                               ((ListViewItem)y).SubItems[col].Text);
>> +                       }
>> +
>> +                       else
>> +                       {
>> +                               returnVal =
>> String.Compare(((ListViewItem)y).SubItems[col].Text,
>> +                               ((ListViewItem)x).SubItems[col].Text);
>> +                       }
>> +               return returnVal;
>> +               }
>> +       }
>> +    #endregion
>> +
>>        #region MWFFileView
>>
>>        internal class MWFFileView : ListView
>> @@ -2333,14 +2390,14 @@
>>                        columns [1] = CreateColumnHeader ("Size ", 80,
>> HorizontalAlignment.Right);
>>                        columns [2] = CreateColumnHeader (" Type",
>> 100, HorizontalAlignment.Left);
>>                        columns [3] = CreateColumnHeader (" Last
>> Access", 150, HorizontalAlignment.Left);
>> -
>> +
>>                        AllowColumnReorder = true;
>>
>>                        ResumeLayout (false);
>>
>>                        KeyDown += new KeyEventHandler (MWF_KeyDown);
>>                }
>> -
>> +
>>                ColumnHeader CreateColumnHeader (string text, int
>> width, HorizontalAlignment alignment)
>>                {
>>                        ColumnHeader col = new ColumnHeader ();
>>
>>
>> --
>>
>> Cordially.
>>
>> Small Eric Quotations of the days:
>> ---------------------------------------------------------------------------
>> If one day one reproaches you that your work is not a work of
>> professional, say you that:
>> Amateurs built the arch of Noah, and professionals the Titanic.
>> ---------------------------------------------------------------------------
>>
>> Few people are done for independence, it is the privilege of the powerful ones.
>> ---------------------------------------------------------------------------
>>
>> No key was wounded during the drafting of this message.
>>
>
>
>
> --
>
> Cordially.
>
> Small Eric Quotations of the days:
> ---------------------------------------------------------------------------
> If one day one reproaches you that your work is not a work of
> professional, say you that:
> Amateurs built the arch of Noah, and professionals the Titanic.
> ---------------------------------------------------------------------------
>
> Few people are done for independence, it is the privilege of the powerful ones.
> ---------------------------------------------------------------------------
>
> No key was wounded during the drafting of this message.
>



-- 

Cordially.

Small Eric Quotations of the days:
---------------------------------------------------------------------------
If one day one reproaches you that your work is not a work of
professional, say you that:
Amateurs built the arch of Noah, and professionals the Titanic.
---------------------------------------------------------------------------

Few people are done for independence, it is the privilege of the powerful ones.
---------------------------------------------------------------------------

No key was wounded during the drafting of this message.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FileDialog.diff
Type: text/x-diff
Size: 2792 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-list/attachments/20080917/34494da8/attachment.bin 


More information about the Mono-list mailing list