Bug 93296

Summary: usability and responsiveness improvements to code import
Product: [Applications] umbrello Reporter: Jonathan Riddell <jr>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: normal CC: kollix
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Little fix in code import
Call initialize() in importFiles() method

Description Jonathan Riddell 2004-11-15 01:40:54 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

Code import should allow the user interface to be updated, not freeze.  It should include a  progress bar indicating the number of files processed and yet to process.
Comment 1 Oliver Kellogg 2004-12-15 20:11:53 UTC
Inserted a kapp->processEvents() after import of each file but that had a significant hit on speed because of intermittent updates of the list view.
So I guess we have a tradeoff between responsiveness and speed here.
Comment 2 Daniel Calviño Sánchez 2006-03-21 04:10:06 UTC
Created attachment 15229 [details]
Little fix in code import

This patch adds some information about the number of processed files in the
status bar when importing code, and also sets the document as modified after a
code import is made.

The C++ importer had repeated code for setting the information in the status
bar. It also lacked i18n in one call.

The base importer (used by all the other importers) lacked the "Ready" message
in the status bar when the import finishes.

Both show now also the number of files processed and the total number of file
to be processed.

When setting the modification of the UML document, an undo action for the
import code operation can be created. I'm not sure, but I think that it eats a
lot of memory. So the modification can be set, but not adding an undo action.
I left the two options so you can decide which one is better.
Comment 3 Oliver Kellogg 2006-03-21 23:32:23 UTC
SVN commit 521213 by okellogg:

Apply attachment id=15229 by Daniel Calviño Sánchez with minor
refactoring by me to eschew code duplication (make importFiles()
non-abstract in ClassImport and pull parseFile() up there.)
BUG:93296


 M  +1 -0      ChangeLog  
 M  +17 -0     umbrello/classimport.cpp  
 M  +19 -4     umbrello/classimport.h  
 M  +9 -22     umbrello/cppimport.cpp  
 M  +10 -2     umbrello/cppimport.h  
 M  +4 -16     umbrello/nativeimportbase.cpp  
 M  +3 -3      umbrello/nativeimportbase.h  
 M  +5 -0      umbrello/uml.cpp  
Comment 4 Daniel Calviño Sánchez 2006-03-23 02:10:56 UTC
Created attachment 15262 [details]
Call initialize() in importFiles() method

In SVN commit 521213 by okellogg the initialize() call is missed in the
beggining of importFiles() method.

I don't know if I should have sent this here or directly to the uml-devel
mailing list. If I should have done the second, please tell me it to take into
consideration for the future.
Comment 5 Oliver Kellogg 2006-03-23 19:04:36 UTC
SVN commit 521850 by okellogg:

importFiles(): Add missing call to initialize().
Thanks to Daniel <danxuliu_at_gmail.com> for spotting it.
CCBUG:93296


 M  +1 -0      classimport.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/umbrello/classimport.cpp #521849:521850
@@ -24,6 +24,7 @@
 #include "cppimport.h"
 
 void ClassImport::importFiles(QStringList fileList) {
+    initialize();
     UMLDoc *umldoc = UMLApp::app()->getDocument();
     uint processedFilesCount = 0;
     for (QStringList::Iterator fileIT = fileList.begin();