All pastes #620846 Raw Edit

Meins

public text v1 · immutable
·published 2007-07-15 19:39 UTC
rendered paste body
        /// <summary>
        /// Refreshs the thumb table view.
        /// </summary>
        /// <param name="state"></param>
        private void RefreshThumbTables( object state )
        {
            // path
            string path = ( string )state;

            // if we not have a path..
            if( String.IsNullOrEmpty( path ) )
            {
                // first we reset the current set
                Invoke( new ClearThumbList( ClearThumbList ) );

                // here we store the gathered file paths
                string[] images = new string[ 0 ];

                // short sleep
                Thread.Sleep( 500 );

                // go through the image locations
                for( int i = 0; i < Configuration.GetReference().ImageLocations.Count; i++ )
                {
                    // get the current path
                    string location = Configuration.GetReference().ImageLocations[ i ];

                    // information about what we scanning
                    Invoke( new SetProgressLabel( SetProgressLabel ), "Scanning " + location );

                    // dirs
                    string[] dirs = new string[ 0 ];

                    // check that the dir really exist
                    if( Directory.Exists( location ) )
                    {
                        // get all image files
                        images = Directory.GetFiles( location, "*.jpg" );

                        // if we should scan recursive do that
                        if( Configuration.GetReference().ScanRecursive )
                        {
                            // get the dirs
                            dirs = Directory.GetDirectories( location );

                            // and make a sub scan
                            for( int z = 0; z < dirs.Length; z++ )
                            {
                                RefreshThumbTables( dirs[ z ] );
                            }
                        }

                        // if we got images..
                        if( images.Length > 0 )
                        {
                            // reset the progressbar
                            Invoke( new ResetProgressBar( ResetProgressBar ) );

                            // setup progressbar steps
                            Invoke( new SetProgressStep( SetProgressStep ), ( 100 / images.Length + 1 + dirs.Length ) );

                            // and merge them to images
                            for( int n = 0; n < images.Length; n++ )
                            {
                                // add a thumb in main thread
                                Invoke( new AddThumb( AddThumb ), images[ n ] ); // <-------

                                // perform a step
                                Invoke( new ProgressBarPerform( ProgressBarPerform ) );
                            }
                        }
                    }
                }