X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=iramuteq.py;h=f9515ad22ba813f2af648c22241d8a2d674b6762;hp=a75456387e82c2948241b7a935f0110ba43c8c9d;hb=aae91ab48172a83c49bb502ac737bcc1b3a6685c;hpb=0e02f9566eb56fcb0f16bd070248235f78093ff5 diff --git a/iramuteq.py b/iramuteq.py index a754563..f9515ad 100644 --- a/iramuteq.py +++ b/iramuteq.py @@ -83,7 +83,6 @@ ID_SaveTab = wx.NewId() ID_CreateText = wx.NewId() ID_ACCEUIL = wx.NewId() ID_RESULT = wx.NewId() -ID_VIEWDATA = wx.NewId() ID_HTMLcontent = wx.NewId() ID_SimiTxt = wx.NewId() ID_proto = wx.NewId() @@ -97,6 +96,7 @@ ID_ImportEuro = wx.NewId() ID_Fact_xml = wx.NewId() ID_Fact_mail = wx.NewId() ID_Fact_copy = wx.NewId() +ID_exportmeta = wx.NewId() ########################################################## #elements de configuration ########################################################## @@ -191,6 +191,9 @@ images_analyses = { 'factiva_copy' : 'factiva_copy.png', 'factiva_mail': 'factiva_mail.png', 'iramuteq' : 'iraicone.png', + 'subcorpusmeta' : 'subcorpusmeta.png', + 'subcorpusthema' : 'subcorpusthema.png', + 'preferences' : 'preferences.png' } ##################################################################### @@ -293,14 +296,19 @@ class IraFrame(wx.Frame): edit_menu = wx.Menu() pref = wx.MenuItem(edit_menu, wx.ID_PREFERENCES, _(u'Preferences').decode('utf8')) - pref.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_HELP_SETTINGS, size = (16,16))) + pref.SetBitmap(self.images_analyses['preferences']) edit_menu.AppendItem(pref) #edit_menu.Append(wx.ID_PREFERENCES, _(u'Preferences').decode('utf8')) view_menu = wx.Menu() - view_menu.Append(ID_ACCEUIL, _(u"Home page").decode('utf8')) - view_menu.Append(ID_VIEWDATA, _(u"Show data").decode('utf8')) - view_menu.Append(ID_RESULT, _(u'Show results').decode('utf8')) + home = wx.MenuItem(view_menu, ID_ACCEUIL, _(u"Home page").decode('utf8')) + home.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16))) + view_menu.AppendItem(home) + #view_menu.Append(ID_ACCEUIL, _(u"Home page").decode('utf8')) + results = wx.MenuItem(view_menu, ID_RESULT, _(u'Show results').decode('utf8')) + results.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_LIST_VIEW, size = (16,16))) + view_menu.AppendItem(results) + #view_menu.Append(ID_RESULT, _(u'Show results').decode('utf8')) #view_menu.AppendSeparator() matrix_menu = wx.Menu() matanalyses = [[ID_Freq, _(u"Frequencies").decode('utf8'), 'freq'], @@ -310,7 +318,8 @@ class IraFrame(wx.Frame): 'content' : [[ID_CHDReinert, _(u"Reinert's Method").decode('utf8'), 'reinertmatrix']]}, [ID_SIMI, _(u"Similarities Analysis").decode('utf8'), 'simimatrix'], [ID_proto, _(u"Prototypical Analysis").decode('utf8'), 'proto'], - [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), '']] + [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta'], + ] for analyse in matanalyses : if not isinstance(analyse, dict) : @@ -358,8 +367,9 @@ class IraFrame(wx.Frame): [ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'), 'simitxt'], [ID_WC, _(u"WordCloud").decode('utf8'), 'wordcloud'], {'name' : _(u"Sub corpus").decode('utf8'), - 'content' : [[ID_Subtxtfrommeta, _(u'Sub corpus from metadata').decode('utf8'), None], - [ID_Subtxtfromthem, _(u'Sub corpus from thematic').decode('utf8'), None]]}, + 'content' : [[ID_Subtxtfrommeta, _(u'Sub corpus from metadata').decode('utf8'), 'subcorpusmeta'], + [ID_Subtxtfromthem, _(u'Sub corpus from thematic').decode('utf8'), 'subcorpusthema']]}, + [ID_exportmeta, _(u"Export meta-data table").decode('utf8'), None], ] for analyse in analyses_text : @@ -433,6 +443,11 @@ class IraFrame(wx.Frame): tb1.AddLabelTool(ID_Fact_xml, "ImportFactxml", self.images_analyses['factiva_xml'], shortHelp= _(u"Factiva from xml").decode('utf8'), longHelp=_(u"Factiva from xml").decode('utf8')) tb1.AddLabelTool(ID_Fact_mail, "ImportFactmail", self.images_analyses['factiva_mail'], shortHelp= _(u"Factiva from mail").decode('utf8'), longHelp=_(u"Factiva from mail").decode('utf8')) tb1.AddLabelTool(ID_Fact_copy, "ImportFactcopy", self.images_analyses['factiva_copy'], shortHelp= _(u"Factiva from copy/paste").decode('utf8'), longHelp=_(u"Factiva from copy/paste").decode('utf8')) + tb1.AddSeparator() + tb1.AddLabelTool(wx.ID_PREFERENCES, "Preferences", self.images_analyses['preferences'], shortHelp= _(u"Preferences").decode('utf8'), longHelp=_(u"Preferences").decode('utf8')) + tb1.AddSeparator() + tb1.AddLabelTool(ID_ACCEUIL, "Home", wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16)), shortHelp= _(u"Home page").decode('utf8'), longHelp=_(u"Home page").decode('utf8')) + tb1.AddLabelTool(ID_RESULT, "Results", wx.ArtProvider_GetBitmap(wx.ART_LIST_VIEW, size = (16,16)), shortHelp= _(u'Show results').decode('utf8'), longHelp=_(u'Show results').decode('utf8')) tb1.Realize() tb_text = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, @@ -454,6 +469,12 @@ class IraFrame(wx.Frame): for subana in analyse['content'] : tb_mat.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1]) tb_mat.Realize() + + tb_help = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, + wx.TB_FLAT | wx.TB_NODIVIDER) + tb_help.AddLabelTool(wx.ID_ABOUT, "About", wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, size=(16,16)), shortHelp=_(u"About...").decode('utf8'), longHelp=_(u"About...").decode('utf8')) + tb_help.AddLabelTool(wx.ID_HELP, "Help", wx.ArtProvider_GetBitmap(wx.ART_HELP, size=(16,16)), shortHelp=_(u"Online help...").decode('utf8'), longHelp=_(u"Online help...").decode('utf8')) + tb_help.Realize() #------------------------------------------------------------------------------------------------ self.text_ctrl_txt = wx.TextCtrl(self, -1, "", wx.Point(0, 0), wx.Size(200, 200), wx.NO_BORDER | wx.TE_MULTILINE | wx.TE_RICH2 | wx.TE_READONLY) @@ -513,8 +534,13 @@ class IraFrame(wx.Frame): self._mgr.AddPane(tb_mat, aui.AuiPaneInfo(). Name("tb_mat").Caption("analyse_matrix"). ToolbarPane().Top(). - LeftDockable(True).RightDockable(False)) - + LeftDockable(True).RightDockable(False)) + + self._mgr.AddPane(tb_help, aui.AuiPaneInfo(). + Name("tb_help").Caption("help"). + ToolbarPane().Top(). + LeftDockable(True).RightDockable(False)) + self._mgr.GetPane('tb_text').Hide() self._mgr.GetPane('tb_mat').Hide() @@ -527,7 +553,6 @@ class IraFrame(wx.Frame): # Show How To Use The Closing Panes Event ################################################################## self.Bind(wx.EVT_MENU, self.OnAcceuil, id=ID_ACCEUIL) - self.Bind(wx.EVT_MENU, self.OnViewData, id=ID_VIEWDATA) self.Bind(wx.EVT_MENU, self.ShowTab, id=ID_RESULT) self.Bind(wx.EVT_MENU, self.OnOpenData, id=ID_OpenData) self.Bind(wx.EVT_MENU, self.OnOpenText, id=ID_OpenText) @@ -567,6 +592,7 @@ class IraFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.OnPref, id=wx.ID_PREFERENCES) self.Bind(wx.EVT_MENU, self.OnImportTXM, id=ID_ImportTXM) self.Bind(wx.EVT_MENU, self.OnImportEuropress, id=ID_ImportEuro) + self.Bind(wx.EVT_MENU, self.OnExportMeta, id=ID_exportmeta) self.Bind(wx.EVT_CLOSE, self.OnClose) ################################################################## flags = self._mgr.GetAGWFlags() @@ -605,8 +631,7 @@ class IraFrame(wx.Frame): self.type = '' ##############################################################@ - self.DisEnSaveTabAs(False) - self.ShowMenu('view', False) + self.ShowMenu('view', True) self.ShowMenu('matrix', False) self.ShowMenu('text', False) @@ -683,14 +708,6 @@ class IraFrame(wx.Frame): if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: evt.Veto() - def DisEnSaveTabAs(self, DISEN): - #Disable SaveTabAs - file_menu = self.mb.GetMenu(0) - items = file_menu.GetMenuItems() - for item in items : - if item.GetId() == ID_SaveTab : - item.Enable(DISEN) - def ShowMenu(self, menu, Show=True): if menu == 'text' : menu_pos = 4 @@ -755,23 +772,6 @@ class IraFrame(wx.Frame): if inputname: self.OpenText() - def OnViewData(self, event): - if self.type == "Data": - if not self.DataPop : - self.Sheet.Populate(self.content) - self.DataPop = True - self.DataTxt = False - self.ShowAPane(u"Data") - elif self.type == "Texte" or self.type == 'Analyse' : - if not self.DataTxt : - self.text_ctrl_txt.Clear() - self.text_ctrl_txt.write(self.content) - self.text_ctrl_txt.ShowPosition(0) - self.DataTxt = True - self.DataPop = False - self.ShowAPane(u"Text") - self._mgr.Update() - def OnSubText(self, evt, corpus = None, parametres = None): if corpus is None : corpus = self.tree.getcorpus() @@ -819,7 +819,6 @@ class IraFrame(wx.Frame): count += 1 keepGoing = dlg.Update(count, u"Chargement du dictionnaire") dlg.Destroy() - #self.OnViewData(wx.EVT_BUTTON) def OnExit(self, event): self.Close() @@ -898,7 +897,6 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" def LastTabClose(self) : if self.nb.GetPageCount() == 1 : - #self.DisEnSaveTabAs(False) if self.DataTxt : self.ShowAPane("Text") elif self.DataPop : @@ -1102,6 +1100,14 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" ImportFactiva(self, 'euro') except : BugReport(self) + + def OnExportMeta(self, evt, corpus = None): + if corpus is None : + corpus = self.tree.getcorpus() + try : + ExportMetaTable(self, corpus) + except : + BugReport(self) def ExtractTools(self, evt) : ID = evt.GetId() @@ -1156,6 +1162,7 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" dlg = PrefDialog(self) dlg.CenterOnParent() self.val = dlg.ShowModal() + dlg.Destroy() def Upgrade(self) : if self.check_update: @@ -1208,7 +1215,7 @@ class IntroPanel(wx.Panel): col = randint(0, 255) col1 = randint(0,255) col2 = randint(0,255) - col = 57 + #col = 57 bckgrdcolor = wx.Colour(col, col1, col2) self.SetBackgroundColour(bckgrdcolor) txtcolour = wx.Colour(250, 250, 250) @@ -1216,16 +1223,19 @@ class IntroPanel(wx.Panel): sizer1 = wx.BoxSizer(wx.VERTICAL) sizer2 = wx.BoxSizer(wx.VERTICAL) sizer3 = wx.BoxSizer(wx.HORIZONTAL) - sizer4 = wx.BoxSizer(wx.VERTICAL) + sizer4 = wx.BoxSizer(wx.HORIZONTAL) sizer5 = wx.BoxSizer(wx.HORIZONTAL) grid_sizer_1 = wx.FlexGridSizer(1, 4, 0, 0) grid_sizer_3 = wx.FlexGridSizer(1, 4, 0, 0) - grid_sizer_2 = wx.FlexGridSizer(1, 3, 0, 0) + grid_sizer_2 = wx.BoxSizer(wx.HORIZONTAL) PanelPres = wx.Panel(self) + bckgrdcolor = wx.Colour(randint(0, 255), randint(0, 255), randint(0, 255)) PanelPres.SetBackgroundColour(bckgrdcolor) label_1 = wx.StaticText(self, -1, u"IRaMuTeQ", size=(-1, -1)) label_1.SetFont(wx.Font(46, wx.TELETYPE, wx.NORMAL, wx.BOLD, 0, "Purisa")) label_1.SetForegroundColour(wx.RED) + iraicone = wx.Image(os.path.join(ImagePath,'iraicone248x248.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() + but_ira = wx.StaticBitmap(self, -1, bitmap = iraicone) label2 = wx.StaticText(PanelPres, -1 , u'\nVersion ' + ConfigGlob.get('DEFAULT', 'version') + '\n') label2.SetForegroundColour(txtcolour) label2.SetBackgroundColour(bckgrdcolor) @@ -1272,7 +1282,8 @@ class IntroPanel(wx.Panel): grid_sizer_1.Add(self.hyper2, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) grid_sizer_3.Add(label_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) grid_sizer_3.Add(self.hyper_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) - sizer4.Add(label_1, 0, wx.ALIGN_CENTER, 5) + sizer4.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5) + sizer2.Add(label2, 0, wx.ALIGN_CENTER, 5) #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) @@ -1284,17 +1295,19 @@ class IntroPanel(wx.Panel): sizer2.Add(grid_sizer_1, 0, wx.ALIGN_CENTER, 5) sizer2.Add(labellicence, 0, wx.ALIGN_CENTER, 5) sizer2.Add(labelcopy, 0, wx.ALIGN_CENTER, 5) - sizer1.Add(sizer4, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) + sizer1.Add(sizer4, 1, wx.ALIGN_CENTER_HORIZONTAL, 0) + sizer1.Add(but_ira, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5) + sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5) PanelPres.SetSizer(sizer2) - sizer5.Add(blank, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 2) + #sizer5.Add(blank, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 2) sizer5.Add(PanelPres, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0) - sizer5.Add(blank1, 1, wx.ALIGN_CENTER_HORIZONTAL,2) - grid_sizer_2.Add(but_python, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL) - grid_sizer_2.Add(but_lexique, 1,wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL) - grid_sizer_2.Add(but_r, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL) + #sizer5.Add(blank1, 1, wx.ALIGN_CENTER_HORIZONTAL,2) + grid_sizer_2.Add(but_python, 1, wx.ALIGN_BOTTOM) + grid_sizer_2.Add(but_lexique, 1, wx.ALIGN_BOTTOM) + grid_sizer_2.Add(but_r, 1, wx.ALIGN_BOTTOM) - sizer1.Add(sizer5, 3, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 1) - sizer1.Add(grid_sizer_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL) + sizer1.Add(sizer5, 0, wx.EXPAND |wx.ALL, 10) + sizer1.Add(grid_sizer_2, 2, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 1) self.SetSizer(sizer1) sizer1.Fit(self)