SF.net SVN: mahogany: [7229] trunk/M/src/wx/generic/persctrl.cpp

[email protected]
Newsgroups gmane.mail.mahogany.cvs
Message-ID <[email protected]>
Revision: 7229
          http://svn.sourceforge.net/mahogany/?rev=7229&view=rev
Author:   vadz
Date:     2007-04-03 06:43:17 -0700 (Tue, 03 Apr 2007)

Log Message:
-----------
use wxStringTokenize in wxPListCtrl::RestoreWidths() instead of doing it manually

Modified Paths:
--------------
    trunk/M/src/wx/generic/persctrl.cpp

Modified: trunk/M/src/wx/generic/persctrl.cpp
===================================================================
--- trunk/M/src/wx/generic/persctrl.cpp	2007-04-03 13:42:19 UTC (rev 7228)
+++ trunk/M/src/wx/generic/persctrl.cpp	2007-04-03 13:43:17 UTC (rev 7229)
@@ -838,31 +838,24 @@
         wxString str = m_persist->GetConfig()->Read(m_persist->GetKey());
         if ( !str.empty() )
         {
-            int countCol = GetColumnCount();
-            char *p = (char *)str.c_str();
-            for ( int col = 0; col < countCol; col++ )
+            const wxArrayString widths(wxStringTokenize(str, _T(":")));
+            const size_t count = widths.size();
+            if ( (int)count != GetColumnCount() )
             {
-                if ( wxIsEmpty(p) )
-                    break;
+                wxLogDebug(_T("columns count mismatch"));
+                return;
+            }
 
-                char *end = strchr(p, ':');
-                if ( end )
-                    *end = '\0';    // temporarily truncate
-
-                int width;
-                if ( sscanf(p, "%d", &width) == 1 )
+            for ( size_t n = 0; n < count; n++ )
+            {
+                unsigned long w;
+                if ( !widths[n].ToULong(&w) )
                 {
-                    SetColumnWidth(col, width);
+                    wxLogDebug(_T("corrupted column widths data?"));
+                    continue;
                 }
-                else
-                {
-                    wxFAIL_MSG(_T("wxPListCtrl: corrupted config entry?"));
-                }
 
-                if ( !end )
-                    break;
-
-                p = end + 1;
+                SetColumnWidth(n, w);
             }
         }
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.