[Uml-devel] KDE/kdesdk/umbrello/umbrello
Sharan Rao
sharanrao at gmail.com
Sun Jul 22 18:34:00 UTC 2007
SVN commit 691002 by sharan:
During startup, datatypes are loaded only once now. Earlier it used to lead multiple times and unnecessarily
increase startup time ( by half a second :P ).
Also restructured functions and code pertaining to setting the active language ( thus removing redundant calling to
the same function in the same sequence n times for no apparent reason )
M +0 -2 main.cpp
M +24 -58 uml.cpp
M +0 -2 uml.h
M +0 -2 umldoc.cpp
--- trunk/KDE/kdesdk/umbrello/umbrello/main.cpp #691001:691002
@@ -97,9 +97,7 @@
if (showGUI) {
uml->show();
}
- uml->initGenerator();
-
initDocument(args);
// export option
--- trunk/KDE/kdesdk/umbrello/umbrello/uml.cpp #691001:691002
@@ -240,6 +240,7 @@
#define setProgLangAction(pl, name, action) \
m_langAct[pl] = actionCollection()->addAction(action); \
+ m_langAct[pl]->setCheckable( true ); \
m_langAct[pl]->setText(name); \
connect(m_langAct[pl], SIGNAL(triggered()), this, "1"action"()")
setProgLangAction(Uml::pl_ActionScript, "ActionScript", "set_lang_actionscript");
@@ -1469,6 +1470,7 @@
updateLangSelectMenu(pl);
slotAddDefaultDatatypes();
+ m_codegen->createDefaultStereotypes();
if (m_policyext)
m_policyext->setDefaults(false); // picks up language specific stuff
@@ -1491,113 +1493,88 @@
}
void UMLApp::set_lang_actionscript() {
- setProgLangMenu(Uml::pl_ActionScript);
+ setActiveLanguage(Uml::pl_ActionScript);
}
void UMLApp::set_lang_ada() {
- setProgLangMenu(Uml::pl_Ada);
+ setActiveLanguage(Uml::pl_Ada);
}
void UMLApp::set_lang_cpp() {
- setProgLangMenu(Uml::pl_Cpp);
+ setActiveLanguage(Uml::pl_Cpp);
}
void UMLApp::set_lang_csharp() {
- setProgLangMenu(Uml::pl_CSharp);
+ setActiveLanguage(Uml::pl_CSharp);
}
void UMLApp::set_lang_d() {
- setProgLangMenu(Uml::pl_D);
+ setActiveLanguage(Uml::pl_D);
}
void UMLApp::set_lang_idl() {
- setProgLangMenu(Uml::pl_IDL);
+ setActiveLanguage(Uml::pl_IDL);
}
void UMLApp::set_lang_java() {
- setProgLangMenu(Uml::pl_Java);
+ setActiveLanguage(Uml::pl_Java);
}
void UMLApp::set_lang_javascript() {
- setProgLangMenu(Uml::pl_JavaScript);
+ setActiveLanguage(Uml::pl_JavaScript);
}
void UMLApp::set_lang_mysql() {
- setProgLangMenu(Uml::pl_MySQL);
+ setActiveLanguage(Uml::pl_MySQL);
}
void UMLApp::set_lang_pascal() {
- setProgLangMenu(Uml::pl_Pascal);
+ setActiveLanguage(Uml::pl_Pascal);
}
void UMLApp::set_lang_perl() {
- setProgLangMenu(Uml::pl_Perl);
+ setActiveLanguage(Uml::pl_Perl);
}
void UMLApp::set_lang_php() {
- setProgLangMenu(Uml::pl_PHP);
+ setActiveLanguage(Uml::pl_PHP);
}
void UMLApp::set_lang_php5() {
- setProgLangMenu(Uml::pl_PHP5);
+ setActiveLanguage(Uml::pl_PHP5);
}
void UMLApp::set_lang_postgresql() {
- setProgLangMenu(Uml::pl_PostgreSQL);
+ setActiveLanguage(Uml::pl_PostgreSQL);
}
void UMLApp::set_lang_python() {
- setProgLangMenu(Uml::pl_Python);
+ setActiveLanguage(Uml::pl_Python);
}
void UMLApp::set_lang_ruby() {
- setProgLangMenu(Uml::pl_Ruby);
+ setActiveLanguage(Uml::pl_Ruby);
}
void UMLApp::set_lang_sql() {
- setProgLangMenu(Uml::pl_SQL);
+ setActiveLanguage(Uml::pl_SQL);
}
void UMLApp::set_lang_tcl() {
- setProgLangMenu(Uml::pl_Tcl);
+ setActiveLanguage(Uml::pl_Tcl);
}
void UMLApp::set_lang_xmlschema() {
- setProgLangMenu(Uml::pl_XMLSchema);
+ setActiveLanguage(Uml::pl_XMLSchema);
}
void UMLApp::set_lang_ocl() {
- setProgLangMenu(Uml::pl_Ocl);
+ setActiveLanguage(Uml::pl_Ocl);
}
-void UMLApp::setProgLangMenu(Uml::Programming_Language pl) {
- // only change the active language if different from one we currently have
- if (pl == m_activeLanguage)
- return;
-
- m_langAct[m_activeLanguage]->setChecked(false);
- m_activeLanguage = pl;
- m_langAct[m_activeLanguage]->setChecked(true);
- setGenerator(m_activeLanguage);
-}
-
void UMLApp::setActiveLanguage(Uml::Programming_Language pl) {
- QString activeLanguage = Model_Utils::progLangToString(pl);
-
- for(unsigned int j=0; j < m_langSelect->count(); j++) {
- int id = m_langSelect->idAt(j);
-
- if (m_langSelect->text(id) == activeLanguage &&
- m_langSelect->isItemChecked(id))
- return; // already set.. no need to do anything
- }
-
- for(unsigned int i=0; i < m_langSelect->count(); i++) {
- bool isActiveLang = (m_langSelect->text(m_langSelect->idAt(i)) == activeLanguage);
- //uncheck everything except the active language
- m_langSelect->setItemChecked(m_langSelect->idAt(i), isActiveLang);
- }
- setGenerator(Model_Utils::stringToProgLang(activeLanguage));
+ updateLangSelectMenu(pl);
+ setGenerator(pl);
}
Uml::Programming_Language UMLApp::getActiveLanguage() {
@@ -1791,14 +1768,10 @@
}
Uml::Programming_Language defaultLanguage = getDefaultLanguage();
setActiveLanguage(defaultLanguage);
- if (m_codegen == NULL)
- setGenerator(defaultLanguage);
- updateLangSelectMenu(defaultLanguage);
}
void UMLApp::updateLangSelectMenu(Uml::Programming_Language activeLanguage) {
//m_langSelect->clear();
- m_langSelect->setCheckable(true);
for (int i = 0; i < Uml::pl_Reserved; i++) {
m_langAct[i]->setChecked(i == activeLanguage);
}
@@ -1887,13 +1860,6 @@
void UMLApp::newDocument() {
m_doc->newDocument();
- Uml::Programming_Language defaultLanguage = getDefaultLanguage();
- if (m_codegen) {
- defaultLanguage = m_codegen->getLanguage();
- delete m_codegen;
- m_codegen = NULL;
- }
- setGenerator(defaultLanguage);
slotUpdateViews();
}
--- trunk/KDE/kdesdk/umbrello/umbrello/uml.h #691001:691002
@@ -454,9 +454,7 @@
*/
void updateLangSelectMenu(Uml::Programming_Language activeLanguage);
- void setProgLangMenu(Uml::Programming_Language pl);
-
public slots:
/**
--- trunk/KDE/kdesdk/umbrello/umbrello/umldoc.cpp #691001:691002
@@ -313,8 +313,6 @@
createDiagram(m_root[mt], dt, false);
UMLApp::app()->initGenerator();
- addDefaultDatatypes();
- addDefaultStereotypes();
setModified(false);
initSaveTimer();
More information about the umbrello-devel
mailing list