|
From: <got...@us...> - 2009-02-01 10:41:29
|
Revision: 182
http://scstudio.svn.sourceforge.net/scstudio/?rev=182&view=rev
Author: gotthardp
Date: 2009-02-01 10:41:24 +0000 (Sun, 01 Feb 2009)
Log Message:
-----------
- Implemented "repaint" function to upgrade stencils in an existing drawing
- Fixed leading/trailing whitespace in engmann import
- Fixed gcc portability by replacing std::bad_cast --> std::invalid_argument in msc.h; standard std::bad_cast doesn't allow any reason string
Modified Paths:
--------------
trunk/src/data/engmann/engmann.cpp
trunk/src/data/msc.h
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
Modified: trunk/src/data/engmann/engmann.cpp
===================================================================
--- trunk/src/data/engmann/engmann.cpp 2009-01-31 23:08:34 UTC (rev 181)
+++ trunk/src/data/engmann/engmann.cpp 2009-02-01 10:41:24 UTC (rev 182)
@@ -54,6 +54,20 @@
}
}
+static void trim(std::string& str)
+{
+ std::string::size_type pos = str.find_last_not_of(' ');
+ if(pos != std::string::npos)
+ {
+ str.erase(pos + 1);
+ pos = str.find_first_not_of(' ');
+ if(pos != std::string::npos)
+ str.erase(0, pos);
+ }
+ else
+ str.erase(str.begin(), str.end());
+}
+
static std::string read_line(std::istream& stream)
{
std::string result;
@@ -64,6 +78,9 @@
while(stream.good() && (ch = stream.get()) != '\n')
result.push_back(ch);
+ // remove leading and trailing whitespace
+ trim(result);
+
return result;
}
Modified: trunk/src/data/msc.h
===================================================================
--- trunk/src/data/msc.h 2009-01-31 23:08:34 UTC (rev 181)
+++ trunk/src/data/msc.h 2009-02-01 10:41:24 UTC (rev 182)
@@ -23,8 +23,8 @@
#include <string>
#include <set>
#include <map>
-#include <typeinfo>
#include <queue>
+#include <stdexcept>
#include <cmath>
// we use boost::intrusive_ptr as we need to construct the xx_ptr<T> from T*
@@ -371,7 +371,7 @@
}
else
{
- throw std::bad_cast("Attribute m_original is not of desired type");
+ throw std::invalid_argument("Attribute m_original is not of desired type");
}
}
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2009-01-31 23:08:34 UTC (rev 181)
+++ trunk/src/view/visio/addon/addon.cpp 2009-02-01 10:41:24 UTC (rev 182)
@@ -288,11 +288,14 @@
TRACE("CStudioAddon::Run() menu item 'Check--Run'");
return pDocumentMonitor->OnMenuRun(vsoApp);
case 203:
- TRACE("CStudioAddon::Run() menu item 'Check--Import Drawing'");
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Import'");
return pDocumentMonitor->OnMenuImport(vsoApp);
case 204:
- TRACE("CStudioAddon::Run() menu item 'Check--Export Drawing'");
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Export'");
return pDocumentMonitor->OnMenuExport(vsoApp);
+ case 205:
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Repaint'");
+ return pDocumentMonitor->OnMenuRepaint(vsoApp);
default:
TRACE("CStudioAddon::Run() unexpected event id=" << iEvent);
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2009-01-31 23:08:34 UTC (rev 181)
+++ trunk/src/view/visio/addon/document.cpp 2009-02-01 10:41:24 UTC (rev 182)
@@ -239,20 +239,31 @@
menuItem2->BeginGroup = true;
Visio::IVMenuItemPtr menuItem3 = menu->MenuItems->Add();
- menuItem3->Caption = "&Import Drawing...";
- menuItem3->AddOnName = ADDON_NAME;
- menuItem3->AddOnArgs = "/event=203";
+ menuItem3->Caption = "&Drawing";
menuItem3->BeginGroup = true;
+ menuItem3->CmdNum = Visio::visCmdHierarchical;
+
+ Visio::IVMenuItemPtr menuItem31 = menuItem3->MenuItems->Add();
+ menuItem31->Caption = "&Import...";
+ menuItem31->AddOnName = ADDON_NAME;
+ menuItem31->AddOnArgs = "/event=203";
+ menuItem31->BeginGroup = true;
// enable only if some formatters are available
- menuItem3->Enabled = m_formatters.size() > 0;
+ menuItem31->Enabled = m_formatters.size() > 0;
- Visio::IVMenuItemPtr menuItem4 = menu->MenuItems->Add();
- menuItem4->Caption = "&Export Drawing...";
- menuItem4->AddOnName = ADDON_NAME;
- menuItem4->AddOnArgs = "/event=204";
+ Visio::IVMenuItemPtr menuItem32 = menuItem3->MenuItems->Add();
+ menuItem32->Caption = "&Export...";
+ menuItem32->AddOnName = ADDON_NAME;
+ menuItem32->AddOnArgs = "/event=204";
// enable only if some formatters are available
- menuItem4->Enabled = m_formatters.size() > 0;
+ menuItem32->Enabled = m_formatters.size() > 0;
+ Visio::IVMenuItemPtr menuItem33 = menuItem3->MenuItems->Add();
+ menuItem33->Caption = "&Repaint";
+ menuItem33->AddOnName = ADDON_NAME;
+ menuItem33->AddOnArgs = "/event=205";
+ menuItem33->BeginGroup = true;
+
vsoDocument->SetCustomMenus(vsoMenus);
}
@@ -526,6 +537,39 @@
return VAORC_FAILURE;
}
+VAORC CDocumentMonitor::OnMenuRepaint(Visio::IVApplicationPtr vsoApp)
+{
+ if(!m_reportVisible)
+ ShowReportView(vsoApp);
+
+ // clear the verification report
+ m_reportView->Reset();
+
+ // this should repaint all pages, but we don't know the HMSC root
+ // walk through all pages are repaint each drawing separately
+ for(int i = 1; i <= vsoApp->ActiveDocument->Pages->Count; i++)
+ {
+ Visio::IVPagePtr page = vsoApp->ActiveDocument->Pages->Item[i];
+
+ CDrawingExtractor extractor(m_reportView);
+ MscPtr msc = extractor.extract_msc(page);
+
+ if(msc == NULL)
+ return VAORC_FAILURE;
+
+ Visio::IVSelectionPtr selection = page->CreateSelection(Visio::visSelTypeAll, Visio::visSelModeSkipSuper);
+ selection->Delete();
+
+ CDrawingVisualizer visualizer(vsoApp);
+ visualizer.visualize_msc(page, msc);
+ }
+
+ m_reportView->Print(RS_NOTICE,
+ stringize() << "Repaint completed.");
+
+ return VAORC_SUCCESS;
+}
+
VAORC CDocumentMonitor::OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp)
{
if(m_reportVisible)
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2009-01-31 23:08:34 UTC (rev 181)
+++ trunk/src/view/visio/addon/document.h 2009-02-01 10:41:24 UTC (rev 182)
@@ -43,6 +43,7 @@
VAORC OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuImport(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuExport(Visio::IVApplicationPtr vsoApp);
+ VAORC OnMenuRepaint(Visio::IVApplicationPtr vsoApp);
void ShowReportView(Visio::IVApplicationPtr vsoApp);
void OnHideReportView();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|