From noreply at forge.novell.com Mon Jan 1 19:52:49 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:08 2007 Subject: [Tellico-commits] r1355 - branches/tellico-1.2.x/po Message-ID: <20070102025249.32F641999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-01 19:52:47 -0700 (Mon, 01 Jan 2007) New Revision: 1355 Modified: branches/tellico-1.2.x/po/pt_BR.po Log: pt_BR update Modified: branches/tellico-1.2.x/po/pt_BR.po =================================================================== --- branches/tellico-1.2.x/po/pt_BR.po 2006-12-29 02:28:53 UTC (rev 1354) +++ branches/tellico-1.2.x/po/pt_BR.po 2007-01-02 02:52:47 UTC (rev 1355) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: pt_BR\n" "POT-Creation-Date: 2006-11-05 15:37-0800\n" -"PO-Revision-Date: 2006-09-06 01:38-0300\n" +"PO-Revision-Date: 2006-12-25 01:47-0200\n" "Last-Translator: Claudio Henrique Fortes Felix \n" "Language-Team: Brazillian Portuguese\n" "MIME-Version: 1.0\n" @@ -836,8 +836,7 @@ #: collections/videocollection.cpp:107 msgid "A table for the cast members, along with the roles they play" -msgstr "" -"Uma tabela para o elenco do filme, com o papel representado por cada um" +msgstr "Uma tabela para o elenco do filme, com o papel representado por cada um" #: collections/videocollection.cpp:110 msgid "Director" @@ -1465,10 +1464,8 @@ msgstr "&Tipo de cole??o:" #: fetch/execexternalfetcher.cpp:341 -msgid "" -"Set the collection type of the data returned from the external application." -msgstr "" -"Especifique o tipo de cole??o dos dados retornados do aplicativo externo." +msgid "Set the collection type of the data returned from the external application." +msgstr "Especifique o tipo de cole??o dos dados retornados do aplicativo externo." #: fetch/execexternalfetcher.cpp:346 msgid "&Result type: " @@ -1476,8 +1473,7 @@ #: fetch/execexternalfetcher.cpp:355 msgid "Set the result type of the data returned from the external application." -msgstr "" -"Especifique o tipo de resultado dos dados retornados do aplicativo externo." +msgstr "Especifique o tipo de resultado dos dados retornados do aplicativo externo." #: fetch/execexternalfetcher.cpp:360 msgid "Application &path: " @@ -1541,8 +1537,7 @@ msgstr "Selecione o resultado IMDB" #: fetch/imdbfetcher.cpp:580 -msgid "" -"Your search returned multiple matches. Please select one below." +msgid "Your search returned multiple matches. Please select one below." msgstr "" "A sua pesquisa retornou v?rios resultados. Por favor selecione um dos " "seguintes." @@ -1942,8 +1937,7 @@ #: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:137 msgid "Tellico was unable to access the CD-ROM device - %1." -msgstr "" -"Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." +msgstr "Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." #: translators/freedbimporter.cpp:163 msgid "Select CDDB Entry" @@ -1959,8 +1953,7 @@ #: translators/freedbimporter.cpp:205 msgid "Tellico was unable to complete the CD lookup." -msgstr "" -"Tellico n?o p?de completar a pesquisa das informa??es do CD." +msgstr "Tellico n?o p?de completar a pesquisa das informa??es do CD." #: translators/freedbimporter.cpp:428 msgid "Various" @@ -2147,8 +2140,7 @@ #: translators/csvimporter.cpp:181 msgid "If checked, the first row is used as field titles." -msgstr "" -"Se selecionado, a primeira linha ser? utilizada para o nome dos campos." +msgstr "Se selecionado, a primeira linha ser? utilizada para o nome dos campos." #: translators/csvimporter.cpp:193 msgid "&Comma" @@ -2264,8 +2256,7 @@ #: configdialog.cpp:299 translators/htmlexporter.cpp:467 msgid "If checked, the field names will be printed as table headers." -msgstr "" -"Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." +msgstr "Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." #: translators/htmlexporter.cpp:471 msgid "Group the entries" @@ -2283,8 +2274,7 @@ #: translators/htmlexporter.cpp:477 msgid "If checked, individual files will be created for each entry." -msgstr "" -"Se selecionado, ser?o criados arquivos individuais para cada registro." +msgstr "Se selecionado, ser?o criados arquivos individuais para cada registro." #: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49 msgid "Data Source Properties" @@ -2295,8 +2285,7 @@ msgstr "Nome da &fonte: " #: fetcherconfigdialog.cpp:79 -msgid "" -"The name identifies the data source and should be unique and informative." +msgid "The name identifies the data source and should be unique and informative." msgstr "O nome identifica a fonte de dados, devendo ser ?nico e informativo." #: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94 @@ -3360,8 +3349,7 @@ msgstr "Tellico n?o p?de carregar a imagem - %1." #: filehandler.cpp:204 -msgid "" -"A file named \"%1\" already exists. Are you sure you want to overwrite it?" +msgid "A file named \"%1\" already exists. Are you sure you want to overwrite it?" msgstr "" "Um arquivo chamado \"%1\" j? existe. Tem certeza que deseja mesmo " "sobrescrev?-lo?" @@ -3586,10 +3574,8 @@ msgstr "Um campo Imagem serve para armazenar uma foto ou figura." #: collectionfieldsdialog.cpp:144 -msgid "" -"A Date field can be used for values with a day, month, and year. " -msgstr "" -"Um campo Data pode ser utilizado para valores com dia, m?s e ano." +msgid "A Date field can be used for values with a day, month, and year. " +msgstr "Um campo Data pode ser utilizado para valores com dia, m?s e ano." #: collectionfieldsdialog.cpp:145 msgid "A Rating field uses stars to show a rating number. " @@ -3694,8 +3680,7 @@ msgstr "Permitir apenas a formata??o autom?tica em letras mai?sculas" #: collectionfieldsdialog.cpp:230 -msgid "" -"This option allows the field to be capitalized, but not specially formatted." +msgid "This option allows the field to be capitalized, but not specially formatted." msgstr "" "Esta op??o permite p?r o campo em mai?sculas, mas sem formata??es " "especiais." @@ -3757,16 +3742,14 @@ msgstr "Permitir agrupamento" #: collectionfieldsdialog.cpp:248 -msgid "" -"If checked, this field may be used to group the entries in the group view." +msgid "If checked, this field may be used to group the entries in the group view." msgstr "" "Se selecionado, este campo ser? utilizado para reagrupar os registros na " "vis?o de grupos." #: collectionfieldsdialog.cpp:262 msgid "Revert the selected field's properties to the default values." -msgstr "" -"Reverter as propriedades dos campos selecionados para seus valores padr?o." +msgstr "Reverter as propriedades dos campos selecionados para seus valores padr?o." #: collectionfieldsdialog.cpp:301 msgid "Modify Fields" @@ -3904,8 +3887,7 @@ #: configdialog.cpp:209 msgid "If checked, the \"Tip of the Day\" will be shown at program start-up." -msgstr "" -"Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." +msgstr "Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." #: configdialog.cpp:214 configdialog.cpp:291 msgid "Formatting Options" @@ -3927,8 +3909,7 @@ #: configdialog.cpp:224 configdialog.cpp:295 msgid "If checked, titles and names will be automatically formatted." -msgstr "" -"Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." +msgstr "Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." #: configdialog.cpp:232 msgid "No capitali&zation:" @@ -4016,8 +3997,7 @@ msgid "" "The maximum width of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." +msgstr "Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." #: configdialog.cpp:328 msgid "&Maximum image height:" @@ -4027,8 +4007,7 @@ msgid "" "The maximum height of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." +msgstr "Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." #: configdialog.cpp:347 msgid "Templates" @@ -4371,8 +4350,7 @@ msgstr "Editar Lista..." #: fetchdialog.cpp:129 -msgid "" -"Click to open a text edit box for entering or editing multiple ISBN values." +msgid "Click to open a text edit box for entering or editing multiple ISBN values." msgstr "Clique para inserir ou editar os m?ltiplos ISBN a serem pesquisados." #: fetchdialog.cpp:135 @@ -4409,13 +4387,12 @@ msgstr "Adicionar o registro selecionado ? cole??o atual" #: fetchdialog.cpp:186 -#, fuzzy msgid "Get More Results" -msgstr "Selecione o resultado IMDB" +msgstr "Obter mais resultados" #: fetchdialog.cpp:189 msgid "Fetch more results from the current data source" -msgstr "" +msgstr "Obter mais resultados da fonte de dados atual" #: fetchdialog.cpp:193 msgid "Clear all search fields and results" @@ -4541,8 +4518,7 @@ msgstr "Selecione um modelo de relat?rio e clique em Gerar." #: reportdialog.cpp:108 -msgid "" -"Some reports may take several seconds to generate for large collections." +msgid "Some reports may take several seconds to generate for large collections." msgstr "" "Alguns relat?rios de grandes cole??es podem levar v?rios segundos para " "serem gerados." @@ -4561,8 +4537,7 @@ #: entryview.cpp:168 msgid "Tellico is unable to locate the default entry stylesheet." -msgstr "" -"Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." +msgstr "Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." #: rc.cpp:2 msgid "&New" @@ -4913,3 +4888,4 @@ #: scripts.cpp:6 msgid "Spanish Ministry of Culture" msgstr "Minist?rio da Cultura da Espanha" + From noreply at forge.novell.com Mon Jan 1 19:52:58 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:08 2007 Subject: [Tellico-commits] r1356 - branches/tellico-1.3.x/po Message-ID: <20070102025258.886C11999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-01 19:52:56 -0700 (Mon, 01 Jan 2007) New Revision: 1356 Modified: branches/tellico-1.3.x/po/pt_BR.po Log: pt_BR update Modified: branches/tellico-1.3.x/po/pt_BR.po =================================================================== --- branches/tellico-1.3.x/po/pt_BR.po 2007-01-02 02:52:47 UTC (rev 1355) +++ branches/tellico-1.3.x/po/pt_BR.po 2007-01-02 02:52:56 UTC (rev 1356) @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: pt_BR\n" -"POT-Creation-Date: 2006-12-21 07:37-0800\n" -"PO-Revision-Date: 2006-09-06 01:38-0300\n" +"POT-Creation-Date: 2006-11-05 15:37-0800\n" +"PO-Revision-Date: 2006-12-25 01:47-0200\n" "Last-Translator: Claudio Henrique Fortes Felix \n" "Language-Team: Brazillian Portuguese\n" "MIME-Version: 1.0\n" @@ -155,11 +155,11 @@ msgid "Delete %1 Field" msgstr "Apagar Campo %1" -#: commands/addentries.cpp:50 +#: commands/addentries.cpp:54 msgid "Add Entries" msgstr "Adicionar Registros" -#: commands/addentries.cpp:51 +#: commands/addentries.cpp:55 #, c-format msgid "" "_: Add (Entry Title)\n" @@ -197,11 +197,11 @@ "Check-out %1" msgstr "Registrar sa?da de %1" -#: commands/removeentries.cpp:48 +#: commands/removeentries.cpp:52 msgid "Delete Entries" msgstr "Apagar Registros" -#: commands/removeentries.cpp:49 +#: commands/removeentries.cpp:53 #, c-format msgid "" "_: Delete (Entry Title)\n" @@ -223,143 +223,19 @@ "Check-in %1" msgstr "Registrar entrada de %1" -#: collectionfactory.cpp:81 collections/bibtexcollection.cpp:24 -#: collections/bibtexcollection.cpp:58 collections/bibtexcollection.cpp:88 -#: collections/boardgamecollection.cpp:19 collections/bookcollection.cpp:19 -#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:19 -#: collections/coincollection.cpp:19 collections/comicbookcollection.cpp:19 -#: collections/filecatalog.cpp:19 collections/gamecollection.cpp:19 -#: collections/musiccollection.cpp:19 collections/stampcollection.cpp:19 -#: collections/videocollection.cpp:19 collections/videocollection.cpp:40 -#: collections/winecollection.cpp:19 configdialog.cpp:191 -#: fetch/imdbfetcher.cpp:689 fetch/imdbfetcher.cpp:924 field.cpp:39 -#: field.cpp:71 translators/gcfilmsimporter.cpp:54 +#: collectionfactory.cpp:78 collections/bibtexcollection.cpp:24 +#: collections/bibtexcollection.cpp:59 collections/bibtexcollection.cpp:89 +#: collections/bookcollection.cpp:19 collections/bookcollection.cpp:41 +#: collections/cardcollection.cpp:19 collections/coincollection.cpp:19 +#: collections/comicbookcollection.cpp:19 collections/filecatalog.cpp:19 +#: collections/gamecollection.cpp:19 collections/musiccollection.cpp:19 +#: collections/stampcollection.cpp:19 collections/videocollection.cpp:19 +#: collections/videocollection.cpp:41 collections/winecollection.cpp:19 +#: configdialog.cpp:191 fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:910 +#: field.cpp:39 field.cpp:71 translators/gcfilmsimporter.cpp:54 msgid "General" msgstr "Geral " -#: collections/bookcollection.cpp:137 collections/comicbookcollection.cpp:122 -#: collections/stampcollection.cpp:20 -msgid "Condition" -msgstr "Condi??o" - -#: collections/boardgamecollection.cpp:20 collections/bookcollection.cpp:22 -#: collections/cardcollection.cpp:20 collections/coincollection.cpp:20 -#: collections/comicbookcollection.cpp:22 collections/gamecollection.cpp:20 -#: collections/musiccollection.cpp:20 collections/stampcollection.cpp:21 -#: collections/videocollection.cpp:22 collections/winecollection.cpp:20 -#: document.cpp:501 -msgid "Personal" -msgstr "Pessoal" - -#: collections/stampcollection.cpp:27 -msgid "My Stamps" -msgstr "Meus Selos" - -#: collectionfactory.cpp:80 collections/bibtexcollection.cpp:56 -#: collections/boardgamecollection.cpp:37 collections/bookcollection.cpp:39 -#: collections/cardcollection.cpp:37 collections/coincollection.cpp:37 -#: collections/comicbookcollection.cpp:39 collections/gamecollection.cpp:37 -#: collections/musiccollection.cpp:76 collections/stampcollection.cpp:38 -#: collections/videocollection.cpp:39 collections/winecollection.cpp:37 -#: entryupdater.cpp:230 fetch/fetchmanager.cpp:62 fetchdialog.cpp:160 -#: translators/tellicoimporter.cpp:404 -msgid "Title" -msgstr "T?tulo" - -#: collections/boardgamecollection.cpp:81 collections/filecatalog.cpp:45 -#: collections/gamecollection.cpp:87 collections/stampcollection.cpp:44 -#: entryupdater.cpp:231 fetchdialog.cpp:161 -msgid "Description" -msgstr "Descri??o" - -#: collections/coincollection.cpp:50 collections/stampcollection.cpp:50 -msgid "Denomination" -msgstr "Denomina??o" - -#: collections/coincollection.cpp:66 collections/comicbookcollection.cpp:94 -#: collections/stampcollection.cpp:55 collections/winecollection.cpp:73 -msgid "Country" -msgstr "Pa?s" - -#: collections/stampcollection.cpp:61 -msgid "Issue Year" -msgstr "Ano de Edi??o" - -#: collections/stampcollection.cpp:66 collections/videocollection.cpp:172 -msgid "Color" -msgstr "Cor" - -#: collections/stampcollection.cpp:71 -msgid "Scott#" -msgstr "Scott#" - -#: collections/stampcollection.cpp:78 -msgid "" -"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n" -"Superb,Extremely Fine,Very Fine,Fine,Average,Poor" -msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim" - -#: collections/coincollection.cpp:87 collections/stampcollection.cpp:80 -msgid "Grade" -msgstr "Classifica??o" - -#: collections/stampcollection.cpp:85 -msgid "Cancelled" -msgstr "Cancelado" - -#: collections/stampcollection.cpp:89 -msgid "Hinged" -msgstr "Articulado" - -#: collections/stampcollection.cpp:94 -msgid "Centering" -msgstr "Centrada" - -#: collections/stampcollection.cpp:99 -msgid "Gummed" -msgstr "Colado" - -#: collections/boardgamecollection.cpp:89 collections/bookcollection.cpp:64 -#: collections/cardcollection.cpp:82 collections/coincollection.cpp:102 -#: collections/comicbookcollection.cpp:126 collections/gamecollection.cpp:99 -#: collections/musiccollection.cpp:86 collections/stampcollection.cpp:104 -#: collections/videocollection.cpp:190 collections/winecollection.cpp:79 -msgid "Purchase Date" -msgstr "Data de compra" - -#: collections/boardgamecollection.cpp:98 collections/bookcollection.cpp:69 -#: collections/cardcollection.cpp:87 collections/coincollection.cpp:107 -#: collections/comicbookcollection.cpp:131 collections/gamecollection.cpp:108 -#: collections/musiccollection.cpp:95 collections/stampcollection.cpp:109 -#: collections/videocollection.cpp:199 collections/winecollection.cpp:84 -msgid "Purchase Price" -msgstr "Pre?o de compra" - -#: collections/cardcollection.cpp:91 collections/coincollection.cpp:111 -#: collections/stampcollection.cpp:113 collections/winecollection.cpp:88 -msgid "Location" -msgstr "Localiza??o" - -#: collections/boardgamecollection.cpp:94 collections/bookcollection.cpp:149 -#: collections/cardcollection.cpp:96 collections/coincollection.cpp:117 -#: collections/comicbookcollection.cpp:139 collections/gamecollection.cpp:104 -#: collections/musiccollection.cpp:91 collections/stampcollection.cpp:119 -#: collections/videocollection.cpp:195 collections/winecollection.cpp:107 -msgid "Gift" -msgstr "Presente" - -#: collections/stampcollection.cpp:123 field.cpp:451 -msgid "Image" -msgstr "Imagem " - -#: collections/boardgamecollection.cpp:109 collections/bookcollection.cpp:165 -#: collections/cardcollection.cpp:115 collections/coincollection.cpp:127 -#: collections/comicbookcollection.cpp:150 collections/gamecollection.cpp:119 -#: collections/musiccollection.cpp:111 collections/stampcollection.cpp:126 -#: collections/videocollection.cpp:210 collections/winecollection.cpp:114 -msgid "Comments" -msgstr "Coment?rios" - #: collections/bibtexcollection.cpp:25 collections/bookcollection.cpp:20 #: collections/comicbookcollection.cpp:20 translators/grs1importer.cpp:58 #: translators/grs1importer.cpp:68 translators/risimporter.cpp:258 @@ -371,115 +247,246 @@ msgid "Classification" msgstr "Classifica??o" +#: collections/bookcollection.cpp:22 collections/cardcollection.cpp:20 +#: collections/coincollection.cpp:20 collections/comicbookcollection.cpp:22 +#: collections/gamecollection.cpp:20 collections/musiccollection.cpp:20 +#: collections/stampcollection.cpp:21 collections/videocollection.cpp:22 +#: collections/winecollection.cpp:20 document.cpp:490 +msgid "Personal" +msgstr "Pessoal" + #: collections/comicbookcollection.cpp:28 +msgid "Comics" +msgstr "Revistas em Quadrinhos" + +#: collections/comicbookcollection.cpp:29 msgid "My Comic Books" msgstr "Minhas Revistas em Quadrinhos" -#: collections/bookcollection.cpp:45 collections/comicbookcollection.cpp:45 +#: collectionfactory.cpp:77 collections/bibtexcollection.cpp:57 +#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:38 +#: collections/coincollection.cpp:38 collections/comicbookcollection.cpp:40 +#: collections/gamecollection.cpp:38 collections/musiccollection.cpp:77 +#: collections/stampcollection.cpp:39 collections/videocollection.cpp:40 +#: collections/winecollection.cpp:38 entryupdater.cpp:230 +#: fetch/fetchmanager.cpp:62 fetchdialog.cpp:158 +#: translators/tellicoimporter.cpp:400 +msgid "Title" +msgstr "T?tulo" + +#: collections/bookcollection.cpp:46 collections/comicbookcollection.cpp:46 msgid "Subtitle" msgstr "Sub-T?tulo" -#: collections/comicbookcollection.cpp:50 collections/videocollection.cpp:121 +#: collections/comicbookcollection.cpp:51 collections/videocollection.cpp:122 msgid "Writer" msgstr "Escritor" -#: collections/comicbookcollection.cpp:56 +#: collections/comicbookcollection.cpp:57 msgid "" "_: Comic Book Illustrator\n" "Artist" msgstr "Artista Gr?fico" -#: collections/bibtexcollection.cpp:194 collections/bookcollection.cpp:126 -#: collections/cardcollection.cpp:71 collections/comicbookcollection.cpp:62 +#: collections/bibtexcollection.cpp:195 collections/bookcollection.cpp:127 +#: collections/cardcollection.cpp:72 collections/comicbookcollection.cpp:63 msgid "Series" msgstr "S?rie" -#: collections/comicbookcollection.cpp:68 +#: collections/comicbookcollection.cpp:69 msgid "Issue" msgstr "N?mero" -#: collections/bibtexcollection.cpp:120 collections/boardgamecollection.cpp:60 -#: collections/bookcollection.cpp:73 collections/comicbookcollection.cpp:73 -#: collections/gamecollection.cpp:65 +#: collections/bibtexcollection.cpp:121 collections/bookcollection.cpp:74 +#: collections/comicbookcollection.cpp:74 collections/gamecollection.cpp:66 msgid "Publisher" msgstr "Editora" -#: collections/bibtexcollection.cpp:133 collections/bookcollection.cpp:79 -#: collections/comicbookcollection.cpp:79 +#: collections/bibtexcollection.cpp:134 collections/bookcollection.cpp:80 +#: collections/comicbookcollection.cpp:80 msgid "Edition" msgstr "Edi??o" -#: collections/bookcollection.cpp:90 collections/comicbookcollection.cpp:85 +#: collections/bookcollection.cpp:91 collections/comicbookcollection.cpp:86 msgid "Publication Year" msgstr "Ano de Publica??o" -#: collections/bibtexcollection.cpp:140 collections/bookcollection.cpp:105 -#: collections/comicbookcollection.cpp:90 +#: collections/bibtexcollection.cpp:141 collections/bookcollection.cpp:106 +#: collections/comicbookcollection.cpp:91 msgid "Pages" msgstr "P?ginas" -#: collections/bookcollection.cpp:109 collections/comicbookcollection.cpp:100 +#: collections/coincollection.cpp:67 collections/comicbookcollection.cpp:95 +#: collections/stampcollection.cpp:56 collections/winecollection.cpp:74 +msgid "Country" +msgstr "Pa?s" + +#: collections/bookcollection.cpp:110 collections/comicbookcollection.cpp:101 #: translators/grs1importer.cpp:67 msgid "Language" msgstr "L?ngua" -#: collections/boardgamecollection.cpp:43 collections/bookcollection.cpp:114 -#: collections/comicbookcollection.cpp:106 collections/gamecollection.cpp:54 -#: collections/musiccollection.cpp:67 collections/videocollection.cpp:67 +#: collections/bookcollection.cpp:115 collections/comicbookcollection.cpp:107 +#: collections/gamecollection.cpp:55 collections/musiccollection.cpp:68 +#: collections/videocollection.cpp:68 msgid "Genre" msgstr "G?nero" -#: collections/bibtexcollection.cpp:216 collections/bookcollection.cpp:121 -#: collections/cardcollection.cpp:100 collections/comicbookcollection.cpp:112 -#: collections/musiccollection.cpp:103 fetch/amazonfetcher.cpp:845 +#: collections/bibtexcollection.cpp:217 collections/bookcollection.cpp:122 +#: collections/cardcollection.cpp:101 collections/comicbookcollection.cpp:113 +#: collections/musiccollection.cpp:104 fetch/amazonfetcher.cpp:860 #: translators/grs1importer.cpp:62 translators/risimporter.cpp:250 msgid "Keywords" msgstr "Palavras-chave" -#: collections/comicbookcollection.cpp:120 +#: collections/comicbookcollection.cpp:121 msgid "" "_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very " "Good,Good,Fair,Poor\n" "Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor" msgstr "Novo,Quase novo,Excelente,?timo,Muito bom,Bom,Razo?vel,Ruim" -#: collections/bookcollection.cpp:141 collections/comicbookcollection.cpp:135 +#: collections/bookcollection.cpp:138 collections/comicbookcollection.cpp:123 +#: collections/stampcollection.cpp:20 +msgid "Condition" +msgstr "Condi??o" + +#: collections/bookcollection.cpp:65 collections/cardcollection.cpp:83 +#: collections/coincollection.cpp:103 collections/comicbookcollection.cpp:127 +#: collections/gamecollection.cpp:100 collections/musiccollection.cpp:87 +#: collections/stampcollection.cpp:105 collections/videocollection.cpp:191 +#: collections/winecollection.cpp:80 +msgid "Purchase Date" +msgstr "Data de compra" + +#: collections/bookcollection.cpp:70 collections/cardcollection.cpp:88 +#: collections/coincollection.cpp:108 collections/comicbookcollection.cpp:132 +#: collections/gamecollection.cpp:109 collections/musiccollection.cpp:96 +#: collections/stampcollection.cpp:110 collections/videocollection.cpp:200 +#: collections/winecollection.cpp:85 +msgid "Purchase Price" +msgstr "Pre?o de compra" + +#: collections/bookcollection.cpp:142 collections/comicbookcollection.cpp:136 msgid "Signed" msgstr "Autografado" -#: collections/boardgamecollection.cpp:102 collections/bookcollection.cpp:153 -#: collections/comicbookcollection.cpp:143 collections/gamecollection.cpp:112 -#: collections/musiccollection.cpp:99 collections/videocollection.cpp:203 -#: document.cpp:499 +#: collections/bookcollection.cpp:150 collections/cardcollection.cpp:97 +#: collections/coincollection.cpp:118 collections/comicbookcollection.cpp:140 +#: collections/gamecollection.cpp:105 collections/musiccollection.cpp:92 +#: collections/stampcollection.cpp:120 collections/videocollection.cpp:196 +#: collections/winecollection.cpp:108 +msgid "Gift" +msgstr "Presente" + +#: collections/bookcollection.cpp:154 collections/comicbookcollection.cpp:144 +#: collections/gamecollection.cpp:113 collections/musiccollection.cpp:100 +#: collections/videocollection.cpp:204 document.cpp:488 msgid "Loaned" msgstr "Emprestado" -#: collections/bookcollection.cpp:162 collections/comicbookcollection.cpp:147 +#: collections/bookcollection.cpp:163 collections/comicbookcollection.cpp:148 msgid "Front Cover" msgstr "Capa" +#: collections/bookcollection.cpp:166 collections/cardcollection.cpp:116 +#: collections/coincollection.cpp:128 collections/comicbookcollection.cpp:151 +#: collections/gamecollection.cpp:120 collections/musiccollection.cpp:112 +#: collections/stampcollection.cpp:127 collections/videocollection.cpp:211 +#: collections/winecollection.cpp:115 +msgid "Comments" +msgstr "Coment?rios" + +#: collections/stampcollection.cpp:27 +msgid "Stamps" +msgstr "Selos" + +#: collections/stampcollection.cpp:28 +msgid "My Stamps" +msgstr "Meus Selos" + +#: collections/filecatalog.cpp:46 collections/gamecollection.cpp:88 +#: collections/stampcollection.cpp:45 entryupdater.cpp:231 fetchdialog.cpp:159 +msgid "Description" +msgstr "Descri??o" + +#: collections/coincollection.cpp:51 collections/stampcollection.cpp:51 +msgid "Denomination" +msgstr "Denomina??o" + +#: collections/stampcollection.cpp:62 +msgid "Issue Year" +msgstr "Ano de Edi??o" + +#: collections/stampcollection.cpp:67 collections/videocollection.cpp:173 +msgid "Color" +msgstr "Cor" + +#: collections/stampcollection.cpp:72 +msgid "Scott#" +msgstr "Scott#" + +#: collections/stampcollection.cpp:79 +msgid "" +"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n" +"Superb,Extremely Fine,Very Fine,Fine,Average,Poor" +msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim" + +#: collections/coincollection.cpp:88 collections/stampcollection.cpp:81 +msgid "Grade" +msgstr "Classifica??o" + +#: collections/stampcollection.cpp:86 +msgid "Cancelled" +msgstr "Cancelado" + +#: collections/stampcollection.cpp:90 +msgid "Hinged" +msgstr "Articulado" + +#: collections/stampcollection.cpp:95 +msgid "Centering" +msgstr "Centrada" + +#: collections/stampcollection.cpp:100 +msgid "Gummed" +msgstr "Colado" + +#: collections/cardcollection.cpp:92 collections/coincollection.cpp:112 +#: collections/stampcollection.cpp:114 collections/winecollection.cpp:89 +msgid "Location" +msgstr "Localiza??o" + +#: collections/stampcollection.cpp:124 field.cpp:432 +msgid "Image" +msgstr "Imagem " + #: collections/coincollection.cpp:26 +msgid "Coins" +msgstr "Moedas" + +#: collections/coincollection.cpp:27 msgid "My Coins" msgstr "Minhas Moedas" -#: collections/coincollection.cpp:44 collections/winecollection.cpp:68 +#: collections/coincollection.cpp:45 collections/winecollection.cpp:69 msgid "Type" msgstr "Tipo" -#: collections/bibtexcollection.cpp:145 collections/cardcollection.cpp:66 -#: collections/coincollection.cpp:55 collections/musiccollection.cpp:62 +#: collections/bibtexcollection.cpp:146 collections/cardcollection.cpp:67 +#: collections/coincollection.cpp:56 collections/musiccollection.cpp:63 msgid "Year" msgstr "Ano" -#: collections/coincollection.cpp:60 +#: collections/coincollection.cpp:61 msgid "Mint Mark" msgstr "Marca da Casa Emissora" -#: collections/coincollection.cpp:72 +#: collections/coincollection.cpp:73 msgid "Coin Set" msgstr "Conjunto de Moedas" -#: collections/coincollection.cpp:82 +#: collections/coincollection.cpp:83 msgid "" "_: Coin grade levels - Proof-65,Proof-60,Mint State-65,Mint State-60,Almost " "Uncirculated-55,Almost Uncirculated-50,Extremely Fine-40,Very Fine-30,Very " @@ -492,213 +499,220 @@ "Circulada-50,Extremamente Rara-40,Muito Rara-30,Muito Rara-20,Rara-12,Muito " "Boa-8,Boa-4,Razo?vel" -#: collections/coincollection.cpp:95 +#: collections/coincollection.cpp:96 msgid "" "_: Coin grading services - PCGS,NGC,ANACS,ICG,ASA,PCI\n" "PCGS,NGC,ANACS,ICG,ASA,PCI" msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI" -#: collections/coincollection.cpp:97 +#: collections/coincollection.cpp:98 msgid "Grading Service" msgstr "Servi?os de Classifica??o" -#: collections/coincollection.cpp:121 +#: collections/coincollection.cpp:122 msgid "Obverse" msgstr "Observa??o" -#: collections/coincollection.cpp:124 +#: collections/coincollection.cpp:125 msgid "Reverse" msgstr "Verso" #: collections/bookcollection.cpp:28 +msgid "Books" +msgstr "Livros" + +#: collections/bookcollection.cpp:29 msgid "My Books" msgstr "Meus Livros" -#: collections/bibtexcollection.cpp:79 collections/bookcollection.cpp:50 +#: collections/bibtexcollection.cpp:80 collections/bookcollection.cpp:51 msgid "Author" msgstr "Autor" -#: collections/bookcollection.cpp:57 translators/alexandriaimporter.cpp:121 +#: collections/bookcollection.cpp:58 translators/alexandriaimporter.cpp:121 msgid "Hardback" msgstr "Capa Dura" -#: collections/bookcollection.cpp:57 +#: collections/bookcollection.cpp:58 msgid "Paperback" msgstr "Capa Flex?vel Econ?mica" -#: collections/bookcollection.cpp:57 +#: collections/bookcollection.cpp:58 msgid "Trade Paperback" msgstr "Capa Flex?vel" -#: collections/bookcollection.cpp:58 +#: collections/bookcollection.cpp:59 msgid "E-Book" msgstr "Livro Eletr?nico" -#: collections/bookcollection.cpp:58 +#: collections/bookcollection.cpp:59 msgid "Magazine" msgstr "Revista" -#: collections/bibtexcollection.cpp:157 collections/bookcollection.cpp:58 +#: collections/bibtexcollection.cpp:158 collections/bookcollection.cpp:59 msgid "Journal" msgstr "Jornal" -#: collections/bookcollection.cpp:59 +#: collections/bookcollection.cpp:60 msgid "Binding" msgstr "Formato" -#: collections/bookcollection.cpp:85 +#: collections/bookcollection.cpp:86 msgid "Copyright Year" msgstr "Ano do Copyright" -#: collections/bibtexcollection.cpp:151 collections/bookcollection.cpp:95 +#: collections/bibtexcollection.cpp:152 collections/bookcollection.cpp:96 #: translators/grs1importer.cpp:57 translators/risimporter.cpp:255 msgid "ISBN#" msgstr "ISBN#" -#: collections/bibtexcollection.cpp:154 collections/bookcollection.cpp:97 +#: collections/bibtexcollection.cpp:155 collections/bookcollection.cpp:98 #: translators/grs1importer.cpp:59 translators/risimporter.cpp:259 msgid "International Standard Book Number" msgstr "N?mero Internacional Normalizado do Livro" -#: collections/bookcollection.cpp:100 +#: collections/bookcollection.cpp:101 msgid "LCCN#" msgstr "LCCN#" -#: collections/bookcollection.cpp:102 +#: collections/bookcollection.cpp:103 msgid "Library of Congress Control Number" msgstr "N?mero de Controlo da Biblioteca do Congresso" -#: collections/bookcollection.cpp:131 +#: collections/bookcollection.cpp:132 msgid "Series Number" msgstr "N? de s?rie" -#: collections/bookcollection.cpp:136 mainwindow.cpp:191 +#: collections/bookcollection.cpp:137 mainwindow.cpp:191 msgid "New" msgstr "Novo " -#: collections/bookcollection.cpp:136 +#: collections/bookcollection.cpp:137 msgid "Used" msgstr "Usado" -#: collections/bookcollection.cpp:145 +#: collections/bookcollection.cpp:146 msgid "Read" msgstr "Lido" -#: collections/boardgamecollection.cpp:84 collections/bookcollection.cpp:157 -#: collections/musiccollection.cpp:81 collections/winecollection.cpp:102 -#: field.cpp:455 newstuff/dialog.cpp:114 +#: collections/bookcollection.cpp:158 collections/musiccollection.cpp:82 +#: collections/winecollection.cpp:103 field.cpp:436 newstuff/dialog.cpp:114 msgid "Rating" msgstr "Classifica??o " -#: collections/filecatalog.cpp:25 +#: collections/filecatalog.cpp:26 msgid "My Files" msgstr "Meus Arquivos" -#: borrowerdialog.cpp:48 collections/filecatalog.cpp:36 +#: borrowerdialog.cpp:48 collections/filecatalog.cpp:37 #: newstuff/dialog.cpp:112 msgid "Name" msgstr "Nome" -#: collections/filecatalog.cpp:41 fetch/entrezfetcher.cpp:395 -#: fetch/entrezfetcher.cpp:464 field.cpp:449 +#: collections/filecatalog.cpp:42 fetch/entrezfetcher.cpp:395 +#: fetch/entrezfetcher.cpp:464 field.cpp:430 #: translators/gcfilmsimporter.cpp:53 translators/risimporter.cpp:261 msgid "URL" msgstr "URL" -#: collections/bibtexcollection.cpp:201 collections/filecatalog.cpp:50 +#: collections/bibtexcollection.cpp:202 collections/filecatalog.cpp:51 msgid "Volume" msgstr "Volume" -#: collections/filecatalog.cpp:55 +#: collections/filecatalog.cpp:56 msgid "Folder" msgstr "Pasta" -#: collections/filecatalog.cpp:60 +#: collections/filecatalog.cpp:61 msgid "Mimetype" msgstr "Tipo MIME" -#: collections/filecatalog.cpp:65 +#: collections/filecatalog.cpp:66 msgid "Size" msgstr "Tamanho" -#: collections/filecatalog.cpp:69 +#: collections/filecatalog.cpp:70 msgid "Permissions" msgstr "Permiss?es" -#: collections/filecatalog.cpp:74 +#: collections/filecatalog.cpp:75 msgid "Owner" msgstr "Dono" -#: collections/filecatalog.cpp:79 +#: collections/filecatalog.cpp:80 msgid "Group" msgstr "Grupo" -#: collections/filecatalog.cpp:85 +#: collections/filecatalog.cpp:86 msgid "Created" msgstr "Criado" -#: collections/filecatalog.cpp:89 +#: collections/filecatalog.cpp:90 msgid "Modified" msgstr "Modificado" -#: collections/filecatalog.cpp:93 +#: collections/filecatalog.cpp:94 msgid "Meta Info" msgstr "Meta-informa??o" -#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:95 +#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:96 msgid "Property" msgstr "Propriedade" -#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:96 +#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:97 msgid "Value" msgstr "Valor" -#: collections/filecatalog.cpp:99 +#: collections/filecatalog.cpp:100 msgid "Icon" msgstr "?cone" #: collections/winecollection.cpp:26 +msgid "Wines" +msgstr "Vinhos" + +#: collections/winecollection.cpp:27 msgid "My Wines" msgstr "Meus Vinhos" -#: collections/videocollection.cpp:115 collections/winecollection.cpp:43 +#: collections/videocollection.cpp:116 collections/winecollection.cpp:44 msgid "Producer" msgstr "Produtor" -#: collections/winecollection.cpp:49 +#: collections/winecollection.cpp:50 msgid "Appellation" msgstr "Apela??o" -#: collections/winecollection.cpp:55 +#: collections/winecollection.cpp:56 msgid "Varietal" msgstr "Variedade" # N?o sei ainda qual a tradu??o correta -#: collections/winecollection.cpp:61 +#: collections/winecollection.cpp:62 msgid "Vintage" msgstr "Safra" -#: collections/winecollection.cpp:67 +#: collections/winecollection.cpp:68 msgid "Red Wine" msgstr "Vinho tinto" -#: collections/winecollection.cpp:67 +#: collections/winecollection.cpp:68 msgid "White Wine" msgstr "Vinho branco" -#: collections/winecollection.cpp:67 +#: collections/winecollection.cpp:68 msgid "Sparkling Wine" msgstr "Espumoso" -#: collections/cardcollection.cpp:105 collections/winecollection.cpp:93 +#: collections/cardcollection.cpp:106 collections/winecollection.cpp:94 msgid "Quantity" msgstr "Quantidade" -#: collections/winecollection.cpp:97 +#: collections/winecollection.cpp:98 msgid "Drink By" msgstr "Bebido Por" -#: collections/winecollection.cpp:111 +#: collections/winecollection.cpp:112 msgid "Label Image" msgstr "Etiqueta" @@ -711,262 +725,269 @@ msgstr "Caracter?sticas" #: collections/videocollection.cpp:28 +msgid "Videos" +msgstr "V?deos" + +#: collections/videocollection.cpp:29 msgid "My Videos" msgstr "Meus V?deos" -#: collections/musiccollection.cpp:44 collections/videocollection.cpp:46 +#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47 msgid "DVD" msgstr "DVD" -#: collections/videocollection.cpp:46 +#: collections/videocollection.cpp:47 msgid "VHS" msgstr "VHS" -#: collections/videocollection.cpp:46 +#: collections/videocollection.cpp:47 msgid "VCD" msgstr "VCD" -#: collections/videocollection.cpp:46 +#: collections/videocollection.cpp:47 msgid "DivX" msgstr "DivX" -#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47 +#: collections/musiccollection.cpp:46 collections/videocollection.cpp:48 msgid "Medium" msgstr "M?dia" -#: collections/videocollection.cpp:52 +#: collections/videocollection.cpp:53 msgid "Production Year" msgstr "Ano de Produ??o" -#: collections/videocollection.cpp:60 +#: collections/videocollection.cpp:61 msgid "" "_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n" "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" msgstr "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" -#: collections/videocollection.cpp:62 +#: collections/videocollection.cpp:63 msgid "Certification" msgstr "Certifica??o" -#: collections/videocollection.cpp:74 +#: collections/videocollection.cpp:75 msgid "Region 1" msgstr "Regi?o 1" -#: collections/videocollection.cpp:75 +#: collections/videocollection.cpp:76 msgid "Region 2" msgstr "Regi?o 2" -#: collections/videocollection.cpp:76 +#: collections/videocollection.cpp:77 msgid "Region 3" msgstr "Regi?o 3" -#: collections/videocollection.cpp:77 +#: collections/videocollection.cpp:78 msgid "Region 4" msgstr "Regi?o 4" -#: collections/videocollection.cpp:78 +#: collections/videocollection.cpp:79 msgid "Region 5" msgstr "Regi?o 5" -#: collections/videocollection.cpp:79 +#: collections/videocollection.cpp:80 msgid "Region 6" msgstr "Regi?o 6" -#: collections/videocollection.cpp:80 +#: collections/videocollection.cpp:81 msgid "Region 7" msgstr "Regi?o 7" -#: collections/videocollection.cpp:81 +#: collections/videocollection.cpp:82 msgid "Region 8" msgstr "Regi?o 8" -#: collections/videocollection.cpp:82 +#: collections/videocollection.cpp:83 msgid "Region" msgstr "Regi?o" -#: collections/videocollection.cpp:87 +#: collections/videocollection.cpp:88 msgid "Nationality" msgstr "Nacionalidade" -#: collections/videocollection.cpp:94 +#: collections/videocollection.cpp:95 msgid "NTSC" msgstr "NTSC" -#: collections/videocollection.cpp:94 +#: collections/videocollection.cpp:95 msgid "PAL" msgstr "PAL" -#: collections/videocollection.cpp:94 +#: collections/videocollection.cpp:95 msgid "SECAM" msgstr "SECAM" -#: collections/videocollection.cpp:95 +#: collections/videocollection.cpp:96 msgid "Format" msgstr "Formato" -#: collections/videocollection.cpp:100 +#: collections/videocollection.cpp:101 msgid "Cast" msgstr "Elenco" -#: collections/videocollection.cpp:102 translators/tellicoimporter.cpp:408 +#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:404 msgid "Actor/Actress" msgstr "Ator/Atriz" -#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:409 +#: collections/videocollection.cpp:104 translators/tellicoimporter.cpp:405 msgid "Role" msgstr "Personagem" -#: collections/videocollection.cpp:106 +#: collections/videocollection.cpp:107 msgid "A table for the cast members, along with the roles they play" -msgstr "" -"Uma tabela para o elenco do filme, com o papel representado por cada um" +msgstr "Uma tabela para o elenco do filme, com o papel representado por cada um" -#: collections/videocollection.cpp:109 +#: collections/videocollection.cpp:110 msgid "Director" msgstr "Diretor" -#: collections/videocollection.cpp:127 +#: collections/videocollection.cpp:128 msgid "Composer" msgstr "Compositor" -#: collections/videocollection.cpp:133 +#: collections/videocollection.cpp:134 msgid "Studio" msgstr "Est?dio" -#: collections/videocollection.cpp:139 +#: collections/videocollection.cpp:140 msgid "Language Tracks" msgstr "L?nguas dispon?veis" -#: collections/videocollection.cpp:145 +#: collections/videocollection.cpp:146 msgid "Subtitle Languages" msgstr "L?ngua das Legendas" -#: collections/videocollection.cpp:151 +#: collections/videocollection.cpp:152 msgid "Audio Tracks" msgstr "?udios Dispon?veis" -#: collections/videocollection.cpp:157 +#: collections/videocollection.cpp:158 msgid "Running Time" msgstr "Dura??o" -#: collections/videocollection.cpp:159 +#: collections/videocollection.cpp:160 msgid "The running time of the video (in minutes)" msgstr "Dura??o do v?deo (em minutos)" -#: collections/videocollection.cpp:162 +#: collections/videocollection.cpp:163 msgid "Aspect Ratio" msgstr "Formato da Imagem" -#: collections/videocollection.cpp:167 translators/tellicoimporter.cpp:890 +#: collections/videocollection.cpp:168 translators/tellicoimporter.cpp:886 msgid "Widescreen" msgstr "Tela Larga" -#: collections/videocollection.cpp:172 +#: collections/videocollection.cpp:173 msgid "Black & White" msgstr "Preto & Branco" -#: collections/videocollection.cpp:173 +#: collections/videocollection.cpp:174 msgid "Color Mode" msgstr "Formato de Cor" -#: collections/videocollection.cpp:178 +#: collections/videocollection.cpp:179 msgid "Director's Cut" msgstr "Cortes do Diretor" -#: collections/videocollection.cpp:182 fetch/ibsfetcher.cpp:352 +#: collections/videocollection.cpp:183 fetch/ibsfetcher.cpp:352 msgid "Plot Summary" msgstr "Resumo da A??o" -#: collections/gamecollection.cpp:90 collections/videocollection.cpp:185 +#: collections/gamecollection.cpp:91 collections/videocollection.cpp:186 msgid "Personal Rating" msgstr "Nota Pessoal" -#: collections/boardgamecollection.cpp:106 collections/gamecollection.cpp:116 -#: collections/musiccollection.cpp:108 collections/videocollection.cpp:207 +#: collections/gamecollection.cpp:117 collections/musiccollection.cpp:109 +#: collections/videocollection.cpp:208 msgid "Cover" msgstr "Capa" #: collections/gamecollection.cpp:26 +msgid "Games" +msgstr "Jogos" + +#: collections/gamecollection.cpp:27 msgid "My Games" msgstr "Meus Jogos" -#: collections/gamecollection.cpp:44 +#: collections/gamecollection.cpp:45 msgid "Xbox 360" msgstr "Xbox 360" -#: collections/gamecollection.cpp:44 +#: collections/gamecollection.cpp:45 msgid "Xbox" msgstr "Xbox" -#: collections/gamecollection.cpp:45 +#: collections/gamecollection.cpp:46 msgid "PlayStation3" msgstr "PlayStation3" -#: collections/gamecollection.cpp:45 +#: collections/gamecollection.cpp:46 msgid "PlayStation2" msgstr "PlayStation2" -#: collections/gamecollection.cpp:45 +#: collections/gamecollection.cpp:46 msgid "PlayStation" msgstr "PlayStation" -#: collections/gamecollection.cpp:45 +#: collections/gamecollection.cpp:46 msgid "" "_: PlayStation Portable\n" "PSP" msgstr "PSP" -#: collections/gamecollection.cpp:46 +#: collections/gamecollection.cpp:47 msgid "Nintendo Wii" msgstr "Revolu??o" -#: collections/gamecollection.cpp:46 +#: collections/gamecollection.cpp:47 msgid "Nintendo DS" msgstr "Nintendo DS" -#: collections/gamecollection.cpp:46 +#: collections/gamecollection.cpp:47 msgid "GameCube" msgstr "GameCube" -#: collections/gamecollection.cpp:46 +#: collections/gamecollection.cpp:47 msgid "Dreamcast" msgstr "Dreamcast" -#: collections/gamecollection.cpp:47 +#: collections/gamecollection.cpp:48 msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: collections/gamecollection.cpp:47 +#: collections/gamecollection.cpp:48 msgid "Game Boy Color" msgstr "Game Boy Color" -#: collections/gamecollection.cpp:47 +#: collections/gamecollection.cpp:48 msgid "Game Boy" msgstr "Game Boy" -#: collections/gamecollection.cpp:48 +#: collections/gamecollection.cpp:49 msgid "" "_: Windows Platform\n" "Windows" msgstr "Windows" -#: collections/gamecollection.cpp:48 +#: collections/gamecollection.cpp:49 msgid "Mac OS" msgstr "Mac OS" -#: collections/gamecollection.cpp:49 +#: collections/gamecollection.cpp:50 msgid "Platform" msgstr "Platforma" -#: collections/boardgamecollection.cpp:55 collections/gamecollection.cpp:60 +#: collections/gamecollection.cpp:61 msgid "Release Year" msgstr "Ano de Lan?amento" -#: collections/gamecollection.cpp:71 +#: collections/gamecollection.cpp:72 msgid "Developer" msgstr "Desenvolvedor" -#: collections/gamecollection.cpp:80 +#: collections/gamecollection.cpp:81 msgid "" "_: Video game ratings - Unrated, Adults Only, Mature, Teen, Everyone, Early " "Childhood, Pending\n" @@ -975,175 +996,184 @@ "N?o Classificado, Somente Adultos, Jovens, Adolescentes, Sem Censura, " "Infantil, Pendente" -#: collections/gamecollection.cpp:82 +#: collections/gamecollection.cpp:83 msgid "ESRB Rating" msgstr "Classifica??o da ESRB" -#: collections/gamecollection.cpp:95 +#: collections/gamecollection.cpp:96 msgid "Completed" msgstr "Completado" #: collections/cardcollection.cpp:26 +msgid "Cards" +msgstr "Cart?es" + +#: collections/cardcollection.cpp:27 msgid "My Cards" msgstr "Meus Cart?es" -#: collections/cardcollection.cpp:43 +#: collections/cardcollection.cpp:44 msgid "Player" msgstr "Jogador" -#: collections/cardcollection.cpp:49 +#: collections/cardcollection.cpp:50 msgid "Team" msgstr "Time" -#: collections/cardcollection.cpp:55 +#: collections/cardcollection.cpp:56 msgid "Brand" msgstr "Marca" -#: collections/cardcollection.cpp:62 +#: collections/cardcollection.cpp:63 msgid "Card Number" msgstr "N?mero do Cart?o" -#: collections/cardcollection.cpp:77 +#: collections/cardcollection.cpp:78 msgid "Card Type" msgstr "Tipo do Cart?o" -#: collections/cardcollection.cpp:109 +#: collections/cardcollection.cpp:110 msgid "Front Image" msgstr "Imagem Frontal" -#: collections/cardcollection.cpp:112 +#: collections/cardcollection.cpp:113 msgid "Back Image" msgstr "Imagem no Verso" -#: collections/boardgamecollection.cpp:26 -#, fuzzy -msgid "My Board Games" -msgstr "Meus Jogos" +#: collections/bibtexcollection.cpp:30 +msgid "Entries" +msgstr "Registros" -#: collections/boardgamecollection.cpp:49 -msgid "Mechanism" -msgstr "" - -#: collections/boardgamecollection.cpp:66 -msgid "Designer" -msgstr "" - -#: collections/boardgamecollection.cpp:72 -msgid "Number of Players" -msgstr "" - -#: collections/boardgamecollection.cpp:77 -msgid "BoardGameGeek ID" -msgstr "" - -#: collectionfactory.cpp:123 collections/bibtexcollection.cpp:30 +#: collectionfactory.cpp:118 collections/bibtexcollection.cpp:31 msgid "Bibliography" msgstr "Bibliografia" -#: collections/bibtexcollection.cpp:72 +#: collections/bibtexcollection.cpp:73 msgid "Entry Type" msgstr "Tipo de Registro" -#: collections/bibtexcollection.cpp:76 +#: collections/bibtexcollection.cpp:77 msgid "These entry types are specific to bibtex. See the bibtex documentation." msgstr "" "Estes tipos de registro s?o espec?ficos para o BibTeX. Consulte a " "documenta??o do mesmo." -#: collections/bibtexcollection.cpp:86 +#: collections/bibtexcollection.cpp:87 msgid "Bibtex Key" msgstr "Chave do BibTeX" -#: collections/bibtexcollection.cpp:92 +#: collections/bibtexcollection.cpp:93 msgid "Book Title" msgstr "T?tulo do livro" -#: collections/bibtexcollection.cpp:98 +#: collections/bibtexcollection.cpp:99 msgid "Editor" msgstr "Editor" -#: collections/bibtexcollection.cpp:105 +#: collections/bibtexcollection.cpp:106 msgid "Organization" msgstr "Organiza??o" -#: collections/bibtexcollection.cpp:127 fetch/srufetcher.cpp:434 -#: fetch/z3950fetcher.cpp:651 +#: collections/bibtexcollection.cpp:128 fetch/srufetcher.cpp:434 +#: fetch/z3950fetcher.cpp:669 msgid "Address" msgstr "Endere?o" -#: collections/bibtexcollection.cpp:166 +#: collections/bibtexcollection.cpp:167 msgid "Month" msgstr "M?s" -#: collections/bibtexcollection.cpp:172 field.cpp:448 +#: collections/bibtexcollection.cpp:173 field.cpp:429 msgid "Number" msgstr "N?mero " -#: collections/bibtexcollection.cpp:177 +#: collections/bibtexcollection.cpp:178 msgid "How Published" msgstr "Modo de publica??o" -#: collections/bibtexcollection.cpp:189 +#: collections/bibtexcollection.cpp:190 msgid "Chapter" msgstr "Cap?tulo" -#: collections/bibtexcollection.cpp:206 +#: collections/bibtexcollection.cpp:207 msgid "Cross-Reference" msgstr "Refer?ncia cruzada" -#: collections/bibtexcollection.cpp:221 fetch/entrezfetcher.cpp:463 -#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:652 +#: collections/bibtexcollection.cpp:222 fetch/entrezfetcher.cpp:463 +#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:670 #: translators/risimporter.cpp:246 msgid "Abstract" msgstr "Resumo" -#: collections/bibtexcollection.cpp:225 +#: collections/bibtexcollection.cpp:226 msgid "Notes" msgstr "Notas" #: collections/musiccollection.cpp:26 +msgid "Albums" +msgstr "?lbuns" + +#: collections/musiccollection.cpp:27 msgid "My Music" msgstr "Minhas M?sicas" -#: collections/musiccollection.cpp:37 +#: collections/musiccollection.cpp:38 msgid "Album" msgstr "?lbum" -#: collections/musiccollection.cpp:44 translators/freedbimporter.cpp:224 +#: collections/musiccollection.cpp:45 translators/freedbimporter.cpp:224 #: translators/freedbimporter.cpp:337 translators/freedbimporter.cpp:404 msgid "Compact Disc" msgstr "CD" -#: collections/musiccollection.cpp:44 +#: collections/musiccollection.cpp:45 msgid "Cassette" msgstr "Cassete" -#: collections/musiccollection.cpp:44 +#: collections/musiccollection.cpp:45 msgid "Vinyl" msgstr "Vinil" -#: collections/musiccollection.cpp:50 collections/musiccollection.cpp:77 -#: translators/tellicoimporter.cpp:405 +#: collections/musiccollection.cpp:51 collections/musiccollection.cpp:78 +#: translators/tellicoimporter.cpp:401 msgid "Artist" msgstr "Artista" -#: collections/musiccollection.cpp:56 +#: collections/musiccollection.cpp:57 msgid "Label" msgstr "Selo" -#: collections/musiccollection.cpp:73 +#: collections/musiccollection.cpp:74 msgid "Tracks" msgstr "Pistas" -#: collections/musiccollection.cpp:78 translators/tellicoimporter.cpp:406 +#: collections/musiccollection.cpp:79 translators/tellicoimporter.cpp:402 msgid "Length" msgstr "Dura??o" +#: core/tellico_config.cpp:118 +msgid "" +"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to," +"up,with" +msgstr "um,uma,e,em,de,o,a " + +#: core/tellico_config.cpp:121 +msgid "the" +msgstr "o,a,os,as " + +#: core/tellico_config.cpp:124 +msgid "jr.,jr,iii,iv" +msgstr "jr.,jr,iii,iv " + +#: core/tellico_config.cpp:127 +msgid "de,van,der,van der,von" +msgstr "de,o,a " + #: fetch/isbndbfetcher.cpp:50 msgid "ISBNdb.com" msgstr "ISBNdb.com" -#: fetch/amazonfetcher.cpp:190 fetch/animenfofetcher.cpp:74 +#: fetch/amazonfetcher.cpp:189 fetch/animenfofetcher.cpp:74 #: fetch/ibsfetcher.cpp:71 fetch/isbndbfetcher.cpp:75 #: fetch/yahoofetcher.cpp:92 msgid "%1 does not allow searching for this collection type." @@ -1151,7 +1181,7 @@ #: fetch/animenfofetcher.cpp:369 fetch/entrezfetcher.cpp:443 #: fetch/ibsfetcher.cpp:401 fetch/isbndbfetcher.cpp:257 -#: fetch/yahoofetcher.cpp:392 +#: fetch/yahoofetcher.cpp:391 msgid "This source has no options." msgstr "Esta fonte n?o tem op??es" @@ -1175,7 +1205,7 @@ msgid "Record syntax error" msgstr "Erro de Sintaxe no Registro" -#: fetch/z3950connection.cpp:317 +#: fetch/z3950connection.cpp:316 msgid "Connection error %1: %2" msgstr "Erro de conex?o %1: %2" @@ -1187,20 +1217,20 @@ msgid "Library of Congress (US)" msgstr "Biblioteca do Congresso (Estados Unidos)" -#: fetch/imdbfetcher.cpp:1090 fetch/srufetcher.cpp:349 -#: fetch/z3950fetcher.cpp:487 +#: fetch/imdbfetcher.cpp:1076 fetch/srufetcher.cpp:349 +#: fetch/z3950fetcher.cpp:505 msgid "Hos&t: " msgstr "&Servidor:" -#: fetch/srufetcher.cpp:355 fetch/z3950fetcher.cpp:493 +#: fetch/srufetcher.cpp:355 fetch/z3950fetcher.cpp:511 msgid "Enter the host name of the server." msgstr "Insira o nome do servidor" -#: fetch/srufetcher.cpp:360 fetch/z3950fetcher.cpp:498 +#: fetch/srufetcher.cpp:360 fetch/z3950fetcher.cpp:516 msgid "&Port: " msgstr "&Porta:" -#: fetch/srufetcher.cpp:365 fetch/z3950fetcher.cpp:503 +#: fetch/srufetcher.cpp:365 fetch/z3950fetcher.cpp:521 #, c-format msgid "Enter the port number of the server. The default is %1." msgstr "Insira o n?mero da porta do servidor z39.50. A porta padr?o ? %1." @@ -1225,75 +1255,79 @@ msgid "Yahoo! Audio Search" msgstr "Yahoo! Audio Search" -#: fetch/amazonfetcher.cpp:683 fetch/yahoofetcher.cpp:242 +#: fetch/amazonfetcher.cpp:696 fetch/yahoofetcher.cpp:241 msgid "The cover image could not be loaded." msgstr "A imagem da capa n?o p?de ser carregada." -#: fetch/amazonfetcher.cpp:51 +#: fetch/amazonfetcher.cpp:50 msgid "Amazon Link" msgstr "Amazon Link" -#: fetch/amazonfetcher.cpp:60 +#: fetch/amazonfetcher.cpp:59 msgid "Amazon (US)" msgstr "Amazon (Estados Unidos)" -#: fetch/amazonfetcher.cpp:63 +#: fetch/amazonfetcher.cpp:62 msgid "Amazon (UK)" msgstr "Amazon (Reino Unido)" -#: fetch/amazonfetcher.cpp:66 +#: fetch/amazonfetcher.cpp:65 msgid "Amazon (Germany)" msgstr "Amazon (Alemanha)" -#: fetch/amazonfetcher.cpp:69 +#: fetch/amazonfetcher.cpp:68 msgid "Amazon (Japan)" msgstr "Amazon (Jap?o)" -#: fetch/amazonfetcher.cpp:72 +#: fetch/amazonfetcher.cpp:71 msgid "Amazon (France)" msgstr "Amazon (Fran?a)" -#: fetch/amazonfetcher.cpp:75 +#: fetch/amazonfetcher.cpp:74 msgid "Amazon (Canada)" msgstr "Amazon (Canad?)" -#: fetch/amazonfetcher.cpp:97 +#: fetch/amazonfetcher.cpp:96 msgid "Amazon.com Web Services" msgstr "Servi?os Web da Amazon.com" -#: fetch/amazonfetcher.cpp:521 +#: fetch/amazonfetcher.cpp:513 msgid "Results from %1: %2/%3" msgstr "Resultados de %1 : %2/%3" -#: fetch/amazonfetcher.cpp:758 +#: fetch/amazonfetcher.cpp:537 fetch/z3950fetcher.cpp:425 +msgid "No entries were found for the following ISBN values:" +msgstr "Nenhuma entrada encontrada para os ISBN seguintes:" + +#: fetch/amazonfetcher.cpp:773 msgid "Co&untry: " msgstr "&Pa?s" -#: fetch/amazonfetcher.cpp:762 +#: fetch/amazonfetcher.cpp:777 msgid "United States" msgstr "Estados Unidos" -#: fetch/amazonfetcher.cpp:763 +#: fetch/amazonfetcher.cpp:778 msgid "United Kingdom" msgstr "Reino Unido" -#: fetch/amazonfetcher.cpp:764 +#: fetch/amazonfetcher.cpp:779 msgid "Germany" msgstr "Alemanha" -#: fetch/amazonfetcher.cpp:765 +#: fetch/amazonfetcher.cpp:780 msgid "Japan" msgstr "Jap?o" -#: fetch/amazonfetcher.cpp:766 +#: fetch/amazonfetcher.cpp:781 msgid "France" msgstr "Fran?a" -#: fetch/amazonfetcher.cpp:767 +#: fetch/amazonfetcher.cpp:782 msgid "Canada" msgstr "Canad?" -#: fetch/amazonfetcher.cpp:771 +#: fetch/amazonfetcher.cpp:786 msgid "" "Amazon.com provides data from several different localized sites. Choose the " "one you wish to use for this data source." @@ -1301,27 +1335,27 @@ "Amazon.com disponibiliza dados de v?rios sites em diferentes " "localiza??es. Escolha o que deseja utilizar como fonte de dados." -#: fetch/amazonfetcher.cpp:777 +#: fetch/amazonfetcher.cpp:792 msgid "&Image size: " msgstr "&Tamanho da Imagem" -#: fetch/amazonfetcher.cpp:781 +#: fetch/amazonfetcher.cpp:796 msgid "Small Image" msgstr "Imagem Pequena" -#: fetch/amazonfetcher.cpp:782 +#: fetch/amazonfetcher.cpp:797 msgid "Medium Image" msgstr "Imagem M?dia" -#: fetch/amazonfetcher.cpp:783 +#: fetch/amazonfetcher.cpp:798 msgid "Large Image" msgstr "Imagem Grande" -#: fetch/amazonfetcher.cpp:784 +#: fetch/amazonfetcher.cpp:799 msgid "No Image" msgstr "Sem Imagem" -#: fetch/amazonfetcher.cpp:787 fetch/imdbfetcher.cpp:1115 +#: fetch/amazonfetcher.cpp:802 fetch/imdbfetcher.cpp:1101 msgid "" "The cover image may be downloaded as well. However, too many large images in " "the collection may degrade performance." @@ -1329,11 +1363,11 @@ "A imagem da capa pode obtida da mesma forma. No entanto, imagens grandes na " "cole??o podem degradar o desempenho." -#: fetch/amazonfetcher.cpp:793 +#: fetch/amazonfetcher.cpp:808 msgid "&Associate's ID: " msgstr "Identidade &associada: " -#: fetch/amazonfetcher.cpp:798 +#: fetch/amazonfetcher.cpp:813 msgid "" "The associate's id identifies the person accessing the Amazon.com Web " "Services, and is included in any links to the Amazon.com site." @@ -1341,27 +1375,27 @@ "A identidade associada identifica a pessoa acessando os servi?os Web " "Amazon.com, e ser? inclu?da em todos os links para o site Amazon.com." -#: fetch/z3950fetcher.cpp:78 fetch/z3950fetcher.cpp:738 +#: fetch/z3950fetcher.cpp:78 fetch/z3950fetcher.cpp:756 msgid "z39.50 Server" msgstr "Servidor z39.50" -#: fetch/z3950fetcher.cpp:477 +#: fetch/z3950fetcher.cpp:495 msgid "Use preset &server:" msgstr "Usar &servidor pr?-definido" -#: fetch/z3950fetcher.cpp:508 +#: fetch/z3950fetcher.cpp:526 msgid "&Database: " msgstr "Base de &dados:" -#: fetch/z3950fetcher.cpp:513 +#: fetch/z3950fetcher.cpp:531 msgid "Enter the database name used by the server." msgstr "Insira o nome da base de dados utilizado pelo servidor." -#: fetch/z3950fetcher.cpp:518 +#: fetch/z3950fetcher.cpp:536 msgid "Ch&aracter set: " msgstr "Conjunto de c&aracteres: " -#: fetch/z3950fetcher.cpp:527 +#: fetch/z3950fetcher.cpp:545 msgid "" "Enter the character set encoding used by the z39.50 server. The most likely " "choice is MARC-8, although ISO-8859-1 is common as well." @@ -1369,15 +1403,15 @@ "Insira o conjunto de caracteres utilizado pelo servidor z39.50. A escolha " "mais prov?vel ? MARC-8, apesar do ISO-8859-1 ser t?o comum quanto." -#: fetch/z3950fetcher.cpp:533 +#: fetch/z3950fetcher.cpp:551 msgid "&Format: " msgstr "&Formato:" -#: fetch/z3950fetcher.cpp:536 +#: fetch/z3950fetcher.cpp:554 msgid "Auto-detect" msgstr "Detectar automaticamente" -#: fetch/z3950fetcher.cpp:544 +#: fetch/z3950fetcher.cpp:562 msgid "" "Enter the data format used by the z39.50 server. Tellico will attempt to " "automatically detect the best setting if auto-detect is selected." @@ -1386,15 +1420,15 @@ "tentar detectar a melhor configura??o se Detectar automaticamente " "estiver selecionado." -#: fetch/z3950fetcher.cpp:550 +#: fetch/z3950fetcher.cpp:568 msgid "&User: " msgstr "&Usu?rio:" -#: fetch/z3950fetcher.cpp:553 fetch/z3950fetcher.cpp:565 +#: fetch/z3950fetcher.cpp:571 fetch/z3950fetcher.cpp:583 msgid "Optional" msgstr "Opcional" -#: fetch/z3950fetcher.cpp:556 +#: fetch/z3950fetcher.cpp:574 msgid "" "Enter the authentication user name used by the z39.50 database. Most servers " "do not need one." @@ -1402,11 +1436,11 @@ "Insira o nome da base de dados utilizada pelo servidor z39.50. A maioria dos " "servidores n?o precisam dele." -#: fetch/z3950fetcher.cpp:562 +#: fetch/z3950fetcher.cpp:580 msgid "Pass&word: " msgstr "&Senha:" -#: fetch/z3950fetcher.cpp:569 +#: fetch/z3950fetcher.cpp:587 msgid "" "Enter the authentication password used by the z39.50 database. Most servers " "do not need one. The password will be saved in plain text in the Tellico " @@ -1416,7 +1450,7 @@ "servidores n?o precisam dela. A senha ser? salva em formato texto no " "arquivo de configura??o do Tellico." -#: fetch/z3950fetcher.cpp:653 +#: fetch/z3950fetcher.cpp:671 msgid "Illustrator" msgstr "Ilustrador" @@ -1424,31 +1458,28 @@ msgid "External Application" msgstr "Aplicativo Externo" -#: configdialog.cpp:353 fetch/execexternalfetcher.cpp:344 -#: translators/csvimporter.cpp:178 +#: configdialog.cpp:355 fetch/execexternalfetcher.cpp:336 +#: translators/csvimporter.cpp:171 msgid "Collection &type:" msgstr "&Tipo de cole??o:" -#: fetch/execexternalfetcher.cpp:349 -msgid "" -"Set the collection type of the data returned from the external application." -msgstr "" -"Especifique o tipo de cole??o dos dados retornados do aplicativo externo." +#: fetch/execexternalfetcher.cpp:341 +msgid "Set the collection type of the data returned from the external application." +msgstr "Especifique o tipo de cole??o dos dados retornados do aplicativo externo." -#: fetch/execexternalfetcher.cpp:354 +#: fetch/execexternalfetcher.cpp:346 msgid "&Result type: " msgstr "Tipo de &Resultado:" -#: fetch/execexternalfetcher.cpp:363 +#: fetch/execexternalfetcher.cpp:355 msgid "Set the result type of the data returned from the external application." -msgstr "" -"Especifique o tipo de resultado dos dados retornados do aplicativo externo." +msgstr "Especifique o tipo de resultado dos dados retornados do aplicativo externo." -#: fetch/execexternalfetcher.cpp:368 +#: fetch/execexternalfetcher.cpp:360 msgid "Application &path: " msgstr "&Caminho do Aplicativo:" -#: fetch/execexternalfetcher.cpp:373 +#: fetch/execexternalfetcher.cpp:365 msgid "" "Set the path of the application to run that should output a valid Tellico " "data file." @@ -1456,11 +1487,11 @@ "Especifique o caminho do aplicativo a ser executado que deve gerar um " "arquivo de dados Tellico v?lido." -#: fetch/execexternalfetcher.cpp:378 +#: fetch/execexternalfetcher.cpp:370 msgid "Select the search keys supported by the data source." msgstr "Selecione as chaves de procura suportadas pela fonte de dados." -#: fetch/execexternalfetcher.cpp:379 +#: fetch/execexternalfetcher.cpp:371 msgid "" "Add any arguments that may be needed. %1 will be replaced by the " "search term." @@ -1468,15 +1499,15 @@ "Adicione todos os argumentos necess?rios. %1 vai ser substitu?do " "pelo termo a ser pesquisado." -#: fetch/execexternalfetcher.cpp:380 +#: fetch/execexternalfetcher.cpp:372 msgid "Arguments" msgstr "Argumentos" -#: fetch/execexternalfetcher.cpp:413 newstuff/dialog.cpp:151 +#: fetch/execexternalfetcher.cpp:405 newstuff/dialog.cpp:151 msgid "Update" msgstr "Atualizar" -#: fetch/execexternalfetcher.cpp:420 +#: fetch/execexternalfetcher.cpp:412 msgid "" "

Enter the arguments which should be used to search for available updates " "to an entry.

The format is the same as for Dependent fields, " @@ -1501,39 +1532,38 @@ msgid "Internet Movie Database" msgstr "Base de dados de filmes na Internet" -#: fetch/imdbfetcher.cpp:578 +#: fetch/imdbfetcher.cpp:577 msgid "Select IMDB Result" msgstr "Selecione o resultado IMDB" -#: fetch/imdbfetcher.cpp:581 -msgid "" -"Your search returned multiple matches. Please select one below." +#: fetch/imdbfetcher.cpp:580 +msgid "Your search returned multiple matches. Please select one below." msgstr "" "A sua pesquisa retornou v?rios resultados. Por favor selecione um dos " "seguintes." -#: fetch/imdbfetcher.cpp:596 +#: fetch/imdbfetcher.cpp:595 msgid "Select a search result." msgstr "Selecione um resultado da pesquisa." -#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:1154 +#: fetch/imdbfetcher.cpp:687 fetch/imdbfetcher.cpp:1140 msgid "IMDB Link" msgstr "Link IMDB" -#: fetch/animenfofetcher.cpp:259 fetch/imdbfetcher.cpp:743 -#: fetch/imdbfetcher.cpp:1156 +#: fetch/animenfofetcher.cpp:259 fetch/imdbfetcher.cpp:742 +#: fetch/imdbfetcher.cpp:1142 msgid "Alternative Titles" msgstr "T?tulos alternativos" -#: fetch/imdbfetcher.cpp:923 fetch/imdbfetcher.cpp:1155 +#: fetch/imdbfetcher.cpp:909 fetch/imdbfetcher.cpp:1141 msgid "IMDB Rating" msgstr "Classifica??o IMDB" -#: fetch/imdbfetcher.cpp:1034 fetch/imdbfetcher.cpp:1157 +#: fetch/imdbfetcher.cpp:1020 fetch/imdbfetcher.cpp:1143 msgid "Certifications" msgstr "Certifica??es" -#: fetch/imdbfetcher.cpp:1095 +#: fetch/imdbfetcher.cpp:1081 msgid "" "The Internet Movie Database uses several different servers. Choose the one " "you wish to use." @@ -1541,11 +1571,11 @@ "A base de dados de filmes na Internet (IMDB) utiliza v?rios servidores " "diferentes. Escolha o que deseja utilizar." -#: fetch/imdbfetcher.cpp:1101 +#: fetch/imdbfetcher.cpp:1087 msgid "&Maximum cast: " msgstr "Elenco &m?ximo:" -#: fetch/imdbfetcher.cpp:1106 +#: fetch/imdbfetcher.cpp:1092 msgid "" "The list of cast members may include many people. Set the maximum number " "returned from the search." @@ -1553,7 +1583,7 @@ "A lista de membros do elenco pode incluir muitas pessoas. Especifique o " "n?mero m?ximo a ser retornado da pesquisa." -#: fetch/imdbfetcher.cpp:1111 +#: fetch/imdbfetcher.cpp:1097 msgid "Download cover &image" msgstr "Efetuar o Download da &Imagem da Capa" @@ -1570,8 +1600,7 @@ msgstr "ISBN" #: fetch/fetchmanager.cpp:65 -#, fuzzy -msgid "UPC/EAN" +msgid "UPC" msgstr "UPC" #: fetch/fetchmanager.cpp:66 @@ -1652,8 +1681,8 @@ msgid "Downloading information..." msgstr "Baixando informa??es..." -#: controller.cpp:131 fetchdialog.cpp:216 fetchdialog.cpp:294 -#: fetchdialog.cpp:380 fetchdialog.cpp:435 newstuff/dialog.cpp:296 +#: controller.cpp:131 fetchdialog.cpp:214 fetchdialog.cpp:292 +#: fetchdialog.cpp:360 fetchdialog.cpp:415 newstuff/dialog.cpp:296 #: newstuff/dialog.cpp:323 newstuff/dialog.cpp:431 statusbar.cpp:82 msgid "Ready." msgstr "Pronto." @@ -1673,25 +1702,6 @@ msgid "No valid bibtex entries were found in file - %1" msgstr "Nenhum registro v?lido do BibTeX encontrado no arquivo - %1" -#: translators/tellicozipexporter.cpp:35 -msgid "Tellico Zip File" -msgstr "Arquivo Zip Tellico" - -#: importdialog.cpp:208 mainwindow.cpp:1063 mainwindow.cpp:1223 -#: translators/tellicozipexporter.cpp:39 -msgid "*.tc *.bc|Tellico Files (*.tc)" -msgstr "*.tc *.bc|Arquivos Tellico (*.tc)" - -#: configdialog.cpp:991 importdialog.cpp:249 mainwindow.cpp:1067 -#: mainwindow.cpp:1225 reportdialog.cpp:195 translators/bibtexexporter.cpp:52 -#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44 -#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:87 -#: translators/onixexporter.cpp:66 translators/pilotdbexporter.cpp:47 -#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39 -#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:86 -msgid "*|All Files" -msgstr "*|Todos os Arquivos" - #: translators/alexandriaexporter.cpp:41 msgid "Alexandria" msgstr "Alexandria" @@ -1704,21 +1714,21 @@ "Uma biblioteca do Alexandria chamada %1 j? existe. Quaisquer " "livros existentes nesta biblioteca podem ser sobrescritos." -#: filehandler.cpp:138 translators/tellicoimporter.cpp:111 +#: filehandler.cpp:138 translators/tellicoimporter.cpp:106 #: translators/xmlimporter.cpp:42 translators/xmlimporter.cpp:56 msgid "There is an XML parsing error in line %1, column %2." msgstr "H? um erro de an?lise XML na linha %1, coluna %2." -#: filehandler.cpp:140 translators/tellicoimporter.cpp:113 +#: filehandler.cpp:140 translators/tellicoimporter.cpp:108 #: translators/xmlimporter.cpp:44 translators/xmlimporter.cpp:58 msgid "The error message from Qt is:" msgstr "A mensagem de erro do Qt ?:" -#: translators/tellicoimporter.cpp:149 +#: translators/tellicoimporter.cpp:144 msgid "It is from a future version of Tellico." msgstr "Isto ? para uma futura vers?o do Tellico." -#: translators/tellicoimporter.cpp:156 +#: translators/tellicoimporter.cpp:150 msgid "" "Tellico is converting the file to a more recent document format. Information " "loss may occur if an older version of Tellico is used to read this file in " @@ -1729,31 +1739,31 @@ "antiga do Tellico." #: translators/bibtexhandler.cpp:244 translators/risimporter.cpp:263 -#: translators/risimporter.cpp:267 translators/tellicoimporter.cpp:332 +#: translators/risimporter.cpp:267 translators/tellicoimporter.cpp:328 msgid "Unknown" msgstr "Desconhecido" -#: translators/tellicoimporter.cpp:710 +#: translators/tellicoimporter.cpp:706 msgid "The file is empty." msgstr "O arquivo est? vazio." -#: translators/tellicoimporter.cpp:728 +#: translators/tellicoimporter.cpp:724 msgid "The file contains no collection data." msgstr "O arquivo n?o cont?m dados de cole??o." -#: translators/tellicoimporter.cpp:872 +#: translators/tellicoimporter.cpp:868 msgid "Unread Books" msgstr "Livros N?o Lidos" -#: translators/tellicoimporter.cpp:882 +#: translators/tellicoimporter.cpp:878 msgid "Old Movies" msgstr "Filmes Antigos" -#: translators/tellicoimporter.cpp:900 +#: translators/tellicoimporter.cpp:896 msgid "80's Music" msgstr "M?sica dos anos 80" -#: translators/tellicoimporter.cpp:912 +#: translators/tellicoimporter.cpp:908 msgid "Favorites" msgstr "Favoritos" @@ -1765,25 +1775,25 @@ msgid "(Various)" msgstr "(V?rios)" -#: translators/audiofileimporter.cpp:299 +#: translators/audiofileimporter.cpp:300 msgid "Audio File Options" msgstr "Op??es de Arquivo de ?udio" -#: translators/audiofileimporter.cpp:301 +#: translators/audiofileimporter.cpp:302 msgid "Recursive &folder search" msgstr "Pesquisa recursiva de &pastas" -#: translators/audiofileimporter.cpp:302 +#: translators/audiofileimporter.cpp:303 msgid "If checked, folders are recursively searched for audio files." msgstr "" "Se selecionado, as pastas s?o varridas recursivamente para procurar " "arquivos de ?udio." -#: translators/audiofileimporter.cpp:306 +#: translators/audiofileimporter.cpp:307 msgid "&Include file location" msgstr "&Incluir localiza??o do arquivo" -#: translators/audiofileimporter.cpp:307 +#: translators/audiofileimporter.cpp:308 msgid "If checked, the file names for each track are added to the entries." msgstr "" "Se selecionado, os nomes dos arquivos de cada faixa ser?o adicionados aos " @@ -1793,11 +1803,21 @@ msgid "CSV" msgstr "CSV" -#: importdialog.cpp:217 translators/csvexporter.cpp:44 +#: importdialog.cpp:213 translators/csvexporter.cpp:44 msgid "*.csv|CSV Files (*.csv)" msgstr "*.csv|Arquivos CSV (*.csv)" -#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:173 +#: configdialog.cpp:1005 importdialog.cpp:245 mainwindow.cpp:1055 +#: mainwindow.cpp:1213 reportdialog.cpp:195 translators/bibtexexporter.cpp:52 +#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44 +#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:87 +#: translators/onixexporter.cpp:66 translators/pilotdbexporter.cpp:47 +#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39 +#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:86 +msgid "*|All Files" +msgstr "*|Todos os Arquivos" + +#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:166 msgid "CSV Options" msgstr "Op??es CSV" @@ -1811,11 +1831,11 @@ "Se selecionada, uma linha de cabe?alho ser? adicionada com o nome dos " "campos." -#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:192 +#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:185 msgid "Delimiter" msgstr "Separador" -#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:195 +#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:188 msgid "" "In addition to a comma, other characters may be used as a delimiter, " "separating each value in the file." @@ -1827,7 +1847,7 @@ msgid "Comma" msgstr "V?rgula" -#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:202 +#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:195 msgid "Use a comma as the delimiter." msgstr "Utilizar a v?rgula como separador." @@ -1835,7 +1855,7 @@ msgid "Semicolon" msgstr "Ponto e v?rgula" -#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:207 +#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:200 msgid "Use a semi-colon as the delimiter." msgstr "Utilizar o ponto e v?rgula como separador." @@ -1843,7 +1863,7 @@ msgid "Tab" msgstr "Aba" -#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:212 +#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:205 msgid "Use a tab as the delimiter." msgstr "Utilizar a tabula??o como separador." @@ -1851,11 +1871,11 @@ msgid "Other" msgstr "Outro" -#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:217 +#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:210 msgid "Use a custom string as the delimiter." msgstr "Utilizar um outro caractere como separador." -#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:223 +#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:216 msgid "A custom string, such as a colon, may be used as a delimiter." msgstr "" "Um caractere qualquer, como os dois pontos, pode ser utilizado como " @@ -1865,25 +1885,25 @@ msgid "Scanning files..." msgstr "Varrendo arquivos..." -#: translators/filelistingimporter.cpp:196 +#: translators/filelistingimporter.cpp:197 msgid "File Listing Options" msgstr "Op??es de Listagem de Arquivo" -#: translators/filelistingimporter.cpp:198 +#: translators/filelistingimporter.cpp:199 msgid "Recursive folder search" msgstr "Procura recursiva de pastas" -#: translators/filelistingimporter.cpp:199 +#: translators/filelistingimporter.cpp:200 msgid "If checked, folders are recursively searched for all files." msgstr "" "Se selecionado, as pastas s?o varridas recursivamente para procurar todos " "os arquivos." -#: translators/filelistingimporter.cpp:203 +#: translators/filelistingimporter.cpp:204 msgid "Generate file previews" msgstr "Gerar pr?-visualiza??es dos arquivos" -#: translators/filelistingimporter.cpp:204 +#: translators/filelistingimporter.cpp:205 msgid "" "If checked, previews of the file contents are generated, which can slow down " "the folder listing." @@ -1917,8 +1937,7 @@ #: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:137 msgid "Tellico was unable to access the CD-ROM device - %1." -msgstr "" -"Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." +msgstr "Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." #: translators/freedbimporter.cpp:163 msgid "Select CDDB Entry" @@ -1934,8 +1953,7 @@ #: translators/freedbimporter.cpp:205 msgid "Tellico was unable to complete the CD lookup." -msgstr "" -"Tellico n?o p?de completar a pesquisa das informa??es do CD." +msgstr "Tellico n?o p?de completar a pesquisa das informa??es do CD." #: translators/freedbimporter.cpp:428 msgid "Various" @@ -1965,11 +1983,11 @@ "Ler recursivamente os dados de todos os arquivos de cache do CDDB contidos " "nas pastas de cache padr?o." -#: importdialog.cpp:276 translators/gcfilmsexporter.cpp:37 +#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:37 msgid "GCfilms" msgstr "GCfilms " -#: importdialog.cpp:234 translators/gcfilmsexporter.cpp:41 +#: importdialog.cpp:230 translators/gcfilmsexporter.cpp:41 msgid "*.gcf|GCfilms Data Files (*.gcf)" msgstr "*.gcf|Arquivos de Dados GCfilms (*.gcf) " @@ -1997,7 +2015,7 @@ msgid "&Library:" msgstr "&Biblioteca:" -#: importdialog.cpp:272 translators/bibtexmlexporter.cpp:36 +#: importdialog.cpp:268 translators/bibtexmlexporter.cpp:36 msgid "Bibtexml" msgstr "BibTeXML " @@ -2009,20 +2027,20 @@ msgid "XML" msgstr "XML" -#: importdialog.cpp:209 importdialog.cpp:222 importdialog.cpp:226 -#: mainwindow.cpp:1065 translators/tellicoxmlexporter.cpp:60 +#: importdialog.cpp:205 importdialog.cpp:218 importdialog.cpp:222 +#: mainwindow.cpp:1053 translators/tellicoxmlexporter.cpp:60 msgid "*.xml|XML Files (*.xml)" msgstr "*.xml|Arquivos XML (*.xml)" -#: translators/tellicoxmlexporter.cpp:469 +#: translators/tellicoxmlexporter.cpp:464 msgid "Tellico XML Options" msgstr "Op??es XML do Tellico" -#: translators/tellicoxmlexporter.cpp:472 +#: translators/tellicoxmlexporter.cpp:467 msgid "Include images in XML document" msgstr "Incluir as imagens no documento XML" -#: translators/tellicoxmlexporter.cpp:474 +#: translators/tellicoxmlexporter.cpp:469 msgid "" "If checked, the images in the document will be included in the XML stream as " "base64 encoded elements." @@ -2030,19 +2048,19 @@ "Se selecionado, as imagens do documento ser?o integradas aos dados em XML " "como elementos codificados em base64." -#: translators/importer.h:94 +#: translators/importer.h:90 msgid "Loading data..." msgstr "Carregando dados..." -#: translators/importer.h:94 +#: translators/importer.h:90 msgid "Loading %1..." msgstr "Carregando %1..." -#: importdialog.cpp:271 translators/bibtexexporter.cpp:48 +#: importdialog.cpp:267 translators/bibtexexporter.cpp:48 msgid "Bibtex" msgstr "BibTeX" -#: importdialog.cpp:213 translators/bibtexexporter.cpp:52 +#: importdialog.cpp:209 translators/bibtexexporter.cpp:52 msgid "*.bib|Bibtex Files (*.bib)" msgstr "*.bib|Arquivos BibTeX (*.bib)" @@ -2103,40 +2121,48 @@ "Estilo de cita??o utilizado para arquivos no formato BibTeX. Os " "valores de todos os campos ser?o envolvidos por colchetes ou aspas." -#: translators/csvimporter.cpp:181 +#: translators/tellicozipexporter.cpp:35 +msgid "Tellico Zip File" +msgstr "Arquivo Zip Tellico" + +#: importdialog.cpp:204 mainwindow.cpp:1051 mainwindow.cpp:1211 +#: translators/tellicozipexporter.cpp:39 +msgid "*.tc *.bc|Tellico Files (*.tc)" +msgstr "*.tc *.bc|Arquivos Tellico (*.tc)" + +#: translators/csvimporter.cpp:174 msgid "Select the type of collection being imported." msgstr "Selecionar o tipo de cole??o a importar." -#: translators/csvimporter.cpp:187 +#: translators/csvimporter.cpp:180 msgid "&First row contains field titles" msgstr "A &primeira linha cont?m os t?tulos dos campos" -#: translators/csvimporter.cpp:188 +#: translators/csvimporter.cpp:181 msgid "If checked, the first row is used as field titles." -msgstr "" -"Se selecionado, a primeira linha ser? utilizada para o nome dos campos." +msgstr "Se selecionado, a primeira linha ser? utilizada para o nome dos campos." -#: translators/csvimporter.cpp:200 +#: translators/csvimporter.cpp:193 msgid "&Comma" msgstr "&V?rgula" -#: translators/csvimporter.cpp:206 +#: translators/csvimporter.cpp:199 msgid "&Semicolon" msgstr "&Ponto e v?rgula" -#: translators/csvimporter.cpp:211 +#: translators/csvimporter.cpp:204 msgid "Ta&b" msgstr "Ta&bula??o" -#: translators/csvimporter.cpp:216 +#: translators/csvimporter.cpp:209 msgid "Ot&her:" msgstr "Out&ro" -#: translators/csvimporter.cpp:240 +#: translators/csvimporter.cpp:233 msgid "The table shows up to the first five lines of the CSV file." msgstr "A tabela mostra as cinco primeiras linhas do arquivo CSV." -#: translators/csvimporter.cpp:247 +#: translators/csvimporter.cpp:240 msgid "" "Set each column to correspond to a field in the collection by choosing a " "column, selecting the field, then clicking the Assign Field " @@ -2145,26 +2171,20 @@ " Marque cada coluna para corresponder a um campo na cole??o escolhendo " "uma coluna, selecionando o campo e clicando no bot?o Associar Campo " -#: translators/csvimporter.cpp:249 +#: translators/csvimporter.cpp:242 msgid "Co&lumn:" msgstr "Co&luna:" -#: translators/csvimporter.cpp:258 +#: translators/csvimporter.cpp:251 msgid "&Data field in this column:" msgstr "Campo de &dados nesta coluna:" -#: translators/csvimporter.cpp:266 +#: translators/csvimporter.cpp:259 msgid "&Assign Field" msgstr "&Associar Campo" -#: translators/csvimporter.cpp:298 -msgid "" -"At least one column must be assigned to a field. Only assigned columns will " -"be imported." -msgstr "" - #: collectionfieldsdialog.cpp:394 collectionfieldsdialog.cpp:397 -#: translators/csvimporter.cpp:426 translators/csvimporter.cpp:530 +#: translators/csvimporter.cpp:410 translators/csvimporter.cpp:513 msgid "New Field" msgstr "Novo campo" @@ -2180,7 +2200,7 @@ msgid "*.pdb|Pilot Database Files(*.pdb)" msgstr "*.pdb|Arquivos Pilot Database (*.pdb)" -#: detailedlistview.cpp:67 detailedlistview.cpp:299 +#: detailedlistview.cpp:67 detailedlistview.cpp:296 #: translators/pilotdbexporter.cpp:143 msgid "View Columns" msgstr "Ver Colunas" @@ -2201,11 +2221,11 @@ msgid "A valid XSLT file is needed to import the file." msgstr "Um arquivo XSLT v?lido ? necess?rio para importar o arquivo." -#: mainwindow.cpp:1708 translators/xsltimporter.cpp:57 +#: mainwindow.cpp:1696 translators/xsltimporter.cpp:57 msgid "Tellico encountered an error in XSLT processing." msgstr "Tellico encontrou um erro no processamento do XSLT." -#: configdialog.cpp:989 translators/xsltimporter.cpp:85 +#: configdialog.cpp:1003 translators/xsltimporter.cpp:85 msgid "*.xsl|XSL Files (*.xsl)" msgstr "*.xsl|Arquivos XSL (*.xsl)" @@ -2217,7 +2237,7 @@ msgid "*.html|HTML Files (*.html)" msgstr "*.html|Arquivos HTML (*.html)" -#: groupview.cpp:464 mainwindow.cpp:1561 mainwindow.cpp:1601 +#: groupview.cpp:463 mainwindow.cpp:1549 mainwindow.cpp:1589 #: translators/htmlexporter.cpp:314 msgid "People" msgstr "Pessoas" @@ -2234,16 +2254,15 @@ msgid "Print field headers" msgstr "Imprimir os cabe?alhos dos campos" -#: configdialog.cpp:297 translators/htmlexporter.cpp:467 +#: configdialog.cpp:299 translators/htmlexporter.cpp:467 msgid "If checked, the field names will be printed as table headers." -msgstr "" -"Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." +msgstr "Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." #: translators/htmlexporter.cpp:471 msgid "Group the entries" msgstr "Agrupar os registros" -#: configdialog.cpp:304 translators/htmlexporter.cpp:472 +#: configdialog.cpp:306 translators/htmlexporter.cpp:472 msgid "If checked, the entries will be grouped by the selected field." msgstr "" "Se selecionado, os registros ser?o agrupados em fun??o do campo " @@ -2255,8 +2274,7 @@ #: translators/htmlexporter.cpp:477 msgid "If checked, individual files will be created for each entry." -msgstr "" -"Se selecionado, ser?o criados arquivos individuais para cada registro." +msgstr "Se selecionado, ser?o criados arquivos individuais para cada registro." #: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49 msgid "Data Source Properties" @@ -2267,8 +2285,7 @@ msgstr "Nome da &fonte: " #: fetcherconfigdialog.cpp:79 -msgid "" -"The name identifies the data source and should be unique and informative." +msgid "The name identifies the data source and should be unique and informative." msgstr "O nome identifica a fonte de dados, devendo ser ?nico e informativo." #: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94 @@ -2347,31 +2364,31 @@ msgid "&Save Filter" msgstr "&Salvar Filtro " -#: field.cpp:444 +#: field.cpp:425 msgid "Simple Text" msgstr "Texto Simples " -#: field.cpp:445 +#: field.cpp:426 msgid "Paragraph" msgstr "Par?grafo " -#: field.cpp:446 +#: field.cpp:427 msgid "Choice" msgstr "Escolha " -#: field.cpp:447 +#: field.cpp:428 msgid "Checkbox" msgstr "Marcador " -#: field.cpp:450 +#: field.cpp:431 msgid "Table" msgstr "Tabela" -#: field.cpp:452 +#: field.cpp:433 msgid "Dependent" msgstr "Dependente " -#: field.cpp:454 +#: field.cpp:435 msgid "Date" msgstr "Data " @@ -2404,23 +2421,23 @@ "%2, que ? o registro corrente na cole??o. Por favor selecione o " "resultado desejado." -#: groupview.cpp:251 +#: groupview.cpp:250 msgid "Expand All Groups" msgstr "Mostrar Todos os Grupos" -#: groupview.cpp:253 +#: groupview.cpp:252 msgid "Collapse All Groups" msgstr "Ocultar Todos os Grupos " -#: groupview.cpp:255 +#: groupview.cpp:254 msgid "Filter by Group" msgstr "Filtrar por grupo " -#: groupview.cpp:451 +#: groupview.cpp:450 msgid "%1 (Sort by Count)" msgstr "%1 (Classificar por Ordem de Contagem) " -#: groupview.cpp:458 +#: groupview.cpp:457 msgid "" "_: Group Name Header\n" "Group" @@ -2464,27 +2481,23 @@ "poss?vel se as cole??es forem do mesmo tipo. Os registros devem ser " "exatamente do mesmo tipo para que possam ser combinados." -#: importdialog.cpp:91 mainwindow.cpp:324 rc.cpp:3 -msgid "&Import" -msgstr "&Importar " - -#: importdialog.cpp:230 +#: importdialog.cpp:226 msgid "*.ris|RIS Files (*.ris)" msgstr "*.ris|Arquivos RIS (*.ris)" -#: importdialog.cpp:238 +#: importdialog.cpp:234 msgid "*.amc|AMC Data Files (*.amc)" msgstr "*.amc|Arquivos de Dados AMC (*.amc) " -#: importdialog.cpp:274 +#: importdialog.cpp:270 msgid "MODS" msgstr "MODS" -#: importdialog.cpp:275 +#: importdialog.cpp:271 msgid "RIS" msgstr "RIS " -#: importdialog.cpp:277 +#: importdialog.cpp:273 msgid "AMC" msgstr "AMC" @@ -2680,484 +2693,478 @@ msgstr "Cria uma nova cole??o de jogos " #: mainwindow.cpp:278 -#, fuzzy -msgid "New Boa&rd Game Collection" -msgstr "Nova Cole??o de &Jogos" - -#: mainwindow.cpp:280 -#, fuzzy -msgid "Create a new board game collection" -msgstr "Cria uma nova cole??o de jogos " - -#: mainwindow.cpp:286 msgid "New &File Catalog" msgstr "Novo Cat?logo de &Arquivos" -#: mainwindow.cpp:288 +#: mainwindow.cpp:280 msgid "Create a new file catalog" msgstr "Cria um novo cat?logo de arquivos " -#: mainwindow.cpp:294 +#: mainwindow.cpp:286 msgid "New C&ustom Collection" msgstr "Nova Cole??o &Personalizada" -#: mainwindow.cpp:296 +#: mainwindow.cpp:288 msgid "Create a new custom collection" msgstr "Cria uma nova cole??o personalizada " -#: mainwindow.cpp:305 +#: mainwindow.cpp:297 msgid "Open an existing document" msgstr "Abre um documento existente" -#: mainwindow.cpp:307 +#: mainwindow.cpp:299 msgid "Open a recently used file" msgstr "Abre um arquivo usado recentemente" -#: mainwindow.cpp:309 +#: mainwindow.cpp:301 msgid "Save the document" msgstr "Salva o documento" -#: mainwindow.cpp:311 +#: mainwindow.cpp:303 msgid "Save the document as a different file..." msgstr "Salva o documento como um novo arquivo" -#: mainwindow.cpp:313 +#: mainwindow.cpp:305 msgid "Print the contents of the document..." msgstr "Imprime os dados do documento" -#: mainwindow.cpp:315 +#: mainwindow.cpp:307 msgid "Quit the application" msgstr "Sai do aplicativo" -#: mainwindow.cpp:326 +#: mainwindow.cpp:316 rc.cpp:3 +msgid "&Import" +msgstr "&Importar " + +#: mainwindow.cpp:318 msgid "Import collection data from other formats" msgstr "Importa dados a partir de outros formatos" -#: mainwindow.cpp:330 +#: mainwindow.cpp:322 msgid "Import Tellico Data..." msgstr "Importar Dados do Tellico..." -#: mainwindow.cpp:331 +#: mainwindow.cpp:323 msgid "Import another Tellico data file" msgstr "Importa outro arquivo de dados do Tellico " -#: mainwindow.cpp:337 +#: mainwindow.cpp:329 msgid "Import CSV Data..." msgstr "Importar Dados CSV... " -#: mainwindow.cpp:338 +#: mainwindow.cpp:330 msgid "Import a CSV file" msgstr "Importa um arquivo de valores separados por v?rgula" -#: mainwindow.cpp:344 +#: mainwindow.cpp:336 msgid "Import MODS Data..." msgstr "Importar Dados do MODS..." -#: mainwindow.cpp:345 +#: mainwindow.cpp:337 msgid "Import a MODS data file" msgstr "Importa um arquivo do MODS" -#: mainwindow.cpp:351 +#: mainwindow.cpp:343 msgid "Import Alexandria Data..." msgstr "Importar Dados do Alexandria..." -#: mainwindow.cpp:352 +#: mainwindow.cpp:344 msgid "Import data from the Alexandria book collection manager" msgstr "Importa um arquivo do gerenciador de cole??o de livros Alexandria" -#: mainwindow.cpp:358 +#: mainwindow.cpp:350 msgid "Import Bibtex Data..." msgstr "Importar Dados do BibTeX..." -#: mainwindow.cpp:359 +#: mainwindow.cpp:351 msgid "Import a bibtex bibliography file" msgstr "Importa um arquivo de bibliografia do BibTeX" -#: mainwindow.cpp:365 +#: mainwindow.cpp:357 msgid "Import Bibtexml Data..." msgstr "Importar Dados do BibTeXML..." -#: mainwindow.cpp:366 +#: mainwindow.cpp:358 msgid "Import a Bibtexml bibliography file" msgstr "Importa um arquivo de bibliografia do BibTeXML" -#: mainwindow.cpp:372 +#: mainwindow.cpp:364 msgid "Import RIS Data..." msgstr "Importar Dados do RIS..." -#: mainwindow.cpp:373 +#: mainwindow.cpp:365 msgid "Import an RIS reference file" msgstr "Importa um arquivo de refer?ncia do RIS" -#: mainwindow.cpp:379 +#: mainwindow.cpp:371 msgid "Import Audio File Metadata..." msgstr "Importar Meta-dados de um Arquivo de ?udio..." -#: mainwindow.cpp:380 +#: mainwindow.cpp:372 msgid "Import meta-data from audio files" msgstr "Importa meta-dados de arquivos de ?udio" -#: mainwindow.cpp:389 +#: mainwindow.cpp:381 msgid "Import Audio CD Data..." msgstr "Importar Dados de CD de ?udio..." -#: mainwindow.cpp:390 +#: mainwindow.cpp:382 msgid "Import audio CD information" msgstr "Importa informa??es de um CD de ?udio " -#: mainwindow.cpp:399 +#: mainwindow.cpp:391 msgid "Import GCfilms Data..." msgstr "Importar Dados do GCfilms..." -#: mainwindow.cpp:400 +#: mainwindow.cpp:392 msgid "Import a GCfilms data file" msgstr "Importa um arquivo de dados do GCfilms " -#: mainwindow.cpp:406 +#: mainwindow.cpp:398 msgid "Import Ant Movie Catalog Data..." msgstr "Importar Dados do Ant Movie Catalog..." -#: mainwindow.cpp:407 +#: mainwindow.cpp:399 msgid "Import an Ant Movie Catalog data file" msgstr "Importa um arquivo de dados do Ant Movie Catalog" -#: mainwindow.cpp:413 +#: mainwindow.cpp:405 msgid "Import File Listing..." msgstr "Importar Listagem de Arquivos..." -#: mainwindow.cpp:414 +#: mainwindow.cpp:406 msgid "Import information about files in a folder" msgstr "Importa informa??es sobre os arquivos de uma pasta " -#: mainwindow.cpp:420 +#: mainwindow.cpp:412 msgid "Import XSL Transform..." msgstr "Importar Transforma??o XSL..." -#: mainwindow.cpp:421 +#: mainwindow.cpp:413 msgid "Import using an XSL Transform" msgstr "Importa dados utilizando uma transforma??o XSL " -#: mainwindow.cpp:433 rc.cpp:4 +#: mainwindow.cpp:425 rc.cpp:4 msgid "&Export" msgstr "&Exportar " -#: mainwindow.cpp:435 +#: mainwindow.cpp:427 msgid "Export the collection data to other formats" msgstr "Exporta os dados da cole??o para outros formatos " -#: mainwindow.cpp:439 +#: mainwindow.cpp:431 msgid "Export to XML..." msgstr "Exportar para XML... " -#: mainwindow.cpp:440 +#: mainwindow.cpp:432 msgid "Export to a Tellico XML file" msgstr "Exporta para um arquivo XML do Tellico " -#: mainwindow.cpp:446 +#: mainwindow.cpp:438 msgid "Export to Zip..." msgstr "Exportar para Zip... " -#: mainwindow.cpp:447 +#: mainwindow.cpp:439 msgid "Export to a Tellico Zip file" msgstr "Exporta para um arquivo Zip do Tellico " -#: mainwindow.cpp:453 +#: mainwindow.cpp:445 msgid "Export to HTML..." msgstr "Exportar para HTML... " -#: mainwindow.cpp:454 +#: mainwindow.cpp:446 msgid "Export to an HTML file" msgstr "Exporta para um arquivo HTML " -#: mainwindow.cpp:460 +#: mainwindow.cpp:452 msgid "Export to CSV..." msgstr "Exportar para CSV... " -#: mainwindow.cpp:461 +#: mainwindow.cpp:453 msgid "Export to a comma-separated values file" msgstr "Exporta para um arquivo de valores separados por v?rgula " -#: mainwindow.cpp:467 +#: mainwindow.cpp:459 msgid "Export to PilotDB..." msgstr "Exportar para &PilotDB... " -#: mainwindow.cpp:468 +#: mainwindow.cpp:460 msgid "Export to a PilotDB database" msgstr "Exporta para um banco de dados PilotDB" -#: mainwindow.cpp:474 +#: mainwindow.cpp:466 msgid "Export to Alexandria..." msgstr "Exportar para o Alexandria... " -#: mainwindow.cpp:475 +#: mainwindow.cpp:467 msgid "Export to an Alexandria library" msgstr "Exporta para uma biblioteca do Alexandria " -#: mainwindow.cpp:481 +#: mainwindow.cpp:473 msgid "Export to Bibtex..." msgstr "Exportar para o BibTeX... " -#: mainwindow.cpp:482 +#: mainwindow.cpp:474 msgid "Export to a bibtex file" msgstr "Exporta para um arquivo do BibTeX " -#: mainwindow.cpp:488 +#: mainwindow.cpp:480 msgid "Export to Bibtexml..." msgstr "Exportar para o BibTeXML..." -#: mainwindow.cpp:489 +#: mainwindow.cpp:481 msgid "Export to a Bibtexml file" msgstr "Exporta para um arquivo BibTeXML" -#: mainwindow.cpp:495 +#: mainwindow.cpp:487 msgid "Export to ONIX..." msgstr "Exportar para o ONIX... " -#: mainwindow.cpp:496 +#: mainwindow.cpp:488 msgid "Export to an ONIX file" msgstr "Exporta para um arquivo ONIX" -#: mainwindow.cpp:502 +#: mainwindow.cpp:494 msgid "Export to GCfilms..." msgstr "Exportar para o GCfilms... " -#: mainwindow.cpp:503 +#: mainwindow.cpp:495 msgid "Export to a GCfilms data file" msgstr "Exporta para um arquivo de dados do GCfilms" -#: mainwindow.cpp:509 +#: mainwindow.cpp:501 msgid "Export XSL Transform..." msgstr "Exportar Transforma??o XSL..." -#: mainwindow.cpp:510 +#: mainwindow.cpp:502 msgid "Export using an XSL Transform" msgstr "Exporta utilizando uma transforma??o XSL" -#: mainwindow.cpp:519 +#: mainwindow.cpp:511 msgid "Cut the selected text and puts it in the clipboard" msgstr "Corta o texto selecionado e coloca-o na ?rea de transfer?ncia" -#: mainwindow.cpp:521 +#: mainwindow.cpp:513 msgid "Copy the selected text to the clipboard" msgstr "Copia o texto selecionado para a ?rea de transfer?ncia" -#: mainwindow.cpp:523 +#: mainwindow.cpp:515 msgid "Paste the clipboard contents" msgstr "Cola o conte?do da ?rea de transfer?ncia" -#: mainwindow.cpp:525 +#: mainwindow.cpp:517 msgid "Select all the entries in the collection" msgstr "Seleciona todos os registros da cole??o" -#: mainwindow.cpp:527 +#: mainwindow.cpp:519 msgid "Deselect all the entries in the collection" msgstr "De-seleciona todos os registros da cole??o" -#: mainwindow.cpp:529 +#: mainwindow.cpp:521 msgid "Internet Search..." msgstr "Pesquisa na Internet..." -#: mainwindow.cpp:532 +#: mainwindow.cpp:524 msgid "Search the internet..." msgstr "Pesquisa registros em fontes da Internet" -#: mainwindow.cpp:537 +#: mainwindow.cpp:529 msgid "&New Entry..." msgstr "&Novo registro..." -#: mainwindow.cpp:540 +#: mainwindow.cpp:532 msgid "Create a new entry" msgstr "Cria um novo registro" -#: controller.cpp:600 mainwindow.cpp:541 +#: controller.cpp:598 mainwindow.cpp:533 msgid "&Edit Entry..." msgstr "&Editar Registro..." -#: mainwindow.cpp:544 +#: mainwindow.cpp:536 msgid "Edit the selected entries" msgstr "Edita os registros selecionados" -#: controller.cpp:601 mainwindow.cpp:545 +#: controller.cpp:599 mainwindow.cpp:537 msgid "D&uplicate Entry" msgstr "D&uplicar Registro" -#: mainwindow.cpp:548 +#: mainwindow.cpp:540 msgid "Copy the selected entries" msgstr "Copia os registros selecionados" -#: controller.cpp:603 mainwindow.cpp:549 +#: controller.cpp:601 mainwindow.cpp:541 msgid "&Delete Entry" msgstr "&Apagar Registro" -#: mainwindow.cpp:552 +#: mainwindow.cpp:544 msgid "Delete the selected entries" msgstr "Apaga os registros selecionados " -#: mainwindow.cpp:554 +#: mainwindow.cpp:546 msgid "&Generate Reports..." msgstr "&Gerar Relat?rios... " -#: mainwindow.cpp:557 +#: mainwindow.cpp:549 msgid "Generate collection reports" msgstr "Gera relat?rios da cole??o " -#: mainwindow.cpp:558 +#: mainwindow.cpp:550 msgid "Check-&out..." msgstr "&Registrar sa?da..." -#: mainwindow.cpp:561 +#: mainwindow.cpp:553 msgid "Check-out the selected items" msgstr "Registra sa?da dos itens selecionados " -#: mainwindow.cpp:562 +#: mainwindow.cpp:554 msgid "Check-&in" msgstr "Registrar &entrada..." -#: mainwindow.cpp:565 +#: mainwindow.cpp:557 msgid "Check-in the selected items" msgstr "Registra entrada dos itens selecionados" -#: mainwindow.cpp:567 +#: mainwindow.cpp:559 msgid "&Rename Collection..." msgstr "&Renomear Cole??o..." -#: mainwindow.cpp:570 +#: mainwindow.cpp:562 msgid "Rename the collection" msgstr "Renomeia a cole??o" -#: mainwindow.cpp:571 +#: mainwindow.cpp:563 msgid "Collection &Fields..." msgstr "&Campos da Cole??o..." -#: mainwindow.cpp:574 +#: mainwindow.cpp:566 msgid "Modify the collection fields" msgstr "Modifica os campos da cole??o" -#: mainwindow.cpp:575 +#: mainwindow.cpp:567 msgid "Convert to &Bibliography" msgstr "Converter para &Bibliografia" -#: mainwindow.cpp:578 +#: mainwindow.cpp:570 msgid "Convert a book collection to a bibliography" msgstr "Converter uma cole??o de livros para uma bibliografia" -#: mainwindow.cpp:579 +#: mainwindow.cpp:571 msgid "String &Macros..." msgstr "&Macros de String..." -#: mainwindow.cpp:582 +#: mainwindow.cpp:574 msgid "Edit the bibtex string macros" msgstr "Editar linhas de macros do BibTeX " -#: mainwindow.cpp:589 +#: mainwindow.cpp:581 msgid "Copy Bibtex to Cli&pboard" msgstr "Copia BibTeX para a &?rea de Transfer?ncia" -#: mainwindow.cpp:590 +#: mainwindow.cpp:582 msgid "Copy bibtex citations to the clipboard" msgstr "Copia cita??es do BibTeX para a ?rea de transfer?ncia" -#: mainwindow.cpp:595 +#: mainwindow.cpp:587 msgid "Cite Entry in &LyX" msgstr "Citar Registro no &LyX" -#: mainwindow.cpp:596 +#: mainwindow.cpp:588 msgid "Cite the selected entries in LyX" msgstr "Citar os registros selecionados no LyX" -#: mainwindow.cpp:601 +#: mainwindow.cpp:593 msgid "Ci&te Entry in OpenOffice.org" msgstr "Ci&tar Registro no OpenOffice.org" -#: mainwindow.cpp:602 +#: mainwindow.cpp:594 msgid "Cite the selected entries in OpenOffice.org" msgstr "Citar os registros selecionados no OpenOffice.org" -#: controller.cpp:602 mainwindow.cpp:610 rc.cpp:6 +#: controller.cpp:600 mainwindow.cpp:602 rc.cpp:6 msgid "&Update Entry" msgstr "&Atualizar o Registro" -#: mainwindow.cpp:615 +#: mainwindow.cpp:607 msgid "All Sources" msgstr "Todas as Fontes" -#: mainwindow.cpp:616 +#: mainwindow.cpp:608 msgid "Update entry data from all available sources" msgstr "Atualizar o registro a partir de todas as fontes dispon?veis " -#: mainwindow.cpp:628 +#: mainwindow.cpp:620 msgid "Show Grou&p View" msgstr "Mostrar Vis?o de &Grupo" -#: mainwindow.cpp:631 +#: mainwindow.cpp:623 msgid "Enable/disable the group view" msgstr "Ativar/desativar a vis?o de grupo" -#: mainwindow.cpp:632 +#: mainwindow.cpp:624 msgid "Hide Grou&p View" msgstr "Ocultar Vis?o de Gru&po " -#: mainwindow.cpp:634 +#: mainwindow.cpp:626 msgid "Show Entry &Editor" msgstr "Mostrar &Editor de Registros" -#: mainwindow.cpp:637 +#: mainwindow.cpp:629 msgid "Enable/disable the editor" msgstr "Habilitar/desabilitar o editor" -#: mainwindow.cpp:638 +#: mainwindow.cpp:630 msgid "Hide Entry &Editor" msgstr "Ocultar &Editor de Registros" -#: mainwindow.cpp:640 +#: mainwindow.cpp:632 msgid "Show Entry &View" msgstr "Mostrar &Vis?o de Registros" -#: mainwindow.cpp:643 +#: mainwindow.cpp:635 msgid "Enable/disable the entry view" msgstr "Habilitar/desabilitar vis?o de registros" -#: mainwindow.cpp:644 +#: mainwindow.cpp:636 msgid "Hide Entry &View" msgstr "Ocultar &Vis?o de Registros" -#: mainwindow.cpp:646 +#: mainwindow.cpp:638 msgid "Advanced &Filter..." msgstr "&Filtro Avan?ado..." -#: mainwindow.cpp:649 mainwindow.cpp:687 +#: mainwindow.cpp:641 mainwindow.cpp:679 msgid "Filter the collection" msgstr "Filtrar a cole??o " -#: mainwindow.cpp:661 +#: mainwindow.cpp:653 msgid "Change Grouping" msgstr "Alterar o Agrupamento" -#: mainwindow.cpp:665 +#: mainwindow.cpp:657 msgid "&Group Selection" msgstr "Sele??o de &Grupo" -#: mainwindow.cpp:668 +#: mainwindow.cpp:660 msgid "Change the grouping of the collection" msgstr "Alterar o agrupamento da cole??o" -#: filterview.cpp:32 filterview.cpp:84 mainwindow.cpp:670 mainwindow.cpp:685 +#: filterview.cpp:32 filterview.cpp:84 mainwindow.cpp:662 mainwindow.cpp:677 msgid "Filter" msgstr "Filtrar" -#: mainwindow.cpp:673 +#: mainwindow.cpp:665 msgid "Clear Filter" msgstr "Limpar Filtro" -#: mainwindow.cpp:678 +#: mainwindow.cpp:670 msgid "Filter here..." msgstr "Filtrar Aqui..." -#: mainwindow.cpp:734 +#: mainwindow.cpp:726 msgid "Groups" msgstr "Grupos" -#: mainwindow.cpp:735 +#: mainwindow.cpp:727 msgid "" "The Group View sorts the entries into groupings based on a " "selected field." @@ -3165,7 +3172,7 @@ "A Vis?o de Grupos classifica os registros em grupos com base em " "um campo selecionado." -#: mainwindow.cpp:742 +#: mainwindow.cpp:734 msgid "" "The Column View shows the value of multiple fields for each " "entry." @@ -3173,23 +3180,23 @@ "A Vis?o de Colunas mostra os valores de v?rios campos para cada " "registro" -#: mainwindow.cpp:1028 +#: mainwindow.cpp:1016 msgid "Creating new document..." msgstr "Cria??o de um novo documento... " -#: mainwindow.cpp:1060 mainwindow.cpp:1080 mainwindow.cpp:1099 +#: mainwindow.cpp:1048 mainwindow.cpp:1068 mainwindow.cpp:1087 msgid "Opening file..." msgstr "Abrindo arquivo..." -#: mainwindow.cpp:1070 +#: mainwindow.cpp:1058 msgid "Open File" msgstr "Abrir Arquivo" -#: document.cpp:184 mainwindow.cpp:1173 +#: document.cpp:177 mainwindow.cpp:1161 msgid "Saving file..." msgstr "Salvando Arquivo..." -#: mainwindow.cpp:1183 +#: mainwindow.cpp:1171 msgid "" "

You are saving a file with many images, which causes Tellico to slow " "down significantly. Do you want to save the images separately in Tellico's " @@ -3202,23 +3209,23 @@ "performance?

Sua escolha pode sempre ser alterada na caixa de di?logo " "de configura??o.

" -#: mainwindow.cpp:1188 +#: mainwindow.cpp:1176 msgid "Save Images Separately" msgstr "Salvar Imagens Separadamente" -#: mainwindow.cpp:1189 +#: mainwindow.cpp:1177 msgid "Save Images in File" msgstr "Salvar Imagens no Arquivo" -#: mainwindow.cpp:1221 +#: mainwindow.cpp:1209 msgid "Saving file with a new filename..." msgstr "Salvando arquivo com um novo nome..." -#: mainwindow.cpp:1261 mainwindow.cpp:1313 +#: mainwindow.cpp:1249 mainwindow.cpp:1301 msgid "Printing..." msgstr "Impress?o..." -#: mainwindow.cpp:1270 +#: mainwindow.cpp:1258 msgid "" "The collection is currently being filtered to show a limited subset of the " "entries. Only the visible entries will be printed. Continue?" @@ -3226,92 +3233,92 @@ "A cole??o esta sendo filtrada para mostrar um subconjunto limitado de seus " "registros. Apenas os registros vis?veis ser?o impressos. Continuar?" -#: mainwindow.cpp:1296 +#: mainwindow.cpp:1284 msgid "Processing document..." msgstr "Processamento do documento..." -#: mainwindow.cpp:1321 +#: mainwindow.cpp:1309 msgid "Exiting..." msgstr "Saindo..." -#: mainwindow.cpp:1461 +#: mainwindow.cpp:1449 #, c-format msgid "Total entries: %1" msgstr "Total de registros: %1" -#: mainwindow.cpp:1468 +#: mainwindow.cpp:1456 msgid "(%1 filtered; %2 selected)" msgstr "" "(%1 filtrado, %2 selecionado)\n" "(%1 filtrados, %2 selecionados)" -#: mainwindow.cpp:1471 +#: mainwindow.cpp:1459 msgid "(%1 filtered)" msgstr "" "(%1 filtrado)\n" "(%1 filtrados)" -#: mainwindow.cpp:1474 +#: mainwindow.cpp:1462 msgid "(%1 selected)" msgstr "" "(%1 selecionado)\n" "(%1 selecionados)" -#: mainwindow.cpp:1649 +#: mainwindow.cpp:1637 #, c-format msgid "Print %1" msgstr "Impress?o %1" -#: mainwindow.cpp:1682 +#: mainwindow.cpp:1670 #, c-format msgid "Page %1" msgstr "P?gina %1" -#: entryview.cpp:170 mainwindow.cpp:1709 +#: entryview.cpp:170 mainwindow.cpp:1697 msgid "Please check your installation." msgstr "Por favor, confira sua instala??o." -#: mainwindow.cpp:1795 +#: mainwindow.cpp:1783 msgid "Importing data..." msgstr "Importa??o de dados..." -#: mainwindow.cpp:1804 +#: mainwindow.cpp:1792 msgid "Import File" msgstr "Importar Arquivo" -#: mainwindow.cpp:1810 +#: mainwindow.cpp:1798 msgid "Import Directory" msgstr "Importar Diret?rio" -#: mainwindow.cpp:1898 +#: mainwindow.cpp:1886 msgid "Exporting data..." msgstr "Exporta??o de dados..." -#: mainwindow.cpp:1920 +#: mainwindow.cpp:1908 msgid "Export As" msgstr "Exportar Como" -#: mainwindow.cpp:1949 +#: mainwindow.cpp:1937 msgid "String Macros" msgstr "Macros de String" -#: mainwindow.cpp:1950 +#: mainwindow.cpp:1938 msgid "Macro" msgstr "Macro" -#: mainwindow.cpp:1950 +#: mainwindow.cpp:1938 msgid "String" msgstr "String" -#: mainwindow.cpp:2013 +#: mainwindow.cpp:2001 msgid "Creating citations..." msgstr "Criando cita??es..." -#: mainwindow.cpp:2163 +#: mainwindow.cpp:2151 msgid "Filters" msgstr "Filtros" -#: mainwindow.cpp:2164 +#: mainwindow.cpp:2152 msgid "" "The Filter View shows the entries which meet certain filter " "rules." @@ -3319,11 +3326,11 @@ "A Vis?o de Filtros mostra os registros que atendem determinadas " "regras de filtros." -#: mainwindow.cpp:2180 +#: mainwindow.cpp:2168 msgid "Loans" msgstr "Empr?stimos" -#: mainwindow.cpp:2181 +#: mainwindow.cpp:2169 msgid "" "The Loan View shows a list of all the people who have borrowed " "items from your collection." @@ -3331,7 +3338,7 @@ "A Vis?o de Empr?stimos mostra uma lista com todas as pessoas " "que pegaram itens emprestados de sua cole??o." -#: mainwindow.cpp:2313 +#: mainwindow.cpp:2301 #, c-format msgid "Update entry data from %1" msgstr "Atualiza os dados do registro %1" @@ -3342,8 +3349,7 @@ msgstr "Tellico n?o p?de carregar a imagem - %1." #: filehandler.cpp:204 -msgid "" -"A file named \"%1\" already exists. Are you sure you want to overwrite it?" +msgid "A file named \"%1\" already exists. Are you sure you want to overwrite it?" msgstr "" "Um arquivo chamado \"%1\" j? existe. Tem certeza que deseja mesmo " "sobrescrev?-lo?" @@ -3376,23 +3382,23 @@ msgid "Delete Multiple Entries" msgstr "Apagar M?ltiplos Registros" -#: controller.cpp:605 +#: controller.cpp:603 msgid "&Edit Entries..." msgstr "&Editar Registros..." -#: controller.cpp:606 +#: controller.cpp:604 msgid "D&uplicate Entries" msgstr "D&uplicar Registros" -#: controller.cpp:607 +#: controller.cpp:605 msgid "&Update Entries" msgstr "&Editar Registros" -#: controller.cpp:608 +#: controller.cpp:606 msgid "&Delete Entries" msgstr "&Apagar Registros" -#: controller.cpp:662 +#: controller.cpp:660 msgid "" "The following items are already loaned, but Tellico does not currently " "support lending an item multiple times. They will be removed from the list " @@ -3568,10 +3574,8 @@ msgstr "Um campo Imagem serve para armazenar uma foto ou figura." #: collectionfieldsdialog.cpp:144 -msgid "" -"A Date field can be used for values with a day, month, and year. " -msgstr "" -"Um campo Data pode ser utilizado para valores com dia, m?s e ano." +msgid "A Date field can be used for values with a day, month, and year. " +msgstr "Um campo Data pode ser utilizado para valores com dia, m?s e ano." #: collectionfieldsdialog.cpp:145 msgid "A Rating field uses stars to show a rating number. " @@ -3676,8 +3680,7 @@ msgstr "Permitir apenas a formata??o autom?tica em letras mai?sculas" #: collectionfieldsdialog.cpp:230 -msgid "" -"This option allows the field to be capitalized, but not specially formatted." +msgid "This option allows the field to be capitalized, but not specially formatted." msgstr "" "Esta op??o permite p?r o campo em mai?sculas, mas sem formata??es " "especiais." @@ -3739,16 +3742,14 @@ msgstr "Permitir agrupamento" #: collectionfieldsdialog.cpp:248 -msgid "" -"If checked, this field may be used to group the entries in the group view." +msgid "If checked, this field may be used to group the entries in the group view." msgstr "" "Se selecionado, este campo ser? utilizado para reagrupar os registros na " "vis?o de grupos." #: collectionfieldsdialog.cpp:262 msgid "Revert the selected field's properties to the default values." -msgstr "" -"Reverter as propriedades dos campos selecionados para seus valores padr?o." +msgstr "Reverter as propriedades dos campos selecionados para seus valores padr?o." #: collectionfieldsdialog.cpp:301 msgid "Modify Fields" @@ -3830,7 +3831,7 @@ msgid "Tables are limited to a maximum of ten columns." msgstr "Tabelas s?o limitadas a um m?ximo de dez colunas." -#: document.cpp:150 +#: document.cpp:148 msgid "" "The current file has been modified.\n" "Do you want to save it?" @@ -3838,7 +3839,7 @@ "O arquivo atual foi modificado.\n" "Deseja salv?-lo?" -#: document.cpp:152 entryeditdialog.cpp:629 +#: document.cpp:150 entryeditdialog.cpp:629 msgid "Unsaved Changes" msgstr "Altera??es n?o salvas" @@ -3886,10 +3887,9 @@ #: configdialog.cpp:209 msgid "If checked, the \"Tip of the Day\" will be shown at program start-up." -msgstr "" -"Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." +msgstr "Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." -#: configdialog.cpp:214 configdialog.cpp:289 +#: configdialog.cpp:214 configdialog.cpp:291 msgid "Formatting Options" msgstr "Op??es de formata??o" @@ -3903,20 +3903,19 @@ "Se selecionado, os t?tulos e os nomes ser?o automaticamente postos em " "mai?sculas." -#: configdialog.cpp:222 +#: configdialog.cpp:223 msgid "Auto &format titles and names" msgstr "&Formata??o autom?tica dos t?tulos e nomes" -#: configdialog.cpp:223 configdialog.cpp:293 +#: configdialog.cpp:224 configdialog.cpp:295 msgid "If checked, titles and names will be automatically formatted." -msgstr "" -"Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." +msgstr "Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." -#: configdialog.cpp:230 +#: configdialog.cpp:232 msgid "No capitali&zation:" msgstr "N?o capitali&zar" -#: configdialog.cpp:233 +#: configdialog.cpp:235 msgid "" "A list of words which should not be capitalized. Multiple values should " "be separated by a semi-colon." @@ -3924,11 +3923,11 @@ "Uma lista de palavras que n?o devem ser capitalizadas. As palavras " "devem ser separadas por ponto e v?rgula." -#: configdialog.cpp:239 +#: configdialog.cpp:241 msgid "Artic&les:" msgstr "Arti&gos:" -#: configdialog.cpp:242 +#: configdialog.cpp:244 msgid "" "A list of words which should be considered as articles if they are the " "first word in a title. Multiple values should be separated by a " @@ -3938,11 +3937,11 @@ "primeira palavra em um t?tulo. As palavras devem ser separadas por ponto e " "v?rgula." -#: configdialog.cpp:249 +#: configdialog.cpp:251 msgid "Personal suffi&xes:" msgstr "Sufi&xos pessoais:" -#: configdialog.cpp:252 +#: configdialog.cpp:254 msgid "" "A list of suffixes which might be used in personal names. Multiple " "values should be separated by a semi-colon." @@ -3950,11 +3949,11 @@ "Uma lista de sufixos que podem ser utilizados nos nomes de pessoas. Os " "sufixos devem ser separados por um ponto e v?rgula." -#: configdialog.cpp:258 +#: configdialog.cpp:260 msgid "Surname &prefixes:" msgstr "&Prefixos de sobrenomes:" -#: configdialog.cpp:261 +#: configdialog.cpp:263 msgid "" "A list of prefixes which might be used in surnames. Multiple values " "should be separated by a semi-colon." @@ -3962,69 +3961,67 @@ "Uma lista de prefixos que podem ser utilizados em sobrenomes. Os " "prefixos devem ser separados por um ponto e v?rgula." -#: configdialog.cpp:286 +#: configdialog.cpp:288 msgid "Printing" msgstr "Impress?o" -#: configdialog.cpp:286 +#: configdialog.cpp:288 msgid "Printing Options" msgstr "Op??es de Impress?o" -#: configdialog.cpp:292 +#: configdialog.cpp:294 msgid "&Format titles and names" msgstr "&Formata??o dos t?tulos e nomes" -#: configdialog.cpp:296 +#: configdialog.cpp:298 msgid "&Print field headers" msgstr "Im&primir cabe?alhos dos campos" -#: configdialog.cpp:300 +#: configdialog.cpp:302 msgid "Grouping Options" msgstr "Op??es de agrupamento" -#: configdialog.cpp:303 +#: configdialog.cpp:305 msgid "&Group the entries" msgstr "A&grupar os registros" -#: configdialog.cpp:307 +#: configdialog.cpp:309 msgid "Image Options" msgstr "Op??es das Imagens" -#: configdialog.cpp:313 +#: configdialog.cpp:315 msgid "Maximum image &width:" msgstr "&Largura m?xima da imagem:" -#: configdialog.cpp:318 +#: configdialog.cpp:320 msgid "" "The maximum width of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." +msgstr "Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." -#: configdialog.cpp:326 +#: configdialog.cpp:328 msgid "&Maximum image height:" msgstr "Altura &m?xima da imagem:" -#: configdialog.cpp:331 +#: configdialog.cpp:333 msgid "" "The maximum height of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." +msgstr "Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." -#: configdialog.cpp:345 +#: configdialog.cpp:347 msgid "Templates" msgstr "Modelos" -#: configdialog.cpp:345 +#: configdialog.cpp:347 msgid "Template Options" msgstr "Op??es do Modelo" -#: configdialog.cpp:359 +#: configdialog.cpp:361 msgid "Template:" msgstr "Modelo:" -#: configdialog.cpp:363 +#: configdialog.cpp:365 msgid "" "Select the template to use for the current type of collections. Not all " "templates will use the font and color settings." @@ -4032,99 +4029,99 @@ "Selecione o modelo a ser utilizado para o tipo de cole??o selecionado. Nem " "todos os modelos permitem a altera??o do tipo e cor da fonte." -#: configdialog.cpp:370 +#: configdialog.cpp:372 msgid "&Preview..." msgstr "&Pr?-visualiza??o..." -#: configdialog.cpp:371 +#: configdialog.cpp:373 msgid "Show a preview of the template" msgstr "Apresenta uma amostra do modelo" -#: configdialog.cpp:388 +#: configdialog.cpp:390 msgid "Font Options" msgstr "Op??es de Fonte" -#: configdialog.cpp:395 +#: configdialog.cpp:397 msgid "Font:" msgstr "Fonte:" -#: configdialog.cpp:401 +#: configdialog.cpp:403 msgid "This font is passed to the template used in the Entry View." msgstr "Esta fonte ? utilizada no modelo usado na Vis?o de Registros" -#: configdialog.cpp:405 +#: configdialog.cpp:407 msgid "Size:" msgstr "Tamanho:" -#: configdialog.cpp:415 +#: configdialog.cpp:417 msgid "Color Options" msgstr "Op??es de Cor" -#: configdialog.cpp:422 +#: configdialog.cpp:424 msgid "Background color:" msgstr "Cor de fundo:" -#: configdialog.cpp:428 +#: configdialog.cpp:430 msgid "This color is passed to the template used in the Entry View." msgstr "Esta cor ? utilizada no modelo usado na Vis?o de Registro" -#: configdialog.cpp:432 +#: configdialog.cpp:434 msgid "Text color:" msgstr "Cor do texto:" -#: configdialog.cpp:441 +#: configdialog.cpp:443 msgid "Highlight color:" msgstr "Cor do destaque:" -#: configdialog.cpp:450 +#: configdialog.cpp:452 msgid "Highlighted text color:" msgstr "Cor do texto em destaque:" -#: configdialog.cpp:459 +#: configdialog.cpp:461 msgid "Manage Templates" msgstr "Gerenciamento de Modelos" -#: configdialog.cpp:465 +#: configdialog.cpp:467 msgid "Install..." msgstr "Instalar..." -#: configdialog.cpp:468 +#: configdialog.cpp:470 msgid "Click to install a new template directly." msgstr "Clique para instalar um modelo diretamente" -#: configdialog.cpp:471 +#: configdialog.cpp:473 msgid "Download.." msgstr "Baixar..." -#: configdialog.cpp:474 +#: configdialog.cpp:476 msgid "Click to download additional templates via the Internet." msgstr "Clique para baixar modelos adicionais da internet" -#: configdialog.cpp:477 +#: configdialog.cpp:479 msgid "Delete..." msgstr "Deletar..." -#: configdialog.cpp:480 +#: configdialog.cpp:482 msgid "Click to select and remove installed templates." msgstr "Clique para selecionar e remover modelos instalados" -#: configdialog.cpp:491 +#: configdialog.cpp:493 msgid "Data Sources" msgstr "Fontes de Dados" -#: configdialog.cpp:491 +#: configdialog.cpp:493 msgid "Data Source Options" msgstr "Op??es da Fonte de Dados" -#: configdialog.cpp:496 fetchdialog.cpp:162 +#: configdialog.cpp:498 fetchdialog.cpp:160 msgid "Source" msgstr "Fonte" -#: configdialog.cpp:507 +#: configdialog.cpp:509 msgid "Move &Up" msgstr "Mover para &Cima" -#: configdialog.cpp:509 configdialog.cpp:513 +#: configdialog.cpp:511 configdialog.cpp:515 msgid "" "The order of the data sources sets the order that Tellico uses when entries " "are automatically updated." @@ -4132,47 +4129,47 @@ "A ordem das fontes de dados define a ordem que o Tellico usa quando as " "entradas s?o automaticamente atualizadas." -#: configdialog.cpp:511 +#: configdialog.cpp:513 msgid "Move &Down" msgstr "Mover para &Baixo" -#: configdialog.cpp:518 +#: configdialog.cpp:520 msgid "&New..." msgstr "&Novo..." -#: configdialog.cpp:520 +#: configdialog.cpp:522 msgid "Click to add a new data source." msgstr "Clique para adicionar uma nova fonte de dados" -#: configdialog.cpp:521 +#: configdialog.cpp:523 msgid "&Modify..." msgstr "&Modificar..." -#: configdialog.cpp:523 +#: configdialog.cpp:525 msgid "Click to modify the selected data source." msgstr "Clique para modificar a fonte de dados selecionada" -#: configdialog.cpp:526 +#: configdialog.cpp:528 msgid "Click to delete the selected data source." msgstr "Clique para apagar a fonte de dados selecionada" -#: configdialog.cpp:527 +#: configdialog.cpp:529 msgid "Download..." msgstr "Baixar..." -#: configdialog.cpp:529 +#: configdialog.cpp:531 msgid "Click to download additional data sources via the Internet." msgstr "Clique para baixar fontes de dados adicionais da internet." -#: configdialog.cpp:990 +#: configdialog.cpp:1004 msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)" msgstr "*.tar.gz *.tgz|Pacotes de Modelos (*.tar.gz)" -#: configdialog.cpp:1023 +#: configdialog.cpp:1037 msgid "Delete Template" msgstr "Apaga Modelo" -#: configdialog.cpp:1024 +#: configdialog.cpp:1038 msgid "Select template to delete:" msgstr "Seleciona modelo a ser apagado" @@ -4192,56 +4189,51 @@ msgid "Borrower (Sort by Count)" msgstr "Pessoa que pegou emprestado (Classificar por Contagem)" -#: collectionfactory.cpp:79 +#: collectionfactory.cpp:76 msgid "My Collection" msgstr "Minha Cole??o" -#: collectionfactory.cpp:122 +#: collectionfactory.cpp:117 msgid "Book Collection" msgstr "Cole??o de Livros" -#: collectionfactory.cpp:124 +#: collectionfactory.cpp:119 msgid "Comic Book Collection" msgstr "Cole??o de Revistas em Quadrinhos" -#: collectionfactory.cpp:125 +#: collectionfactory.cpp:120 msgid "Video Collection" msgstr "Cole??o de V?deos" -#: collectionfactory.cpp:126 +#: collectionfactory.cpp:121 msgid "Music Collection" msgstr "Cole??o de M?sicas" -#: collectionfactory.cpp:127 +#: collectionfactory.cpp:122 msgid "Coin Collection" msgstr "Cole??o de Moedas" -#: collectionfactory.cpp:128 +#: collectionfactory.cpp:123 msgid "Stamp Collection" msgstr "Cole??o de Selos" -#: collectionfactory.cpp:129 +#: collectionfactory.cpp:124 msgid "Wine Collection" msgstr "Cole??o de Vinhos" -#: collectionfactory.cpp:130 +#: collectionfactory.cpp:125 msgid "Card Collection" msgstr "Cole??o de Cart?es" -#: collectionfactory.cpp:131 +#: collectionfactory.cpp:126 msgid "Game Collection" msgstr "Cole??o de Jogos" -#: collectionfactory.cpp:132 +#: collectionfactory.cpp:127 msgid "File Catalog" msgstr "Cat?logo de Arquivos" -#: collectionfactory.cpp:133 -#, fuzzy -msgid "Board Game Collection" -msgstr "Cole??o de Jogos" - -#: collectionfactory.cpp:134 +#: collectionfactory.cpp:128 msgid "Custom Collection" msgstr "Cole??o Personalizada" @@ -4309,68 +4301,67 @@ msgid "Encode the exported file in the local format." msgstr "Codifica o arquivo exportado no formato local." -#: fetchdialog.cpp:60 +#: fetchdialog.cpp:58 msgid "&Search" msgstr "&Procurar" -#: fetchdialog.cpp:61 +#: fetchdialog.cpp:59 msgid "&Stop" msgstr "&Interromper" -#: fetchdialog.cpp:79 +#: fetchdialog.cpp:77 msgid "Internet Search" msgstr "Pesquisa na Internet" -#: fetchdialog.cpp:85 +#: fetchdialog.cpp:83 msgid "Search Query" msgstr "Par?metros da Pesquisa" -#: fetchdialog.cpp:91 +#: fetchdialog.cpp:89 msgid "" "_: Start the search\n" "S&earch:" msgstr "P&esquisa:" -#: fetchdialog.cpp:95 +#: fetchdialog.cpp:93 msgid "Enter a search value. An ISBN search must include the full ISBN." msgstr "" "Forne?a um valor de procura. Uma pesquisa por ISBN deve incluir o n?mero " "ISBN completo." -#: fetchdialog.cpp:102 +#: fetchdialog.cpp:100 msgid "Choose the type of search" msgstr "Escolha o tipo de pesquisa" -#: fetchdialog.cpp:108 +#: fetchdialog.cpp:106 msgid "Click to start or stop the search" msgstr "Clique para iniciar ou interromper a pesquisa" -#: fetchdialog.cpp:125 +#: fetchdialog.cpp:123 msgid "&Multiple ISBN/UPC search" msgstr "Pesquisa &m?ltiplos ISBN/UPC" -#: fetchdialog.cpp:126 +#: fetchdialog.cpp:124 msgid "Check this box to search for multiple ISBN or UPC values." msgstr "Assinale este marcador para pesquisar v?rios valores ISBN ou UPC." -#: fetchdialog.cpp:129 +#: fetchdialog.cpp:127 msgid "Edit List..." msgstr "Editar Lista..." -#: fetchdialog.cpp:131 -msgid "" -"Click to open a text edit box for entering or editing multiple ISBN values." +#: fetchdialog.cpp:129 +msgid "Click to open a text edit box for entering or editing multiple ISBN values." msgstr "Clique para inserir ou editar os m?ltiplos ISBN a serem pesquisados." -#: fetchdialog.cpp:137 +#: fetchdialog.cpp:135 msgid "Search s&ource:" msgstr "Procurar f&onte:" -#: fetchdialog.cpp:145 +#: fetchdialog.cpp:143 msgid "Select the database to search" msgstr "Escolha a base de dados a pesquisar" -#: fetchdialog.cpp:167 +#: fetchdialog.cpp:165 msgid "" "As results are found, they are added to this list. Selecting one will fetch " "the complete entry and show it in the view below." @@ -4379,7 +4370,7 @@ "esta lista. Ao selecionar um deles a informa??o completa do registro ser? " "descarregada e mostrada na lista abaixo." -#: fetchdialog.cpp:175 +#: fetchdialog.cpp:173 msgid "" "An entry may be shown here before adding it to the current collection by " "selecting it in the list above" @@ -4387,40 +4378,39 @@ "Um registro pode ser mostrado aqui antes de ser adicionado ? cole??o, " "bastando selecion?-lo na lista abaixo" -#: fetchdialog.cpp:182 +#: fetchdialog.cpp:180 msgid "&Add Entry" msgstr "&Adicionar registro" -#: fetchdialog.cpp:186 +#: fetchdialog.cpp:184 msgid "Add the selected entry to the current collection" msgstr "Adicionar o registro selecionado ? cole??o atual" -#: fetchdialog.cpp:188 -#, fuzzy +#: fetchdialog.cpp:186 msgid "Get More Results" -msgstr "Selecione o resultado IMDB" +msgstr "Obter mais resultados" -#: fetchdialog.cpp:191 +#: fetchdialog.cpp:189 msgid "Fetch more results from the current data source" -msgstr "" +msgstr "Obter mais resultados da fonte de dados atual" -#: fetchdialog.cpp:195 +#: fetchdialog.cpp:193 msgid "Clear all search fields and results" msgstr "Apagar todos os campos e valores" -#: fetchdialog.cpp:260 +#: fetchdialog.cpp:258 msgid "Cancelling the search..." msgstr "Cancelando a pesquisa..." -#: fetchdialog.cpp:275 fetchdialog.cpp:401 +#: fetchdialog.cpp:273 fetchdialog.cpp:381 msgid "Searching..." msgstr "Pesquisando..." -#: fetchdialog.cpp:329 +#: fetchdialog.cpp:327 msgid "The search returned no items." msgstr "A pesquisa n?o retornou resultados." -#: fetchdialog.cpp:332 +#: fetchdialog.cpp:330 #, c-format msgid "" "_n: The search returned 1 item.\n" @@ -4429,36 +4419,31 @@ "A pesquisa retornou 1 item \n" " A pesquisa retornou %n items." -#: fetchdialog.cpp:350 -#, fuzzy -msgid "No results were found for the following ISBN values:" -msgstr "Nenhuma entrada encontrada para os ISBN seguintes:" - -#: fetchdialog.cpp:372 fetchdialog.cpp:424 +#: fetchdialog.cpp:352 fetchdialog.cpp:404 msgid "Fetching %1..." msgstr "Carregando %1..." -#: fetchdialog.cpp:457 +#: fetchdialog.cpp:437 msgid "No Internet sources are available for your current collection type." msgstr "N?o h? fontes na Internet dispon?veis para este tipo de cole??o." -#: fetchdialog.cpp:517 +#: fetchdialog.cpp:497 msgid "Edit ISBN/UPC Values" msgstr "Editar os valores ISBN/UPC" -#: fetchdialog.cpp:521 +#: fetchdialog.cpp:501 msgid "Enter the ISBN or UPC values, one per line." msgstr "Insira os valores ISBN ou UPC, um por linha." -#: fetchdialog.cpp:527 +#: fetchdialog.cpp:507 msgid "&Load From File..." msgstr "&Carregar de um arquivo..." -#: fetchdialog.cpp:528 +#: fetchdialog.cpp:508 msgid "Load the list from a text file." msgstr "Carrega a lista de um arquivo texto." -#: fetchdialog.cpp:547 +#: fetchdialog.cpp:527 msgid "" "An ISBN search can contain a maximum of 100 ISBN values. Only the first " "100 values in your list will be used." @@ -4533,8 +4518,7 @@ msgstr "Selecione um modelo de relat?rio e clique em Gerar." #: reportdialog.cpp:108 -msgid "" -"Some reports may take several seconds to generate for large collections." +msgid "Some reports may take several seconds to generate for large collections." msgstr "" "Alguns relat?rios de grandes cole??es podem levar v?rios segundos para " "serem gerados." @@ -4553,8 +4537,7 @@ #: entryview.cpp:168 msgid "Tellico is unable to locate the default entry stylesheet." -msgstr "" -"Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." +msgstr "Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." #: rc.cpp:2 msgid "&New" @@ -4894,71 +4877,15 @@ msgid "National Library of Australia" msgstr "Biblioteca Nacional da Austr?lia" -#: z3950.cpp:22 -#, fuzzy -msgid "National Library of Lithuania" -msgstr "Biblioteca Nacional do Canad?" - #: scripts.cpp:2 -msgid "BoardGameGeek" -msgstr "" - -#: scripts.cpp:4 msgid "Dark Horse Comics" msgstr "Quadrinhos Dark Horse" -#: scripts.cpp:6 +#: scripts.cpp:4 msgid "Allocine.fr" msgstr "Allocine.fr" -#: scripts.cpp:8 +#: scripts.cpp:6 msgid "Spanish Ministry of Culture" msgstr "Minist?rio da Cultura da Espanha" -#~ msgid "" -#~ "a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to," -#~ "up,with" -#~ msgstr "um,uma,e,em,de,o,a " - -#~ msgid "the" -#~ msgstr "o,a,os,as " - -#~ msgid "jr.,jr,iii,iv" -#~ msgstr "jr.,jr,iii,iv " - -#~ msgid "de,van,der,van der,von" -#~ msgstr "de,o,a " - -#~ msgid "Stamps" -#~ msgstr "Selos" - -#~ msgid "Coins" -#~ msgstr "Moedas" - -#~ msgid "Books" -#~ msgstr "Livros" - -#~ msgid "Wines" -#~ msgstr "Vinhos" - -#~ msgid "Comics" -#~ msgstr "Revistas em Quadrinhos" - -#~ msgid "Videos" -#~ msgstr "V?deos" - -#~ msgid "Games" -#~ msgstr "Jogos" - -#~ msgid "Cards" -#~ msgstr "Cart?es" - -#~ msgid "Entries" -#~ msgstr "Registros" - -#~ msgid "Albums" -#~ msgstr "?lbuns" - -#, fuzzy -#~ msgid "BoardGames" -#~ msgstr "Jogos" From noreply at forge.novell.com Tue Jan 2 07:50:48 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:08 2007 Subject: [Tellico-commits] r1357 - in trunk: . src src/gui src/model Message-ID: <20070102145048.923671999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:50:38 -0700 (Tue, 02 Jan 2007) New Revision: 1357 Added: trunk/src/model/manager.cpp trunk/src/model/manager.h Modified: trunk/ trunk/src/entryeditdialog.cpp trunk/src/entryeditdialog.h trunk/src/gui/boolfieldwidget.cpp trunk/src/gui/boolfieldwidget.h trunk/src/gui/fieldwidget.cpp trunk/src/gui/fieldwidget.h trunk/src/gui/numberfieldwidget.cpp trunk/src/gui/parafieldwidget.cpp trunk/src/gui/parafieldwidget.h trunk/src/model/Makefile.am trunk/src/model/datatypes.cpp trunk/src/model/datatypes.h trunk/src/model/defaultfields.cpp trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h trunk/src/model/keximodel_tables.cpp trunk/src/tellico_kernel.cpp trunk/src/tellico_kernel.h Log: r2570@homebase: robby | 2006-12-12 23:24:28 -0800 bool and para fields seem to work Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2561 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2570 Modified: trunk/src/entryeditdialog.cpp =================================================================== --- trunk/src/entryeditdialog.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/entryeditdialog.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -20,6 +20,7 @@ #include "tellico_utils.h" #include "tellico_kernel.h" #include "tellico_debug.h" +#include "model/manager.h" #include #include @@ -188,7 +189,7 @@ noChoices = false; } - GUI::FieldWidget* widget = GUI::FieldWidget::create(field, grid); + GUI::FieldWidget* widget = GUI::FieldWidget::create(field, tcdb->fieldByName(field->name()), grid); if(!widget) { continue; } @@ -288,6 +289,11 @@ Data::EntryPtr entry = new Data::Entry(m_currColl); m_currEntries.append(entry); + Data::EID eid = tcdb->addEndeavor(Data::EID(), Data::Type::ItemEndeavor); + if(!eid.isNull()) { + m_eidList.clear(); + m_eidList.push_back(eid); + } m_isOrphan = true; } @@ -342,7 +348,7 @@ /// modified = true; /// } /// entry->setField(fIt, temp); - modified = widget->saveData() || modified; + modified = widget->saveData(m_eidList) || modified; } } } Modified: trunk/src/entryeditdialog.h =================================================================== --- trunk/src/entryeditdialog.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/entryeditdialog.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -18,6 +18,7 @@ #include "observer.h" #include "gui/fieldwidget.h" +#include "model/datatypes.h" #include @@ -131,6 +132,7 @@ Data::CollPtr m_currColl; Data::EntryVec m_currEntries; + Data::EID::List m_eidList; GUI::TabControl* m_tabs; QDict m_widgetDict; Modified: trunk/src/gui/boolfieldwidget.cpp =================================================================== --- trunk/src/gui/boolfieldwidget.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -14,6 +14,7 @@ #include "boolfieldwidget.h" #include "../field.h" #include "../latin1literal.h" +#include "../tellico_kernel.h" #include #include @@ -21,14 +22,45 @@ using Tellico::GUI::BoolFieldWidget; -BoolFieldWidget::BoolFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_) { +BoolFieldWidget::BoolFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_) { m_checkBox = new QCheckBox(this); connect(m_checkBox, SIGNAL(clicked()), SIGNAL(modified())); registerWidget(); } +bool BoolFieldWidget::saveData(const Data::EID::List& list_) { + // someday this will be a tri-state widget + State value = m_checkBox->isChecked() ? True : NoValue; + if(m_originalValue == value) { + // no need to save anything + return false; + } + + // the assumption is that a boolean value is always a short value and that + // an endeavor only ever has one value for that field + // so if the original value was not empty, we need to remove it + // then set the current value + if(m_originalValue != NoValue && !Kernel::self()->clearValue(list_, fid())) { + return false; + } else { + // call succeeded + m_originalValue = NoValue; + } + QString valueString; + switch(value) { + case True: valueString = QString::fromLatin1("true"); + case False: valueString = QString::fromLatin1("false"); + default: break; + } + if(value != NoValue && !Kernel::self()->setValue(list_, fid(), valueString)) { + return false; + } + m_originalValue = value; + return true; +} + QString BoolFieldWidget::text() const { if(m_checkBox->isChecked()) { return QString::fromLatin1("true"); @@ -44,6 +76,7 @@ // be lax, don't have to check for "1" or "true" // just check for a non-empty string m_checkBox->setChecked(!text_.isEmpty()); + m_originalValue = m_checkBox->isChecked() ? True : NoValue; m_checkBox->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/boolfieldwidget.h =================================================================== --- trunk/src/gui/boolfieldwidget.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/boolfieldwidget.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -28,9 +28,10 @@ Q_OBJECT public: - BoolFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + BoolFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~BoolFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -42,6 +43,8 @@ private: QCheckBox* m_checkBox; + enum State { NoValue, False, True }; + State m_originalValue; }; } // end GUI namespace Modified: trunk/src/gui/fieldwidget.cpp =================================================================== --- trunk/src/gui/fieldwidget.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/fieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -46,16 +46,16 @@ const QRegExp FieldWidget::s_semiColon = QRegExp(QString::fromLatin1("\\s*;\\s*")); const QRegExp FieldWidget::s_comma = QRegExp(QString::fromLatin1("\\s*,\\s*")); -FieldWidget* FieldWidget::create(Data::FieldPtr field_, QWidget* parent_, const char* name_) { +FieldWidget* FieldWidget::create(Data::FieldPtr field_, Data::FID fid_, QWidget* parent_, const char* name_) { switch (field_->type()) { case Data::Field::Line: return new GUI::LineFieldWidget(field_, parent_, name_); case Data::Field::Para: - return new GUI::ParaFieldWidget(field_, parent_, name_); + return new GUI::ParaFieldWidget(field_, fid_, parent_, name_); case Data::Field::Bool: - return new GUI::BoolFieldWidget(field_, parent_, name_); + return new GUI::BoolFieldWidget(field_, fid_, parent_, name_); case Data::Field::Number: return new GUI::NumberFieldWidget(field_, parent_, name_); @@ -130,6 +130,46 @@ QTimer::singleShot(0, this, SLOT(insertDefault())); } +FieldWidget::FieldWidget(Data::FieldPtr field_, Data::FID fid_, QWidget* parent_, const char* name_/*=0*/) + : QWidget(parent_, name_), m_field(field_), m_fid(fid_) { + QHBoxLayout* l = new QHBoxLayout(this, 2, 2); // parent, margin, spacing + l->addSpacing(4); // add some more space in the columns between widgets + if(QCString(style().name()).lower().find("keramik", 0, false) > -1) { + l->setMargin(1); + } + + Data::Field::Type type = field_->type(); + QString s = i18n("Edit Label", "%1:").arg(field_->title()); + if(type == Data::Field::URL) { + // set URL to null for now + m_label = new KURLLabel(QString::null, s, this); + } else { + m_label = new QLabel(s, this); + } + m_label->setFixedWidth(m_label->sizeHint().width()); + l->addWidget(m_label); + + // expands indicates if the edit widget should expand to full width of widget + m_expands = (type == Data::Field::Line + || type == Data::Field::Para + || type == Data::Field::Number + || type == Data::Field::URL + || type == Data::Field::Table + || type == Data::Field::Table2 + || type == Data::Field::Image + || type == Data::Field::Date); + + m_editMultiple = new QCheckBox(this); + m_editMultiple->setChecked(true); + m_editMultiple->setFixedWidth(m_editMultiple->sizeHint().width()); // don't let it have any extra space + connect(m_editMultiple, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); + l->addWidget(m_editMultiple); + + QWhatsThis::add(this, field_->description()); + // after letting the subclass get created, insert default value + QTimer::singleShot(0, this, SLOT(insertDefault())); +} + void FieldWidget::insertDefault() { setText(m_field->defaultValue()); } Modified: trunk/src/gui/fieldwidget.h =================================================================== --- trunk/src/gui/fieldwidget.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/fieldwidget.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -19,6 +19,7 @@ #include #include "../datavectors.h" +#include "../model/datatypes.h" namespace Tellico { namespace Data { @@ -37,11 +38,14 @@ public: FieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + FieldWidget(Data::FieldPtr field, Data::FID fid, QWidget* parent, const char* name=0); virtual ~FieldWidget() {} Data::FieldPtr field() const { return m_field; } + Data::FID fid() const { return m_fid; } // virtual QString text() const = 0; - virtual bool saveData() = 0; +// TODO: some way of indicating failure rather than just no need to save, tristate? + virtual bool saveData(const Data::EID::List& list) { return false; } virtual void setText(const QString& text) = 0; int labelWidth() const; @@ -56,7 +60,7 @@ virtual void addCompletionObjectItem(const QString&) {} // factory function - static FieldWidget* create(Data::FieldPtr field, QWidget* parent, const char* name=0); + static FieldWidget* create(Data::FieldPtr field, Data::FID fid, QWidget* parent, const char* name=0); public slots: virtual void insertDefault(); @@ -79,6 +83,7 @@ private: Data::FieldPtr m_field; + Data::FID m_fid; QLabel* m_label; QCheckBox* m_editMultiple; Modified: trunk/src/gui/numberfieldwidget.cpp =================================================================== --- trunk/src/gui/numberfieldwidget.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/numberfieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -68,8 +68,7 @@ QString text = m_lineEdit->text(); text.replace(s_semiColon, QString::fromLatin1("; ")); text.replace(s_comma, QString::fromLatin1(", ")); - text.simplifyWhiteSpace(); - return text; + return text.simplifyWhiteSpace(); } void NumberFieldWidget::setText(const QString& text_) { Modified: trunk/src/gui/parafieldwidget.cpp =================================================================== --- trunk/src/gui/parafieldwidget.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/parafieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -13,13 +13,14 @@ #include "parafieldwidget.h" #include "../field.h" +#include "../tellico_kernel.h" #include using Tellico::GUI::ParaFieldWidget; -ParaFieldWidget::ParaFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_) { +ParaFieldWidget::ParaFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_) { m_textEdit = new QTextEdit(this); m_textEdit->setTextFormat(Qt::PlainText); @@ -28,6 +29,30 @@ registerWidget(); } +bool ParaFieldWidget::saveData(const Data::EID::List& list_) { + QString value = text(); + if(m_originalValue == value) { + // no need to save anything + return false; + } + + // the assumption is that a para value is always a long value and that + // an endeavor only ever has one value for that field + // so if the original value was not empty, we need to remove it + // then set the current value + if(!m_originalValue.isEmpty() && !Kernel::self()->clearValue(list_, fid())) { + return false; + } else { + // call succeeded + m_originalValue = QString(); + } + if(!value.isEmpty() && !Kernel::self()->setValue(list_, fid(), value)) { + return false; + } + m_originalValue = value; + return true; +} + QString ParaFieldWidget::text() const { QString text = m_textEdit->text(); text.replace('\n', QString::fromLatin1("
")); @@ -42,6 +67,7 @@ QString s = text_; s.replace(rx, QChar('\n')); m_textEdit->setText(s); + m_originalValue = s; m_textEdit->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/parafieldwidget.h =================================================================== --- trunk/src/gui/parafieldwidget.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/gui/parafieldwidget.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -28,9 +28,10 @@ Q_OBJECT public: - ParaFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + ParaFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~ParaFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -42,6 +43,7 @@ private: QTextEdit* m_textEdit; + QString m_originalValue; }; } // end GUI namespace Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/Makefile.am 2007-01-02 14:50:38 UTC (rev 1357) @@ -4,7 +4,7 @@ libmodel_a_SOURCES = \ datatypes.cpp keximodel.cpp keximodel_tables.cpp \ -defaultfields.cpp +defaultfields.cpp manager.cpp CLEANFILES = *~ @@ -12,7 +12,8 @@ datatypes.h datatypes.cpp \ keximodel.h keximodel.cpp keximodel_tables.cpp \ agentinfo.h collectioninfo.h collectionrule.h \ -fieldinfo.h writer.h defaultfields.h defaultfields.cpp +fieldinfo.h writer.h defaultfields.h defaultfields.cpp \ +manager.h manager.cpp INCLUDES = $(all_includes) Modified: trunk/src/model/datatypes.cpp =================================================================== --- trunk/src/model/datatypes.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/datatypes.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -30,6 +30,7 @@ const FieldDomain FieldDomain::title (Type::TitleID, Type::NoEndeavor, Type::NoAgent); const FieldDomain FieldDomain::date (Type::DateID, Type::NoEndeavor, Type::NoAgent); +const FieldDomain FieldDomain::subject (Type::SubjectID, Type::NoEndeavor, Type::NoAgent); const FieldDomain FieldDomain::shortValue (Type::ShortValueID, Type::NoEndeavor, Type::NoAgent); const FieldDomain FieldDomain::longValue (Type::LongValueID, Type::NoEndeavor, Type::NoAgent); Modified: trunk/src/model/datatypes.h =================================================================== --- trunk/src/model/datatypes.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/datatypes.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -248,6 +248,7 @@ static const FieldDomain title; static const FieldDomain date; + static const FieldDomain subject; static const FieldDomain shortValue; static const FieldDomain longValue; }; Modified: trunk/src/model/defaultfields.cpp =================================================================== --- trunk/src/model/defaultfields.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/defaultfields.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -108,25 +108,25 @@ } if(model.fieldByName(QString::fromLatin1("language")).isNull()) { - fid = model.addField(QString::fromLatin1("language"), Type::LineField, FieldScope::expression, FieldDomain::shortValue, publishCat); + fid = model.addField(QString::fromLatin1("language"), Type::LineField, FieldScope::expression, FieldDomain::subject, publishCat); model.setFieldInfo(fid, i18n("Language"), QString::null, groupComp); model.setFieldInCollection(m_cid, fid, true); } if(model.fieldByName(QString::fromLatin1("genre")).isNull()) { - fid = model.addField(QString::fromLatin1("genre"), Type::LineField, FieldScope::work, FieldDomain::shortValue, classCat); + fid = model.addField(QString::fromLatin1("genre"), Type::LineField, FieldScope::work, FieldDomain::subject, classCat); model.setFieldInfo(fid, i18n("Genre"), QString::null, groupComp); model.setFieldInCollection(m_cid, fid, true); } if(model.fieldByName(QString::fromLatin1("keyword")).isNull()) { - fid = model.addField(QString::fromLatin1("keyword"), Type::LineField, FieldScope::anyEndeavor, FieldDomain::shortValue, classCat); + fid = model.addField(QString::fromLatin1("keyword"), Type::LineField, FieldScope::anyEndeavor, FieldDomain::subject, classCat); model.setFieldInfo(fid, i18n("Keywords"), QString::null, groupComp); model.setFieldInCollection(m_cid, fid, true); } if(model.fieldByName(QString::fromLatin1("series")).isNull()) { - fid = model.addField(QString::fromLatin1("series"), Type::LineField, FieldScope::manifestation, FieldDomain::shortValue, classCat); + fid = model.addField(QString::fromLatin1("series"), Type::LineField, FieldScope::manifestation, FieldDomain::subject, classCat); model.setFieldInfo(fid, i18n("Series"), QString::null, groupComp); model.setFieldInCollection(m_cid, fid, true); } @@ -327,7 +327,7 @@ void DefaultFields::addChoiceField(const QString& name, const QString& title, FieldScope scope, UID cat, const QStringList& values) { if(model().fieldByName(name).isNull()) { - FID fid = model().addField(name, Type::ChoiceField, scope, FieldDomain::shortValue, cat); + FID fid = model().addField(name, Type::ChoiceField, scope, FieldDomain::subject, cat); model().setFieldInfo(fid, title, QString(), Field::AllowGrouped); model().setFieldInCollection(m_cid, fid, true); model().setAllowedFieldValues(fid, values); Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -61,6 +61,15 @@ static const uint DB_VERSION = 1; } +template +QString toString(T list) { + QStringList result; + for(typename T::iterator it = list.begin(); it != list.end(); ++it) { + result << QString::number((*it).id()); + } + return result.join(S(", ")); +} + using Tellico::Data::KexiModel; KexiDB::DriverManager* KexiModel::s_manager = 0; @@ -71,12 +80,10 @@ return b ? id : Unknown; } -inline QString KexiModel::TNAME(const char* s) const { return m_tablePrefix + s; } -inline QString KexiModel::TNAME(Type::IDType type) const { switch(type) { case Type::EndeavorID: return m_tablePrefix + "endeavors"; @@ -96,7 +103,6 @@ return QString(); } -inline QString KexiModel::linkTable(Type::IDType type) const { switch(type) { case Type::EndeavorID: return m_tablePrefix + "endeavor_links"; @@ -111,7 +117,6 @@ return QString(); } -inline QString KexiModel::linkColumn(Type::IDType type) const { switch(type) { case Type::EndeavorID: return S("end_linked_id"); @@ -126,7 +131,6 @@ return QString(); } -inline QString KexiModel::idColumn(Type::IDType type) const { switch(type) { case Type::EndeavorID: return S("endeavor_id"); @@ -145,7 +149,6 @@ return QString(); } -inline QString KexiModel::valueColumn(Type::IDType type) const { switch(type) { case Type::SubjectID: return S("value"); @@ -862,6 +865,7 @@ Tellico::Data::UID KexiModel::setFieldValue(const EID& eid, const FID& fid, const QString& value) { Q_ASSERT(!eid.isNull()); + Q_ASSERT(!fid.isNull()); Q_ASSERT(fid.validScope(eid)); Q_ASSERT(fid.domain().idTypes & (Type::ShortValueID | Type::LongValueID)); @@ -1640,10 +1644,10 @@ Tellico::Data::UID KexiModel::hasFieldValue(const FID& fid, const QString& value) const { // for now, assume that the field type is not used - Q_ASSERT(fid.validDomain(Type::ShortValueID)); - const QString tname = TNAME(Type::ShortValueID); + Q_ASSERT(fid.validDomain(Type::SubjectID)); + const QString tname = TNAME(Type::SubjectID); QueryBuilder qb(this); - qb.addReturnField(tname, S("value_id")); + qb.addReturnField(tname, idColumn(Type::SubjectID)); // qb.addWhere(tname, S("field_id"), fid.id()); qb.addWhere(tname, S("value"), ESC(value)); @@ -1651,12 +1655,12 @@ if(data.isEmpty()) { return UID(); } - return data[0].toInt() > 0 ? UID(Type::ShortValueID, data[0].toInt()) : UID(); + return data[0].toInt() > 0 ? UID(Type::SubjectID, data[0].toInt()) : UID(); } Tellico::Data::UID KexiModel::addFieldValue(const FID& fid, const QString& value, bool force) { // for now, assume that the field type is not used - Q_ASSERT(fid.validDomain(Type::ShortValueID)); + Q_ASSERT(fid.validDomain(Type::SubjectID)); if(!force && fid.fieldType() == Type::ChoiceField) { // TODO @@ -1667,7 +1671,7 @@ } } - KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::ShortValueID)); + KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::SubjectID)); Q_ASSERT(table); Q_ASSERT(table); KexiDB::FieldList list; @@ -1707,13 +1711,13 @@ return true; } -bool KexiModel::removeFieldValue(const FID& fid, const QString& value) { - QString q = QString::fromLatin1("DELETE FROM %1 WHERE field_id = %2 AND value = %3") +bool KexiModel::removeFieldValues(const EID::List& list_, const FID& fid_) { + QString q = QString::fromLatin1("DELETE FROM %1 WHERE field_id = %2 AND endeavor_id IN (%4)") .arg(TNAME(Type::ShortValueID)) - .arg(fid.id()) - .arg(ESC(value)); + .arg(fid_.id()) + .arg(toString(list_)); if(!m_conn->executeSQL(q)) { - myDebug() << "KexiModel::removeFieldValue() - query error" << endl; + myDebug() << "KexiModel::removeFieldValues() - query error" << endl; myDebug() << q << endl; CONN_DEBUG; return false; Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/keximodel.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -80,6 +80,7 @@ virtual bool setFieldValue(const EID& eid, const FID& fid, const UID& value); virtual UID::List fieldValues(const EID& eid, const FID& fid) const; virtual QString value(const UID& uid) const; + virtual bool removeFieldValues(const EID::List& list, const FID& fid); virtual QString title(const EID& eid) const; virtual FID titleField() const { return m_titleField; } @@ -125,7 +126,6 @@ UID hasFieldValue(const FID& fid, const QString& value) const; UID addFieldValue(const FID& fid, const QString& value, bool force=false); bool writeFieldValue(const EID& eid, const FID& fid, const UID& uid); - bool removeFieldValue(const FID& fid, const QString& value); UID addRule(const CollectionRule& rule); Modified: trunk/src/model/keximodel_tables.cpp =================================================================== --- trunk/src/model/keximodel_tables.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/model/keximodel_tables.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -20,6 +20,8 @@ myDebug() << "null pointer: " << #s << endl; \ } else if(!m_conn->createTable(s)) { \ myDebug() << "can't create table: " << #s << endl; \ + myDebug() << m_conn->errorMsg() << endl; \ + myDebug() << m_conn->serverErrorMsg() << endl; \ delete s; \ return false; \ } else { \ @@ -443,7 +445,7 @@ CREATE_OR_DELETE_RETURN(subjects); - KexiDB::TableSchema* subjectLinks = new KexiDB::TableSchema(linkTable(Type::DateID)); + KexiDB::TableSchema* subjectLinks = new KexiDB::TableSchema(linkTable(Type::SubjectID)); subjectLinks->setCaption(QString::fromLatin1("Subject Links")); f = new KexiDB::Field(QString::fromLatin1("endeavor_id"), KexiDB::Field::Integer, @@ -534,7 +536,7 @@ /*************************** TABLE VALUE TABLES ******************************************/ /*****************************************************************************************/ -// 'tables' can hold rows and columsn of any other values +// 'tables' can hold rows and columns of any other values KexiDB::TableSchema* tableValues = new KexiDB::TableSchema(TNAME("table_values")); tableValues->setCaption(QString::fromLatin1("Table Values")); @@ -557,7 +559,7 @@ f->setCaption(QString::fromLatin1("Row")); tableValues->addField(f); - f = new KexiDB::Field(QString::fromLatin1("column"), KexiDB::Field::Integer, + f = new KexiDB::Field(QString::fromLatin1("col"), KexiDB::Field::Integer, KexiDB::Field::NotEmpty, KexiDB::Field::Unsigned); f->setCaption(QString::fromLatin1("Column")); Added: trunk/src/model/manager.cpp =================================================================== --- trunk/src/model/manager.cpp (rev 0) +++ trunk/src/model/manager.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -0,0 +1,46 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "manager.h" +#include "keximodel.h" +#include "defaultfields.h" +//#include "store/legacyreader.h" + +#include +//#include + +using Tellico::Data::Manager; +Manager* Manager::s_self = 0; + +Manager::Manager() : m_model(0) { + KURL u = QString::fromLatin1("file:///tmp/tellico.tcdb"); +// bool exists = QFile::exists(u.path()); +// QFile::remove(u.path()); + open(u); +} + +bool Manager::open(const KURL& url_) { + if(m_model) { + m_model->close(); + delete m_model; + } + KexiDB::ConnectionData connData; + connData.driverName = QString::fromLatin1("SQLite3"); + connData.setFileName(url_.path()); + m_model = new KexiModel(); + bool success = m_model->open(connData) && m_model->load(); + if(success) { + DefaultFields df(Type::BookClass, *m_model); + } + return success; +} Added: trunk/src/model/manager.h =================================================================== --- trunk/src/model/manager.h (rev 0) +++ trunk/src/model/manager.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -0,0 +1,49 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef TELLICO_DATA_MANAGER_H +#define TELLICO_DATA_MANAGER_H + +#include + +#include "keximodel.h" + +#define tcdb Tellico::Data::Manager::self()->model() + +namespace Tellico { + namespace Data { + +class KexiModel; + +/** + * @author Robby Stephenson + */ +class Manager { +public: + ~Manager(); + + static Manager* self() { if(!s_self) s_self = new Manager(); return s_self; } + + KexiModel* model() { return m_model; } + bool open(const KURL& url); + +private: + static Manager* s_self; + Manager(); + + KexiModel* m_model; +}; + + } // end namespace +} // end namespace +#endif Modified: trunk/src/tellico_kernel.cpp =================================================================== --- trunk/src/tellico_kernel.cpp 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/tellico_kernel.cpp 2007-01-02 14:50:38 UTC (rev 1357) @@ -36,6 +36,7 @@ #include "commands/renamecollection.h" #include "collectionfactory.h" #include "stringset.h" +#include "model/manager.h" #include #include @@ -367,3 +368,17 @@ } return qMakePair(modified, created); } + +bool Kernel::clearValue(const Data::EID::List& list_, const Data::FID& fid_) { + return tcdb->removeFieldValues(list_, fid_); +} + +bool Kernel::setValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { + for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { + Data::UID uid = tcdb->setFieldValue(*it, fid_, value_); + if(uid.isNull()) { + return false; + } + } + return true; +} Modified: trunk/src/tellico_kernel.h =================================================================== --- trunk/src/tellico_kernel.h 2007-01-02 02:52:56 UTC (rev 1356) +++ trunk/src/tellico_kernel.h 2007-01-02 14:50:38 UTC (rev 1357) @@ -16,6 +16,7 @@ #include "datavectors.h" #include "borrower.h" +#include "model/datatypes.h" #include @@ -100,6 +101,9 @@ void updateEntry(Data::EntryPtr oldEntry, Data::EntryPtr newEntry, bool overWrite); void removeEntries(Data::EntryVec entries); + bool clearValue(const Data::EID::List& list, const Data::FID& fid); + bool setValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool addLoans(Data::EntryVec entries); bool modifyLoan(Data::LoanPtr loan); bool removeLoans(Data::LoanVec loans); From noreply at forge.novell.com Tue Jan 2 07:51:39 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1358 - in trunk: . src src/gui src/model Message-ID: <20070102145139.230161999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:51:26 -0700 (Tue, 02 Jan 2007) New Revision: 1358 Modified: trunk/ trunk/src/entryeditdialog.cpp trunk/src/gui/boolfieldwidget.cpp trunk/src/gui/fieldwidget.cpp trunk/src/gui/linefieldwidget.cpp trunk/src/gui/linefieldwidget.h trunk/src/gui/parafieldwidget.cpp trunk/src/model/datatypes.cpp trunk/src/model/datatypes.h trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h trunk/src/model/manager.h trunk/src/tellico_kernel.cpp trunk/src/tellico_kernel.h Log: r2571@homebase: robby | 2006-12-16 23:54:41 -0800 checkpoint: bool, para, and line edits seem to work ok Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2570 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2571 Modified: trunk/src/entryeditdialog.cpp =================================================================== --- trunk/src/entryeditdialog.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/entryeditdialog.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -289,11 +289,7 @@ Data::EntryPtr entry = new Data::Entry(m_currColl); m_currEntries.append(entry); - Data::EID eid = tcdb->addEndeavor(Data::EID(), Data::Type::ItemEndeavor); - if(!eid.isNull()) { - m_eidList.clear(); - m_eidList.push_back(eid); - } + m_isOrphan = true; } @@ -326,6 +322,33 @@ } } + m_eidList.clear(); + Data::EID eid = tcdb->endeavorById(m_currEntries.front()->id()); + if(eid.isNull()) { + eid = tcdb->addEndeavor(Data::EID(), Data::Type::WorkEndeavor); + m_eidList.push_back(eid); + eid = tcdb->addEndeavor(eid, Data::Type::ExpressionEndeavor); + m_eidList.push_back(eid); + eid = tcdb->addEndeavor(eid, Data::Type::ManifestationEndeavor); + m_eidList.push_back(eid); + eid = tcdb->addEndeavor(eid, Data::Type::ItemEndeavor, m_currEntries.front()->id()); + m_eidList.push_back(eid); + } else { + m_eidList.push_back(eid); + eid = tcdb->endeavorById(eid.parentId()); + if(!eid.isNull()) { + m_eidList.push_back(eid); + } + eid = tcdb->endeavorById(eid.parentId()); + if(!eid.isNull()) { + m_eidList.push_back(eid); + } + eid = tcdb->endeavorById(eid.parentId()); + if(!eid.isNull()) { + m_eidList.push_back(eid); + } + } + GUI::CursorSaver cs; Kernel::self()->beginCommandGroup(i18n("Modify Entries")); @@ -342,12 +365,12 @@ QString key = QString::number(m_currColl->id()) + fIt->name(); GUI::FieldWidget* widget = m_widgetDict.find(key); if(widget && widget->isEnabled()) { -/// QString temp = widget->text(); +// QString temp = widget->text(); // ok to set field empty string, just not all of them -/// if(modified == false && entry->field(fIt) != temp) { -/// modified = true; -/// } -/// entry->setField(fIt, temp); +// if(modified == false && entry->field(fIt) != temp) { +// modified = true; +// } +// entry->setField(fIt, temp); modified = widget->saveData(m_eidList) || modified; } } Modified: trunk/src/gui/boolfieldwidget.cpp =================================================================== --- trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -40,25 +40,29 @@ // the assumption is that a boolean value is always a short value and that // an endeavor only ever has one value for that field + + QString valueString; + switch(value) { + case True: valueString = QString::fromLatin1("true"); break; + case False: valueString = QString::fromLatin1("false"); break; + default: break; + } + // so if the original value was not empty, we need to remove it // then set the current value - if(m_originalValue != NoValue && !Kernel::self()->clearValue(list_, fid())) { - return false; + bool success = true; + if(m_originalValue == NoValue) { + success = Kernel::self()->setValue(list_, fid(), valueString); + } else if(value == NoValue) { + success = Kernel::self()->clearValue(list_, fid()); } else { - // call succeeded - m_originalValue = NoValue; + success = Kernel::self()->updateValue(list_, fid(), valueString); } - QString valueString; - switch(value) { - case True: valueString = QString::fromLatin1("true"); - case False: valueString = QString::fromLatin1("false"); - default: break; + + if(success) { + m_originalValue = value; } - if(value != NoValue && !Kernel::self()->setValue(list_, fid(), valueString)) { - return false; - } - m_originalValue = value; - return true; + return success; } QString BoolFieldWidget::text() const { Modified: trunk/src/gui/fieldwidget.cpp =================================================================== --- trunk/src/gui/fieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/gui/fieldwidget.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -49,7 +49,7 @@ FieldWidget* FieldWidget::create(Data::FieldPtr field_, Data::FID fid_, QWidget* parent_, const char* name_) { switch (field_->type()) { case Data::Field::Line: - return new GUI::LineFieldWidget(field_, parent_, name_); + return new GUI::LineFieldWidget(field_, fid_, parent_, name_); case Data::Field::Para: return new GUI::ParaFieldWidget(field_, fid_, parent_, name_); Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -17,14 +17,30 @@ #include "../fieldcompletion.h" #include "../latin1literal.h" #include "../tellico_kernel.h" +#include "../model/manager.h" -#include #include +namespace { + static Tellico::Data::UID addValue(const Tellico::Data::FID& fid_, const QString& value_) { + Tellico::Data::UID uid; + switch(fid_.domainType()) { + case Tellico::Data::Type::TitleID: uid = tcdb->addTitle(value_, Tellico::Data::Type::MainTitle); break; + case Tellico::Data::Type::AgentID: + uid = fid_.domain().agent == Tellico::Data::Type::CorpBodyAgent + ? tcdb->addCorpBody(value_) + : tcdb->addPerson(value_); + break; + default: break; + } + return uid; + } +} + using Tellico::GUI::LineFieldWidget; -LineFieldWidget::LineFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_) { +LineFieldWidget::LineFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_), m_originalValue() { m_lineEdit = new KLineEdit(this); connect(m_lineEdit, SIGNAL(textChanged(const QString&)), SIGNAL(modified())); @@ -42,8 +58,61 @@ if(field_->name() == Latin1Literal("isbn")) { m_lineEdit->setValidator(new ISBNValidator(this)); } + + // we're going to start out by assuming that the field can only contain a single type + // of data, so verify that now, by checking idTypes is a single bit + if(!fid_.isSingleDomainType()) { + myDebug() << "field id: " << fid_.id() << " is not a single domain" << endl; + } } + +bool LineFieldWidget::saveData(const Data::EID::List& list_) { + QString value = text(); + // empty and null strings are not equal + if(m_originalValue == value || (m_originalValue.isEmpty() && value.isEmpty())) { + // no need to save anything + return false; + } + + Data::FID f = fid(); + // if it's only a short value text, don't have to worry about a UID + bool isTextValue = f.validDomain(Data::Type::ShortValueID); + + bool success = true; + if(isTextValue) { + if(m_originalValue.isEmpty()) { + success = Kernel::self()->setValue(list_, f, value); + } else if(value.isEmpty()) { + success = Kernel::self()->clearValue(list_, f); + } else { + success = Kernel::self()->updateValue(list_, f, value); + } + } else { + if(m_originalValue.isEmpty()) { + if(m_uids.isEmpty()) { + const QStringList values = QStringList::split(s_semiColon, value); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = addValue(f, value); + if(!uid.isNull()) { + m_uids.push_back(uid); + } + } + } + success = Kernel::self()->setValue(list_, f, m_uids); + } else if(value.isEmpty()) { +// success = Kernel::self()->clearValue(list_, f); + } else { +// success = Kernel::self()->updateValue(list_, f, value); + } + } + + if(success) { + m_originalValue = value; + } + return success; +} + QString LineFieldWidget::text() const { QString text = m_lineEdit->text(); text.replace(s_semiColon, QString::fromLatin1("; ")); @@ -55,6 +124,17 @@ blockSignals(true); m_lineEdit->blockSignals(true); m_lineEdit->setText(text_); + m_originalValue = text_; + // FIXME: use fid() somehow + if(!text_.isEmpty() && fid().isSingleDomainType()) { + const QStringList values = QStringList::split(s_semiColon, text_); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = tcdb->idByValue(fid().domainType(), *it); + if(!uid.isNull()) { + m_uids.push_back(uid); + } + } + } m_lineEdit->blockSignals(false); blockSignals(false); } Modified: trunk/src/gui/linefieldwidget.h =================================================================== --- trunk/src/gui/linefieldwidget.h 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/gui/linefieldwidget.h 2007-01-02 14:51:26 UTC (rev 1358) @@ -28,9 +28,10 @@ Q_OBJECT public: - LineFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + LineFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~LineFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); virtual void addCompletionObjectItem(const QString& text); @@ -44,6 +45,8 @@ private: KLineEdit* m_lineEdit; + QString m_originalValue; + Data::UID::List m_uids; }; } // end GUI namespace Modified: trunk/src/gui/parafieldwidget.cpp =================================================================== --- trunk/src/gui/parafieldwidget.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/gui/parafieldwidget.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -31,7 +31,8 @@ bool ParaFieldWidget::saveData(const Data::EID::List& list_) { QString value = text(); - if(m_originalValue == value) { + // empty and null strings are not equal + if(m_originalValue == value || (m_originalValue.isEmpty() && value.isEmpty())) { // no need to save anything return false; } @@ -40,17 +41,19 @@ // an endeavor only ever has one value for that field // so if the original value was not empty, we need to remove it // then set the current value - if(!m_originalValue.isEmpty() && !Kernel::self()->clearValue(list_, fid())) { - return false; + bool success = true; + if(m_originalValue.isEmpty()) { + success = Kernel::self()->setValue(list_, fid(), value); + } else if(value.isEmpty()) { + success = Kernel::self()->clearValue(list_, fid()); } else { - // call succeeded - m_originalValue = QString(); + success = Kernel::self()->updateValue(list_, fid(), value); } - if(!value.isEmpty() && !Kernel::self()->setValue(list_, fid(), value)) { - return false; + + if(success) { + m_originalValue = value; } - m_originalValue = value; - return true; + return success; } QString ParaFieldWidget::text() const { Modified: trunk/src/model/datatypes.cpp =================================================================== --- trunk/src/model/datatypes.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/model/datatypes.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -34,21 +34,30 @@ const FieldDomain FieldDomain::shortValue (Type::ShortValueID, Type::NoEndeavor, Type::NoAgent); const FieldDomain FieldDomain::longValue (Type::LongValueID, Type::NoEndeavor, Type::NoAgent); +bool FID::validScope(Type::EndeavorType type) const { + return (type & m_scope.endeavor) == type && type != Type::NoEndeavor; +} + bool FID::validScope(const EID& eid) const { return validScope(eid.endeavorType()); } -bool FID::validScope(Type::EndeavorType type) const { - return (type & m_scope.endeavor) == type && type != Type::NoEndeavor; +bool FID::validScope(const EID::List& list) const { + for(EID::List::const_iterator it = list.begin(); it != list.end(); ++it) { + if(!validScope(*it)) { + return false; + } + } + return true; } bool FID::validDomain(int idType) const { // calling with a UID type alone instead of an EID means // that IF the type is an endeavor or an agent, then the domain must allow ANY endeavor or ANY agent - bool b = (m_domain.idTypes & idType); +// bool b = (m_domain.idTypes & idType); // don't check for equal to idType since it could contain multiple flags // example validDomain(ShortValue | LongValue) should be true when domain == ShortValue - if(!b) myDebug() << "validDomain(" << idType << ") = false: domain = " << m_domain.idTypes << endl; +// if(!b) myDebug() << "validDomain(" << idType << ") = false: domain = " << m_domain.idTypes << endl; return (m_domain.idTypes & idType) && (idType != Type::EndeavorID || m_domain.endeavor == Type::AnyEndeavor) && (idType != Type::AgentID || m_domain.agent == Type::AnyAgent) && @@ -65,6 +74,27 @@ return idMatch && (eid.endeavorType() & m_domain.endeavor) == eid.endeavorType(); } +bool FID::validDomain(const EID::List& list) const { + for(EID::List::const_iterator it = list.begin(); it != list.end(); ++it) { + if(!validDomain(*it)) { + return false; + } + } + return true; +} + +bool FID::isSingleDomainType() const { + return (m_domain.idTypes & (m_domain.idTypes-1)) == 0; +} + +Type::IDType FID::domainType() const { + Q_ASSERT(isSingleDomainType()); + if(isSingleDomainType()) { + return static_cast(m_domain.idTypes); + } + return Type::UnknownID; +} + // these are the id types possible to have in a UID // could have multiple bits set bool Tellico::Data::isValueType(int type) { Modified: trunk/src/model/datatypes.h =================================================================== --- trunk/src/model/datatypes.h 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/model/datatypes.h 2007-01-02 14:51:26 UTC (rev 1358) @@ -268,9 +268,13 @@ bool validScope(Type::EndeavorType type) const; bool validScope(const EID& eid) const; + bool validScope(const EID::List& list) const; bool validDomain(int idType) const; bool validDomain(const UID& uid) const; bool validDomain(const EID& eid) const; + bool validDomain(const EID::List& list) const; + bool isSingleDomainType() const; + Type::IDType domainType() const; private: Type::FieldType m_field; Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -23,6 +23,7 @@ #include #include +#include #include typedef std::auto_ptr FieldListPtr; @@ -57,14 +58,42 @@ } \ } while(false) +#define RETURN_IF(a) \ + do { \ + Q_ASSERT(!(a)); \ + if((a)) { \ + myDebug() << __PRETTY_FUNCTION__ << endl; \ + return; \ + } \ + } while (false) + +#define RETURN_IF2(a,b) \ + do { \ + Q_ASSERT(!(a)); \ + if((a)) { \ + myDebug() << __PRETTY_FUNCTION__ << endl; \ + return (b); \ + } \ + } while (false) + +#define RETURN_IF3(a,b,c) \ + do { \ + Q_ASSERT(!(a)); \ + if((a)) { \ + myDebug() << __PRETTY_FUNCTION__ << endl; \ + myDebug() << "Problem value = " << c << endl; \ + return (b); \ + } \ + } while (false) + namespace { static const uint DB_VERSION = 1; } template -QString toString(T list) { +QString toString(const T& list) { QStringList result; - for(typename T::iterator it = list.begin(); it != list.end(); ++it) { + for(typename T::const_iterator it = list.begin(); it != list.end(); ++it) { result << QString::number((*it).id()); } return result.join(S(", ")); @@ -315,7 +344,8 @@ } uint KexiModel::count(Type::IDType type) const { - Q_ASSERT(type != Type::UnknownID); + RETURN_IF2(type == Type::UnknownID, 0); + QString tname = TNAME(type); QString id; switch(type) { @@ -350,7 +380,7 @@ } KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::CollectionID)); - Q_ASSERT(table); + RETURN_IF2(!table, CID()); // check if it exists first QueryBuilder qb(this); @@ -399,7 +429,7 @@ } Tellico::Data::CollectionInfo KexiModel::collectionInfo(const CID& cid) const { - Q_ASSERT(!cid.isNull()); + RETURN_IF2(cid.isNull(), CollectionInfo()); const QString tname = TNAME(Type::CollectionID); QueryBuilder qb(this); @@ -445,9 +475,8 @@ } Tellico::Data::CID KexiModel::endeavorCollection(Type::EndeavorType type) { - if(type == Type::NoEndeavor || type == Type::AnyEndeavor) { - return CID(); - } + RETURN_IF2(type == Type::NoEndeavor, CID()); + RETURN_IF2(type == Type::AnyEndeavor, CID()); CID cid = m_endeavorCollectionMap[type]; if(cid.isNull()) { @@ -469,9 +498,9 @@ } QString KexiModel::categoryName(const UID& uid) { - if(uid.isNull() || uid.idType() != Type::CategoryID) { - return QString::null; - } + RETURN_IF2(uid.isNull(), QString::null); + RETURN_IF2(uid.idType() != Type::CategoryID, QString::null); + QueryBuilder qb(this); qb.addReturnField(TNAME(Type::CategoryID), S("name")); qb.addWhere(TNAME(Type::CategoryID), S("cat_id"), uid.id()); @@ -494,8 +523,8 @@ } KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::CategoryID)); - Q_ASSERT(table); - std::auto_ptr list(table->subList(S("name"))); + RETURN_IF2(!table, UID()); + FieldListPtr list(table->subList(S("name"))); if(!m_conn->insertRecord(*list, category)) { myDebug() << "KexiModel::addFieldCategory() - insert record error" << endl; @@ -814,9 +843,7 @@ } bool KexiModel::setFieldProperty(const FID& fid, const QString& name, const QString& value) { - if(fid.isNull()) { - return false; - } + RETURN_IF2(fid.isNull(), false); if(value.isEmpty()) { // remove property QString q = QString::fromLatin1("DELETE FROM %1 WHERE field_id = %2 AND name = %3") @@ -864,17 +891,11 @@ } Tellico::Data::UID KexiModel::setFieldValue(const EID& eid, const FID& fid, const QString& value) { - Q_ASSERT(!eid.isNull()); - Q_ASSERT(!fid.isNull()); - Q_ASSERT(fid.validScope(eid)); - Q_ASSERT(fid.domain().idTypes & (Type::ShortValueID | Type::LongValueID)); + RETURN_IF2(eid.isNull(), UID()); + RETURN_IF2(fid.isNull(), UID()); + RETURN_IF3(!fid.validScope(eid), UID(), eid.endeavorType()); + RETURN_IF2(!(fid.domain().idTypes & (Type::ShortValueID | Type::LongValueID)), UID()); - if(!fid.validScope(eid)) { - myDebug() << "KexiModel::setFieldValue(QString) - wrong field scope for fid = " << fid.id() << endl; - myDebug() << "endeavor type: " << eid.endeavorType() << endl; - return UID(); - } - // values just get inserted // TODO: can't have multiple paragraph values, right? Type::IDType type; @@ -952,21 +973,43 @@ } */ -bool KexiModel::setFieldValue(const EID& eid, const FID& fid, const UID& value) { - Q_ASSERT(!eid.isNull()); - Q_ASSERT(isValueType(value.idType())); +bool KexiModel::updateFieldValue(const EID::List& eids, const FID& fid, const QString& value) { + RETURN_IF2(eids.isEmpty(), false); + RETURN_IF2(fid.isNull(), false); + RETURN_IF3(!fid.validScope(eids), false, eids[0].endeavorType()); + RETURN_IF2(!(fid.domain().idTypes & (Type::ShortValueID | Type::LongValueID)), false); - if(!fid.validScope(eid)) { - myDebug() << "KexiModel::setFieldValue(UID) - wrong field scope for fid = " << fid.id() << endl; - myDebug() << "endeavor type: " << eid.endeavorType() << endl; + // values just get inserted + // TODO: can't have multiple paragraph values, right? + Type::IDType type; + if(fid.fieldType() == Type::ParaField) { + type = Type::LongValueID; + } else { + type = Type::ShortValueID; + } + if(!fid.validDomain(type)) { + myDebug() << "KexiModel::updateFieldValue(QString) - wrong field domain for fid = " << fid.id() << endl; return false; } - if(!fid.validDomain(value)) { - myDebug() << "KexiModel::setFieldValue(UID) - wrong field domain for fid = " << fid.id() << endl; + QString q = S("UPDATE %1 SET value='%2' WHERE field_id=%3 AND endeavor_id IN (%4)") + .arg(TNAME(type), ESC(value), QString::number(fid.id()), toString(eids)); + + if(!m_conn->executeSQL(q)) { + myDebug() << "KexiModel::updateFieldValue() - query error" << endl; + myDebug() << q << endl; return false; } + updateModified(eids); + return true; +} +bool KexiModel::setFieldValue(const EID& eid, const FID& fid, const UID& value) { + RETURN_IF2(eid.isNull(), false); + RETURN_IF2(!isValueType(value.idType()), false); + RETURN_IF3(!fid.validScope(eid), false, eid.endeavorType()); + RETURN_IF2(!fid.validDomain(value), false); + // slightly odd, we link to an agent by using a name // so get name id if using an agent UID actualValue = value.idType() == Type::AgentID ? agentInfo(value).nameId() : value; @@ -999,8 +1042,8 @@ } Tellico::Data::EID KexiModel::addEndeavor(const EID& parent, Type::EndeavorType type, ID id) { - Q_ASSERT(type != Type::NoEndeavor); - Q_ASSERT(type != Type::AnyEndeavor); + RETURN_IF2(type == Type::NoEndeavor, EID()); + RETURN_IF2(type == Type::AnyEndeavor, EID()); KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::EndeavorID)); Q_ASSERT(table); @@ -1045,7 +1088,7 @@ } bool KexiModel::removeEndeavor(const EID& eid) { - Q_ASSERT(!eid.isNull()); + RETURN_IF2(eid.isNull(), false); QString q = QString::fromLatin1("DELETE FROM %1 WHERE endeavor_id = %2").arg(TNAME(Type::EndeavorID)).arg(eid.id()); if(!m_conn->executeSQL(q)) { myDebug() << "KexiModel::removeEndeavor() - query error" << endl; @@ -1548,7 +1591,7 @@ } Tellico::Data::UID KexiModel::addTitle(const QString& title, Type::TitleType type) { - Q_ASSERT(!title.isEmpty()); + RETURN_IF2(title.isEmpty(), UID()); const QString tname = TNAME(Type::TitleID); QueryBuilder qb(this); @@ -1640,11 +1683,26 @@ return UID(Type::ShortValueID, id); } +Tellico::Data::UID KexiModel::idByValue(Type::IDType type, const QString& value) const { + RETURN_IF2(value.isEmpty(), UID()); + const QString tname = TNAME(type); + QueryBuilder qb(this); + qb.addReturnField(tname, idColumn(type)); + qb.addWhere(tname, valueColumn(type), ESC(value)); + + KexiDB::RowData data = qb.data(); + if(data.isEmpty()) { + return UID(); + } + return data[0].toInt() > 0 ? UID(type, data[0].toInt()) : UID(); +} + /*********** PRIVATE *******************/ Tellico::Data::UID KexiModel::hasFieldValue(const FID& fid, const QString& value) const { // for now, assume that the field type is not used - Q_ASSERT(fid.validDomain(Type::SubjectID)); + RETURN_IF2(!fid.validDomain(Type::SubjectID), UID()); + const QString tname = TNAME(Type::SubjectID); QueryBuilder qb(this); qb.addReturnField(tname, idColumn(Type::SubjectID)); @@ -1660,7 +1718,7 @@ Tellico::Data::UID KexiModel::addFieldValue(const FID& fid, const QString& value, bool force) { // for now, assume that the field type is not used - Q_ASSERT(fid.validDomain(Type::SubjectID)); + RETURN_IF2(!fid.validDomain(Type::SubjectID), UID()); if(!force && fid.fieldType() == Type::ChoiceField) { // TODO @@ -1673,7 +1731,7 @@ KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::SubjectID)); Q_ASSERT(table); - Q_ASSERT(table); + KexiDB::FieldList list; // list.addField(table->field(S("field_id"))); list.addField(table->field(S("value"))); @@ -1684,14 +1742,15 @@ CONN_DEBUG; return UID(); } - return UID(Type::ShortValueID, m_conn->lastInsertedAutoIncValue(S("value_id"), *table)); + return UID(Type::SubjectID, m_conn->lastInsertedAutoIncValue(idColumn(Type::SubjectID), *table)); } bool KexiModel::writeFieldValue(const EID& eid, const FID& fid, const UID& uid) { - Q_ASSERT(!eid.isNull()); - Q_ASSERT(isValueType(uid.idType())); - Q_ASSERT(uid.idType() != Type::LongValueID); - Q_ASSERT(uid.idType() != Type::AgentID); + RETURN_IF2(eid.isNull(), false); + RETURN_IF2(!isValueType(uid.idType()), false); + RETURN_IF2(uid.idType() == Type::ShortValueID, false); + RETURN_IF2(uid.idType() == Type::LongValueID, false); + RETURN_IF2(uid.idType() == Type::AgentID, false); QString tname = linkTable(uid.idType()); QString link = linkColumn(uid.idType()); @@ -1771,10 +1830,17 @@ void KexiModel::updateModified(const EID& eid) { Q_ASSERT(!eid.isNull()); - QString q = QString::fromLatin1("UPDATE %1 SET mdate = '%2' WHERE endeavor_id = %3") + EID::List list; + list.push_back(eid); + updateModified(list); +} + +void KexiModel::updateModified(const EID::List& eids) { + Q_ASSERT(!eids.isEmpty()); + QString q = QString::fromLatin1("UPDATE %1 SET mdate = '%2' WHERE endeavor_id IN (%3)") .arg(TNAME(Type::EndeavorID)) .arg(QDateTime::currentDateTime().toString(Qt::ISODate)) - .arg(eid.id()); + .arg(toString(eids)); if(!m_conn->executeSQL(q)) { myDebug() << "KexiModel::updateModified() - query error" << endl; myDebug() << q << endl; @@ -1922,3 +1988,5 @@ #undef S #undef BEGINT #undef ENDT +#undef RETURN_IF +#undef RETURN_IF2 Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/model/keximodel.h 2007-01-02 14:51:26 UTC (rev 1358) @@ -77,6 +77,8 @@ virtual bool setFieldProperty(const FID& fid, const QString& name, const QString& value); virtual UID setFieldValue(const EID& eid, const FID& fid, const QString& value); + virtual bool updateFieldValue(const EID::List& eids, const FID& fid, const QString& value); + virtual bool setFieldValue(const EID& eid, const FID& fid, const UID& value); virtual UID::List fieldValues(const EID& eid, const FID& fid) const; virtual QString value(const UID& uid) const; @@ -107,6 +109,8 @@ virtual AID agentById(ID id) const; virtual UID valueById(ID id) const; + virtual UID idByValue(Type::IDType type, const QString& value) const; + private: class QueryBuilder; @@ -130,6 +134,7 @@ UID addRule(const CollectionRule& rule); void updateModified(const EID& eid); + void updateModified(const EID::List& list); // only gets used by endeavors(CID); EID::List matchingEndeavors(const FID& fid, const QString& value, RuleOp op = OP_Like, Type::EndeavorType type=Type::AnyEndeavor) const; Modified: trunk/src/model/manager.h =================================================================== --- trunk/src/model/manager.h 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/model/manager.h 2007-01-02 14:51:26 UTC (rev 1358) @@ -14,10 +14,10 @@ #ifndef TELLICO_DATA_MANAGER_H #define TELLICO_DATA_MANAGER_H +#include "keximodel.h" + #include -#include "keximodel.h" - #define tcdb Tellico::Data::Manager::self()->model() namespace Tellico { Modified: trunk/src/tellico_kernel.cpp =================================================================== --- trunk/src/tellico_kernel.cpp 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/tellico_kernel.cpp 2007-01-02 14:51:26 UTC (rev 1358) @@ -375,6 +375,11 @@ bool Kernel::setValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { + // just skip bad scopes for now + if(!fid_.validScope(*it)) { +// myDebug() << "Kernel::setValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; + continue; + } Data::UID uid = tcdb->setFieldValue(*it, fid_, value_); if(uid.isNull()) { return false; @@ -382,3 +387,37 @@ } return true; } + +bool Kernel::updateValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { + // EntryEditDialog might pass EID with wrong scope + Data::EID::List newList; + for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { + // just skip bad scopes for now + if(!fid_.validScope(*it)) { +// myDebug() << "Kernel::updateValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; + continue; + } + newList.push_back(*it); + } + return tcdb->updateFieldValue(newList, fid_, value_); +} + +bool Kernel::setValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID::List& values_) { + for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { + // just skip bad scopes for now + if(!fid_.validScope(*it)) { +// myDebug() << "Kernel::setValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; + continue; + } + for(Data::UID::List::const_iterator it2 = values_.begin(); it2 != values_.end(); ++it2) { + if(!tcdb->setFieldValue(*it, fid_, *it2)) { + return false; + } + } + } + return true; +} + +bool Kernel::updateValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values_) { + return false; +} Modified: trunk/src/tellico_kernel.h =================================================================== --- trunk/src/tellico_kernel.h 2007-01-02 14:50:38 UTC (rev 1357) +++ trunk/src/tellico_kernel.h 2007-01-02 14:51:26 UTC (rev 1358) @@ -102,8 +102,13 @@ void removeEntries(Data::EntryVec entries); bool clearValue(const Data::EID::List& list, const Data::FID& fid); + // these two functions are for ShortValue and LongValue only, no link tables bool setValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool updateValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool setValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); + bool updateValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); + bool addLoans(Data::EntryVec entries); bool modifyLoan(Data::LoanPtr loan); bool removeLoans(Data::LoanVec loans); From noreply at forge.novell.com Tue Jan 2 07:51:56 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1359 - in trunk: . src/fetch Message-ID: <20070102145156.ED1C61999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:51:54 -0700 (Tue, 02 Jan 2007) New Revision: 1359 Modified: trunk/ trunk/ChangeLog trunk/src/fetch/z3950connection.cpp Log: r2572@homebase: robby | 2006-12-17 22:26:19 -0800 post search result for z3950 immediately, fixes a bug where sometimes fetcher would be done before the result shows up Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2571 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2572 Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-01-02 14:51:26 UTC (rev 1358) +++ trunk/ChangeLog 2007-01-02 14:51:54 UTC (rev 1359) @@ -1,3 +1,8 @@ +2006-12-17 Robby Stephenson + + * Fixed bug with some results in z39.50 search not showing up, + due to search events getting processed out of order. + 2006-12-07 Robby Stephenson * Fixed bug with secondary and tertiary sorting. Modified: trunk/src/fetch/z3950connection.cpp =================================================================== --- trunk/src/fetch/z3950connection.cpp 2007-01-02 14:51:26 UTC (rev 1358) +++ trunk/src/fetch/z3950connection.cpp 2007-01-02 14:51:54 UTC (rev 1359) @@ -166,7 +166,7 @@ QString newSyntax = m_syntax; if(numResults > 0) { - myLog() << "Z3950Connection::run() - current syntax is " << newSyntax << endl; + myLog() << "Z3950Connection::run() - current syntax is " << newSyntax << " (" << numResults << " results)" << endl; // so now we know that results exist, might have to check syntax int len; ZOOM_record rec = ZOOM_resultset_record(resultSet, 0); @@ -273,7 +273,8 @@ } else { data = toXML(ZOOM_record_get(rec, "raw", &len), m_sourceCharSet); } - kapp->postEvent(m_fetcher, new Z3950ResultFound(data)); + Z3950ResultFound ev(data); + kapp->sendEvent(m_fetcher, &ev); } ZOOM_resultset_destroy(resultSet); From noreply at forge.novell.com Tue Jan 2 07:52:09 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1360 - in trunk: . src src/translators Message-ID: <20070102145209.13F7F1999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:05 -0700 (Tue, 02 Jan 2007) New Revision: 1360 Modified: trunk/ trunk/ChangeLog trunk/src/entry.cpp trunk/src/translators/tellicoxmlexporter.cpp trunk/src/translators/tellicozipexporter.cpp Log: r2573@homebase: robby | 2006-12-19 21:34:10 -0800 Fixed bug with comparing relative URLs for merging file catalogs Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2572 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2573 Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-01-02 14:51:54 UTC (rev 1359) +++ trunk/ChangeLog 2007-01-02 14:52:05 UTC (rev 1360) @@ -1,3 +1,7 @@ +2006-12-19 Robby Stephenson + + * Fixed bug with comparing relative URLs for merging file catalogs. + 2006-12-17 Robby Stephenson * Fixed bug with some results in z39.50 search not showing up, Modified: trunk/src/entry.cpp =================================================================== --- trunk/src/entry.cpp 2007-01-02 14:51:54 UTC (rev 1359) +++ trunk/src/entry.cpp 2007-01-02 14:52:05 UTC (rev 1360) @@ -19,6 +19,7 @@ #include "tellico_debug.h" #include "tellico_utils.h" #include "tellico_debug.h" +#include "latin1literal.h" #include @@ -46,7 +47,15 @@ QString u = field(QString::fromLatin1("url")); if(!u.isEmpty()) { // versions before 1.2.7 could have saved the url without the protocol - return KURL::fromPathOrURL(u) == KURL::fromPathOrURL(e1.field(QString::fromLatin1("url"))); + bool b = KURL::fromPathOrURL(u) == KURL::fromPathOrURL(e1.field(QString::fromLatin1("url"))); + if(b) { + return true; + } else { + Data::FieldPtr f = m_coll->fieldByName(QString::fromLatin1("url")); + if(f && f->property(QString::fromLatin1("relative")) == Latin1Literal("true")) { + return KURL(Document::self()->URL(), u) == KURL::fromPathOrURL(e1.field(QString::fromLatin1("url"))); + } + } } } if(e1.m_fields.count() != m_fields.count()) { Modified: trunk/src/translators/tellicoxmlexporter.cpp =================================================================== --- trunk/src/translators/tellicoxmlexporter.cpp 2007-01-02 14:51:54 UTC (rev 1359) +++ trunk/src/translators/tellicoxmlexporter.cpp 2007-01-02 14:52:05 UTC (rev 1360) @@ -316,8 +316,7 @@ !url().isEmpty()) { // if a relative URL and url() is not empty, change the value! KURL old_url(Kernel::self()->URL(), fieldValue); - KURL new_url = KURL::relativeURL(url(), old_url); - fieldElem.appendChild(dom_.createTextNode(new_url.url())); + fieldElem.appendChild(dom_.createTextNode(KURL::relativeURL(url(), old_url))); } else { fieldElem.appendChild(dom_.createTextNode(fieldValue)); } Modified: trunk/src/translators/tellicozipexporter.cpp =================================================================== --- trunk/src/translators/tellicozipexporter.cpp 2007-01-02 14:51:54 UTC (rev 1359) +++ trunk/src/translators/tellicozipexporter.cpp 2007-01-02 14:52:05 UTC (rev 1360) @@ -54,6 +54,7 @@ TellicoXMLExporter exp; exp.setEntries(entries()); + exp.setURL(url()); // needed in case of relative URL values long opt = options(); opt |= Export::ExportUTF8; // always export to UTF-8 opt |= Export::ExportImages; // always list the images in the xml From noreply at forge.novell.com Tue Jan 2 07:52:18 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1361 - in trunk: . src/gui src/model Message-ID: <20070102145218.A0E291999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:12 -0700 (Tue, 02 Jan 2007) New Revision: 1361 Added: trunk/src/model/agentinfo.cpp Modified: trunk/ trunk/src/gui/linefieldwidget.cpp trunk/src/model/Makefile.am trunk/src/model/agentinfo.h trunk/src/model/datatypes.cpp trunk/src/model/defaultfields.cpp trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h trunk/src/model/manager.cpp Log: r2574@homebase: robby | 2006-12-19 22:55:16 -0800 checkpoint, allow domains for any UID Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2573 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2574 Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -18,18 +18,18 @@ #include "../latin1literal.h" #include "../tellico_kernel.h" #include "../model/manager.h" +#include "../model/agentinfo.cpp" #include namespace { static Tellico::Data::UID addValue(const Tellico::Data::FID& fid_, const QString& value_) { + myDebug() << "addValue() - " << value_ << endl; Tellico::Data::UID uid; switch(fid_.domainType()) { case Tellico::Data::Type::TitleID: uid = tcdb->addTitle(value_, Tellico::Data::Type::MainTitle); break; case Tellico::Data::Type::AgentID: - uid = fid_.domain().agent == Tellico::Data::Type::CorpBodyAgent - ? tcdb->addCorpBody(value_) - : tcdb->addPerson(value_); + uid = tcdb->addAgent(Tellico::Data::AgentInfo::fromString(fid_.domain().agent, value_)); break; default: break; } @@ -93,7 +93,7 @@ if(m_uids.isEmpty()) { const QStringList values = QStringList::split(s_semiColon, value); for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { - Data::UID uid = addValue(f, value); + Data::UID uid = addValue(f, *it); if(!uid.isNull()) { m_uids.push_back(uid); } Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/Makefile.am 2007-01-02 14:52:12 UTC (rev 1361) @@ -4,14 +4,14 @@ libmodel_a_SOURCES = \ datatypes.cpp keximodel.cpp keximodel_tables.cpp \ -defaultfields.cpp manager.cpp +defaultfields.cpp manager.cpp agentinfo.cpp CLEANFILES = *~ EXTRA_DIST = \ datatypes.h datatypes.cpp \ keximodel.h keximodel.cpp keximodel_tables.cpp \ -agentinfo.h collectioninfo.h collectionrule.h \ +agentinfo.h agentinfo.cpp collectioninfo.h collectionrule.h \ fieldinfo.h writer.h defaultfields.h defaultfields.cpp \ manager.h manager.cpp Added: trunk/src/model/agentinfo.cpp =================================================================== --- trunk/src/model/agentinfo.cpp (rev 0) +++ trunk/src/model/agentinfo.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -0,0 +1,34 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "agentinfo.h" +#include "../tellico_debug.h" + +#include + +using namespace Tellico::Data; + +AgentInfo AgentInfo::fromString(Type::AgentType type_, const QString& value_) { + QStringList words = QStringList::split(' ', value_); + QString family, given, suffix; + if(type_ == Type::PersonAgent && words.count() > 0) { + family = words.back(); + if(words.count() > 1) { + words.pop_back(); + given = words.join(QChar(' ')); + } + } + + // for now AID() is null, but has a type + return AgentInfo(AID(Unknown, type_, Unknown), given, family, suffix, value_); +} Modified: trunk/src/model/agentinfo.h =================================================================== --- trunk/src/model/agentinfo.h 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/agentinfo.h 2007-01-02 14:52:12 UTC (rev 1361) @@ -34,6 +34,8 @@ const QString family; const QString suffix; const QString display; + + static AgentInfo fromString(Type::AgentType, const QString& value); }; } Modified: trunk/src/model/datatypes.cpp =================================================================== --- trunk/src/model/datatypes.cpp 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/datatypes.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -54,13 +54,16 @@ bool FID::validDomain(int idType) const { // calling with a UID type alone instead of an EID means // that IF the type is an endeavor or an agent, then the domain must allow ANY endeavor or ANY agent + // NO, strike that // bool b = (m_domain.idTypes & idType); // don't check for equal to idType since it could contain multiple flags // example validDomain(ShortValue | LongValue) should be true when domain == ShortValue // if(!b) myDebug() << "validDomain(" << idType << ") = false: domain = " << m_domain.idTypes << endl; +// return (m_domain.idTypes & idType) && +// (idType != Type::EndeavorID || m_domain.endeavor == Type::AnyEndeavor) && +// (idType != Type::AgentID || m_domain.agent == Type::AnyAgent) && +// isValueType(idType); return (m_domain.idTypes & idType) && - (idType != Type::EndeavorID || m_domain.endeavor == Type::AnyEndeavor) && - (idType != Type::AgentID || m_domain.agent == Type::AnyAgent) && isValueType(idType); } Modified: trunk/src/model/defaultfields.cpp =================================================================== --- trunk/src/model/defaultfields.cpp 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/defaultfields.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -58,7 +58,7 @@ FID fid; int groupComp = Field::AllowCompletion | Field::AllowGrouped; - addAgentField(QString::fromLatin1("author"), i18n("Author"), FieldScope::work, generalCat); + addAgentField(QString::fromLatin1("author"), i18n("Author"), FieldScope::work, generalCat, FieldDomain::person); QStringList binding; binding << i18n("Hardback") << i18n("Paperback") << i18n("Trade Paperback") @@ -77,7 +77,7 @@ model.setFieldInCollection(m_cid, fid, true); } - addAgentField(QString::fromLatin1("publisher"), i18n("Publisher"), FieldScope::manifestation, generalCat); + addAgentField(QString::fromLatin1("publisher"), i18n("Publisher"), FieldScope::manifestation, generalCat, FieldDomain::corporateBody); // multiple printings are different items? if(model.fieldByName(QString::fromLatin1("edition")).isNull()) { Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -1389,102 +1389,40 @@ return value(values.front()); } -Tellico::Data::AID KexiModel::addCorpBody(const QString& name) { +Tellico::Data::AID KexiModel::addAgent(const AgentInfo& info_) { // ok for name to be empty -// TODO: better full name parsing - if(!name.isEmpty()) { + if(!info_.family.isEmpty() || !info_.display.isEmpty()) { + const QString tname = TNAME(Type::NameID); QueryBuilder qb(this); - qb.addReturnField(TNAME(Type::NameID), idColumn(Type::AgentID)); - qb.addReturnField(TNAME(Type::NameID), idColumn(Type::NameID)); - qb.addWhere(TNAME(Type::NameID), S("display_name"), ESC(name)); - KexiDB::RowData data = qb.data(); - if(!data.isEmpty()) { - return AID(data[0].toInt(), Type::CorpBodyAgent, data[1].toInt()); + qb.addReturnField(tname, idColumn(Type::AgentID)); + qb.addReturnField(tname, idColumn(Type::NameID)); + if(info_.aid.agentType() == Type::CorpBodyAgent) { + qb.addWhere(tname, S("display_name"), ESC(info_.display)); + } else { + qb.addWhere(tname, S("given_name"), ESC(info_.given)); + qb.addWhere(tname, S("family_name"), ESC(info_.family)); } - } - - // now, have to insert agent first, get its id, then insert name - // with th agent id, then update the agent's preferred name id - - KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::AgentID)); - Q_ASSERT(table); - KexiDB::FieldList list; - list.addField(table->field(S("type"))); - - if(!m_conn->insertRecord(list, Type::CorpBodyAgent)) { - myDebug() << "KexiModel::addCorpBody() - insert record error" << endl; - CONN_DEBUG; - return AID(); - } - AID corpBody(m_conn->lastInsertedAutoIncValue(S("agent_id"), *table), Type::CorpBodyAgent, None); - - if(name.isEmpty()) { - return corpBody; - } - - table = m_conn->tableSchema(TNAME(Type::NameID)); - list.clear(); - list.addField(table->field(S("agent_id"))); - list.addField(table->field(S("display_name"))); - - if(!m_conn->insertRecord(list, corpBody.id(), name)) { - myDebug() << "KexiModel::addPerson() - insert record error" << endl; - CONN_DEBUG; - return corpBody; - } - ID nameID = m_conn->lastInsertedAutoIncValue(S("name_id"), *table); - - QString q = QString::fromLatin1("UPDATE %1 SET name_id = %2 WHERE agent_id = %3") - .arg(TNAME(Type::AgentID)) - .arg(nameID) - .arg(corpBody.id()); - if(!m_conn->executeSQL(q)) { - myDebug() << "KexiModel::addCorpBody() - query error" << endl; - myDebug() << q << endl; - CONN_DEBUG; - } - return AID(corpBody.id(), Type::CorpBodyAgent, nameID); -} - -Tellico::Data::AID KexiModel::addPerson(const QString& name) { -// ok for name to be empty -// TODO: better full name parsing - QStringList words = QStringList::split(' ', name); - QString family, given; - if(words.count() > 0) { - family = words.back(); - if(words.count() > 1) { - words.pop_back(); - given = words.join(QChar(' ')); - } - } - - if(!name.isEmpty()) { - QueryBuilder qb(this); - qb.addReturnField(TNAME(Type::NameID), idColumn(Type::AgentID)); - qb.addReturnField(TNAME(Type::NameID), idColumn(Type::NameID)); - qb.addWhere(TNAME(Type::NameID), S("given_name"), ESC(given)); - qb.addWhere(TNAME(Type::NameID), S("family_name"), ESC(family)); KexiDB::RowData data = qb.data(); if(!data.isEmpty()) { - return AID(data[0].toInt(), Type::PersonAgent, data[1].toInt()); + return AID(data[0].toInt(), info_.aid.agentType(), data[1].toInt()); } } KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::AgentID)); - Q_ASSERT(table); + RETURN_IF2(!table, AID()); + KexiDB::FieldList list; list.addField(table->field(S("type"))); - if(!m_conn->insertRecord(list, Type::PersonAgent)) { - myDebug() << "KexiModel::addPerson() - insert record error" << endl; + if(!m_conn->insertRecord(list, info_.aid.agentType())) { + myDebug() << "KexiModel::addAgent() - insert record error" << endl; CONN_DEBUG; return AID(); } - AID person(m_conn->lastInsertedAutoIncValue(S("agent_id"), *table), Type::PersonAgent, None); + AID agent(m_conn->lastInsertedAutoIncValue(S("agent_id"), *table), info_.aid.agentType(), None); - if(name.isEmpty()) { - return person; + if(info_.family.isEmpty() && info_.display.isEmpty()) { + return agent; } table = m_conn->tableSchema(TNAME(Type::NameID)); @@ -1494,27 +1432,27 @@ list.addField(table->field(S("family_name"))); list.addField(table->field(S("display_name"))); - if(!m_conn->insertRecord(list, person.id(), given, family, name)) { - myDebug() << "KexiModel::addPerson() - insert record error" << endl; + if(!m_conn->insertRecord(list, agent.id(), info_.given, info_.family, info_.display)) { + myDebug() << "KexiModel::addAgent() - insert record error" << endl; CONN_DEBUG; - return person; + return agent; } ID nameID = m_conn->lastInsertedAutoIncValue(S("name_id"), *table); QString q = QString::fromLatin1("UPDATE %1 SET name_id = %2 WHERE agent_id = %3") .arg(TNAME(Type::AgentID)) .arg(nameID) - .arg(person.id()); + .arg(agent.id()); if(!m_conn->executeSQL(q)) { - myDebug() << "KexiModel::addPerson() - query error" << endl; + myDebug() << "KexiModel::addAgent() - query error" << endl; myDebug() << q << endl; CONN_DEBUG; } - return AID(person.id(), Type::PersonAgent, nameID); + return AID(agent.id(), info_.aid.agentType(), nameID); } Tellico::Data::AgentInfo KexiModel::agentInfo(const UID& uid) const { - Q_ASSERT(uid.idType() == Type::AgentID); + RETURN_IF2(uid.idType() != Type::AgentID, AgentInfo()); const QString agentTable = TNAME(Type::AgentID); const QString nameTable = TNAME(Type::NameID); @@ -1548,10 +1486,7 @@ } Tellico::Data::AID KexiModel::agentByName(const UID& name) const { - Q_ASSERT(name.idType() == Type::NameID); - if(name.idType() != Type::NameID) { - return AID(); - } + RETURN_IF2(name.idType() != Type::NameID, AID()); const QString tname = TNAME(Type::NameID); @@ -1567,10 +1502,7 @@ } Tellico::Data::UID::List KexiModel::agentNames(const UID& agent) const { - Q_ASSERT(agent.idType() == Type::AgentID); - if(agent.idType() != Type::AgentID) { - return UID::List(); - } + RETURN_IF2(agent.idType() != Type::AgentID, UID::List()); UID::List list; const QString tname = TNAME(Type::NameID); @@ -1618,7 +1550,7 @@ } Tellico::Data::UID KexiModel::addDate(const QString& date) { - Q_ASSERT(!date.isEmpty()); + RETURN_IF2(date.isEmpty(), UID()); const QString tname = TNAME(Type::DateID); QueryBuilder qb(this); @@ -1630,7 +1562,7 @@ } KexiDB::TableSchema* table = m_conn->tableSchema(tname); - Q_ASSERT(table); + RETURN_IF2(!table, UID()); KexiDB::FieldList list; list.addField(table->field(S("value"))); Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/keximodel.h 2007-01-02 14:52:12 UTC (rev 1361) @@ -96,8 +96,7 @@ virtual EID::List matchingEndeavors(const FID& fid, const UID& uid, Type::EndeavorType type=Type::AnyEndeavor) const; virtual EID::List childEndeavors(const EID& eid) const; - virtual AID addCorpBody(const QString& name); - virtual AID addPerson(const QString& name); + virtual AID addAgent(const AgentInfo& info); virtual AgentInfo agentInfo(const UID& uid) const; virtual UID::List agentNames(const UID& agent) const; virtual AID agentByName(const UID& name) const; Modified: trunk/src/model/manager.cpp =================================================================== --- trunk/src/model/manager.cpp 2007-01-02 14:52:05 UTC (rev 1360) +++ trunk/src/model/manager.cpp 2007-01-02 14:52:12 UTC (rev 1361) @@ -17,15 +17,15 @@ //#include "store/legacyreader.h" #include -//#include +#include using Tellico::Data::Manager; Manager* Manager::s_self = 0; Manager::Manager() : m_model(0) { KURL u = QString::fromLatin1("file:///tmp/tellico.tcdb"); -// bool exists = QFile::exists(u.path()); -// QFile::remove(u.path()); +// bool exists = QFile::exists(u.path()); + QFile::remove(u.path()); open(u); } From noreply at forge.novell.com Tue Jan 2 07:52:29 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1362 - in trunk: . src/fetch Message-ID: <20070102145229.BCC361999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:23 -0700 (Tue, 02 Jan 2007) New Revision: 1362 Modified: trunk/ trunk/src/fetch/amazonfetcher.cpp trunk/src/fetch/z3950fetcher.cpp Log: r2575@homebase: robby | 2006-12-20 21:54:16 -0800 tweak dialog wording Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2574 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2575 Modified: trunk/src/fetch/amazonfetcher.cpp =================================================================== --- trunk/src/fetch/amazonfetcher.cpp 2007-01-02 14:52:12 UTC (rev 1361) +++ trunk/src/fetch/amazonfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) @@ -549,7 +549,7 @@ } if(!isbnNotFound.isEmpty()) { isbnNotFound.sort(); - infoList(i18n("No entries were found for the following ISBN values:"), isbnNotFound); + infoList(i18n("No results were found for the following ISBN values:"), isbnNotFound); } } m_countOffset = m_entries.count() % AMAZON_RETURNS_PER_REQUEST; Modified: trunk/src/fetch/z3950fetcher.cpp =================================================================== --- trunk/src/fetch/z3950fetcher.cpp 2007-01-02 14:52:12 UTC (rev 1361) +++ trunk/src/fetch/z3950fetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) @@ -422,7 +422,7 @@ // only show message if we were looking for more than one in the first place if(isbnSearchList.count() > 1 && !isbnNotFound.isEmpty()) { qHeapSort(isbnNotFound); - infoList(i18n("No entries were found for the following ISBN values:"), isbnNotFound); + infoList(i18n("No results were found for the following ISBN values:"), isbnNotFound); } } stop(); From noreply at forge.novell.com Tue Jan 2 07:52:44 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1363 - in trunk: . src src/fetch Message-ID: <20070102145244.2FB031999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:34 -0700 (Tue, 02 Jan 2007) New Revision: 1363 Modified: trunk/ trunk/src/fetch/amazonfetcher.cpp trunk/src/fetch/amazonfetcher.h trunk/src/fetch/animenfofetcher.cpp trunk/src/fetch/entrezfetcher.cpp trunk/src/fetch/execexternalfetcher.cpp trunk/src/fetch/fetcher.h trunk/src/fetch/ibsfetcher.cpp trunk/src/fetch/imdbfetcher.cpp trunk/src/fetch/isbndbfetcher.cpp trunk/src/fetch/srufetcher.cpp trunk/src/fetch/yahoofetcher.cpp trunk/src/fetch/z3950fetcher.cpp trunk/src/fetch/z3950fetcher.h trunk/src/fetchdialog.cpp Log: r2576@homebase: robby | 2006-12-20 22:37:40 -0800 move ISBN not found dialog to fetch dialog class Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2575 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2576 Modified: trunk/src/fetch/amazonfetcher.cpp =================================================================== --- trunk/src/fetch/amazonfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/amazonfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -229,11 +229,6 @@ u.removeQueryItem(QString::fromLatin1("Operation")); u.addQueryItem(QString::fromLatin1("Operation"), QString::fromLatin1("ItemLookup")); // ISBN only get digits or 'X', and multiple values are connected with "; " - // keep a list of isbn value we're searching for - // but only set it when it's not set before - if(m_isbnList.isEmpty()) { - m_isbnList = QStringList::split(QString::fromLatin1("; "), m_value.remove('-')); - } // as a quick hack, amazon seems to support isbn13 if IdType==EAN // but only for US at the moment if(m_site == US && @@ -311,7 +306,6 @@ m_job->kill(); m_job = 0; } - m_isbnList.clear(); m_data.truncate(0); m_started = false; emit signalDone(this); @@ -508,7 +502,7 @@ entry->setField(QString::fromLatin1("comments"), comments); } */ - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, Data::EntryPtr(entry)); emit signalResultFound(r); } @@ -530,28 +524,6 @@ } else if(m_value.contains(';') > 9) { search(m_key, m_value.section(';', 10)); } else { - // tell the user if some of his isbn values were not found - if(m_key == Fetch::ISBN) { - const QString isbn = QString::fromLatin1("isbn"); - QStringList isbnNotFound; - for(QStringList::ConstIterator it = m_isbnList.begin(); it != m_isbnList.end(); ++it) { - bool found = false; - for(QMap::Iterator eIt = m_entries.begin(); eIt != m_entries.end(); ++eIt) { - if(*it == eIt.data().data()->field(isbn).remove('-') || - *it == ISBNValidator::isbn13(eIt.data().data()->field(isbn))) { - found = true; - break; - } - } - if(!found) { - isbnNotFound.append(*it); - } - } - if(!isbnNotFound.isEmpty()) { - isbnNotFound.sort(); - infoList(i18n("No results were found for the following ISBN values:"), isbnNotFound); - } - } m_countOffset = m_entries.count() % AMAZON_RETURNS_PER_REQUEST; if(m_countOffset == 0) { ++m_page; // need to go to next page Modified: trunk/src/fetch/amazonfetcher.h =================================================================== --- trunk/src/fetch/amazonfetcher.h 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/amazonfetcher.h 2007-01-02 14:52:34 UTC (rev 1363) @@ -121,7 +121,6 @@ int m_page; int m_total; QMap m_entries; // they get modified after collection is created, so can't be const - QStringList m_isbnList; QGuardedPtr m_job; FetchKey m_key; Modified: trunk/src/fetch/animenfofetcher.cpp =================================================================== --- trunk/src/fetch/animenfofetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/animenfofetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -146,7 +146,7 @@ for(int pos = infoRx.search(s); m_started && pos > -1; pos = infoRx.search(s, pos+1)) { if(n == 0 && !u.isEmpty()) { - SearchResult* r = new SearchResult(this, t, y); + SearchResult* r = new SearchResult(this, t, y, QString()); emit signalResultFound(r); #ifdef ANIMENFO_TEST @@ -186,7 +186,7 @@ // grab last response #ifndef ANIMENFO_TEST if(!u.isEmpty()) { - SearchResult* r = new SearchResult(this, t, y); + SearchResult* r = new SearchResult(this, t, y, QString()); emit signalResultFound(r); KURL url(QString::fromLatin1(ANIMENFO_BASE_URL), u); url.setQuery(QString::null); Modified: trunk/src/fetch/entrezfetcher.cpp =================================================================== --- trunk/src/fetch/entrezfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/entrezfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -297,7 +297,7 @@ break; // done now } } - SearchResult* r = new SearchResult(this, title, pubdate + '/' + authors); + SearchResult* r = new SearchResult(this, title, pubdate + '/' + authors, QString()); m_matches.insert(r->uid, id); emit signalResultFound(r); } Modified: trunk/src/fetch/execexternalfetcher.cpp =================================================================== --- trunk/src/fetch/execexternalfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/execexternalfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -303,7 +303,7 @@ default: break; } - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, entry); emit signalResultFound(r); } Modified: trunk/src/fetch/fetcher.h =================================================================== --- trunk/src/fetch/fetcher.h 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/fetcher.h 2007-01-02 14:52:34 UTC (rev 1363) @@ -128,12 +128,14 @@ class SearchResult { public: - SearchResult(Fetcher::Ptr f, QString t, QString d) : uid(KApplication::random()), fetcher(f), title(t), desc(d) {} + SearchResult(Fetcher::Ptr f, const QString& t, const QString& d, const QString& i) + : uid(KApplication::random()), fetcher(f), title(t), desc(d), isbn(i) {} Data::EntryPtr fetchEntry(); uint uid; Fetcher::Ptr fetcher; QString title; QString desc; + QString isbn; }; } // end namespace Modified: trunk/src/fetch/ibsfetcher.cpp =================================================================== --- trunk/src/fetch/ibsfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/ibsfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -167,7 +167,7 @@ int pos2; for(int pos = anchorRx.search(s); m_started && pos > -1; pos = anchorRx.search(s, pos+anchorRx.matchedLength())) { if(!u.isEmpty()) { - SearchResult* r = new SearchResult(this, t, d); + SearchResult* r = new SearchResult(this, t, d, QString()); emit signalResultFound(r); #ifdef IBS_TEST @@ -193,7 +193,7 @@ } #ifndef IBS_TEST if(!u.isEmpty()) { - SearchResult* r = new SearchResult(this, t, QString()); + SearchResult* r = new SearchResult(this, t, QString(), QString()); emit signalResultFound(r); m_matches.insert(r->uid, u.replace(QString::fromLatin1("&"), QChar('&'))); } @@ -222,7 +222,7 @@ if(entry) { QString desc = entry->field(QString::fromLatin1("author")) + '/' + entry->field(QString::fromLatin1("publisher")); - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); emit signalResultFound(r); m_matches.insert(r->uid, static_cast(job_)->url().url()); } Modified: trunk/src/fetch/imdbfetcher.cpp =================================================================== --- trunk/src/fetch/imdbfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/imdbfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -267,7 +267,8 @@ // FIXME: maybe remove parentheses here? SearchResult* r = new SearchResult(this, pPos == -1 ? cap1 : cap1.left(pPos), - pPos == -1 ? QString::null : cap1.mid(pPos)); + pPos == -1 ? QString::null : cap1.mid(pPos), + QString()); m_matches.insert(r->uid, m_url); emit signalResultFound(r); @@ -398,7 +399,7 @@ break; } - SearchResult* r = new SearchResult(this, pPos == -1 ? cap2 : cap2.left(pPos), desc); + SearchResult* r = new SearchResult(this, pPos == -1 ? cap2 : cap2.left(pPos), desc, QString()); KURL u(m_url, cap1); u.setQuery(QString::null); m_matches.insert(r->uid, u); @@ -479,7 +480,7 @@ } // FIXME: maybe remove parentheses here? - SearchResult* r = new SearchResult(this, pPos == -1 ? cap2 : cap2.left(pPos), desc); + SearchResult* r = new SearchResult(this, pPos == -1 ? cap2 : cap2.left(pPos), desc, QString()); KURL u(m_url, s_anchorTitleRx->cap(1)); // relative URL constructor u.setQuery(QString::null); m_matches.insert(r->uid, u); Modified: trunk/src/fetch/isbndbfetcher.cpp =================================================================== --- trunk/src/fetch/isbndbfetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/isbndbfetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -187,7 +187,7 @@ desc += QChar('/') + entry->field(QString::fromLatin1("pub_year")); } - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, Data::EntryPtr(entry)); emit signalResultFound(r); } Modified: trunk/src/fetch/srufetcher.cpp =================================================================== --- trunk/src/fetch/srufetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/srufetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -279,7 +279,7 @@ default: break; } - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, entry); emit signalResultFound(r); } Modified: trunk/src/fetch/yahoofetcher.cpp =================================================================== --- trunk/src/fetch/yahoofetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/yahoofetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -215,7 +215,7 @@ + QChar('/') + entry->field(QString::fromLatin1("year")); - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, Data::EntryPtr(entry)); emit signalResultFound(r); } Modified: trunk/src/fetch/z3950fetcher.cpp =================================================================== --- trunk/src/fetch/z3950fetcher.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/z3950fetcher.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -393,9 +393,6 @@ Data::EntryVec entries = coll->entries(); for(Data::EntryVec::Iterator entry = entries.begin(); entry != entries.end(); ++entry) { - if(m_key == Fetch::ISBN) { - m_isbnList.append(entry->field(QString::fromLatin1("isbn"))); - } QString desc = entry->field(QString::fromLatin1("author")) + '/' + entry->field(QString::fromLatin1("publisher")); if(!entry->field(QString::fromLatin1("cr_year")).isEmpty()) { @@ -403,28 +400,13 @@ } else if(!entry->field(QString::fromLatin1("pub_year")).isEmpty()){ desc += QChar('/') + entry->field(QString::fromLatin1("pub_year")); } - SearchResult* r = new SearchResult(this, entry->title(), desc); + SearchResult* r = new SearchResult(this, entry->title(), desc, entry->field(QString::fromLatin1("isbn"))); m_entries.insert(r->uid, entry); emit signalResultFound(r); } } void Z3950Fetcher::done() { - // tell the user if some of his isbn values were not found - if(m_key == Fetch::ISBN) { - const QStringList isbnSearchList = QStringList::split(QString::fromLatin1("; "), m_value); - QStringList isbnNotFound; - for(QStringList::ConstIterator it = isbnSearchList.begin(); it != isbnSearchList.end(); ++it) { - if(!m_isbnList.contains(*it)) { - isbnNotFound.append(*it); - } - } - // only show message if we were looking for more than one in the first place - if(isbnSearchList.count() > 1 && !isbnNotFound.isEmpty()) { - qHeapSort(isbnNotFound); - infoList(i18n("No results were found for the following ISBN values:"), isbnNotFound); - } - } stop(); } Modified: trunk/src/fetch/z3950fetcher.h =================================================================== --- trunk/src/fetch/z3950fetcher.h 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetch/z3950fetcher.h 2007-01-02 14:52:34 UTC (rev 1363) @@ -110,7 +110,6 @@ QString m_value; QMap m_entries; bool m_started; - QStringList m_isbnList; QString m_preset; XSLTHandler* m_MARC21XMLHandler; Modified: trunk/src/fetchdialog.cpp =================================================================== --- trunk/src/fetchdialog.cpp 2007-01-02 14:52:23 UTC (rev 1362) +++ trunk/src/fetchdialog.cpp 2007-01-02 14:52:34 UTC (rev 1363) @@ -26,6 +26,7 @@ #include "gui/combobox.h" #include "gui/listview.h" #include "tellico_utils.h" +#include "stringset.h" #include #include @@ -39,6 +40,7 @@ #include #include #include +#include #include #include @@ -318,7 +320,7 @@ } void FetchDialog::slotFetchDone() { -// kdDebug() << "FetchDialog::slotFetchDone()" << endl; +// myDebug() << "FetchDialog::slotFetchDone()" << endl; m_started = false; m_searchButton->setGuiItem(KGuiItem(i18n(FETCH_STRING_SEARCH), SmallIconSet(QString::fromLatin1("find")))); @@ -331,6 +333,21 @@ m_resultCount)); } m_moreButton->setEnabled(Fetch::Manager::self()->hasMoreResults()); + const Fetch::FetchKey key = static_cast(m_keyCombo->currentData().toInt()); + if(key == Fetch::ISBN || key == Fetch::UPC) { + QStringList values = QStringList::split(QString::fromLatin1("; "), + m_valueLineEdit->text().simplifyWhiteSpace()); + for(QListViewItemIterator it(m_listView); it.current(); ++it) { + const QString i = static_cast(it.current())->m_result->isbn; + values.remove(i); + values.remove(ISBNValidator::isbn13(i)); // check ISBN-13, too + } + if(!values.isEmpty()) { + KMessageBox::informationList(Kernel::self()->widget(), + i18n("No results were found for the following ISBN values:"), + values); + } + } } void FetchDialog::slotResultFound(Fetch::SearchResult* result_) { From noreply at forge.novell.com Tue Jan 2 07:52:51 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1364 - in trunk: . src Message-ID: <20070102145251.B11FE1999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:48 -0700 (Tue, 02 Jan 2007) New Revision: 1364 Modified: trunk/ trunk/src/fetchdialog.cpp Log: r2577@homebase: robby | 2006-12-21 07:34:43 -0800 only do isbn check for books Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2576 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2577 Modified: trunk/src/fetchdialog.cpp =================================================================== --- trunk/src/fetchdialog.cpp 2007-01-02 14:52:34 UTC (rev 1363) +++ trunk/src/fetchdialog.cpp 2007-01-02 14:52:48 UTC (rev 1364) @@ -334,12 +334,15 @@ } m_moreButton->setEnabled(Fetch::Manager::self()->hasMoreResults()); const Fetch::FetchKey key = static_cast(m_keyCombo->currentData().toInt()); - if(key == Fetch::ISBN || key == Fetch::UPC) { + // no way to currently check EAN/UPC values for non-book items + if(Kernel::self()->collectionType() == Data::Collection::Book && + (key == Fetch::ISBN || key == Fetch::UPC)) { QStringList values = QStringList::split(QString::fromLatin1("; "), m_valueLineEdit->text().simplifyWhiteSpace()); for(QListViewItemIterator it(m_listView); it.current(); ++it) { const QString i = static_cast(it.current())->m_result->isbn; values.remove(i); + values.remove(ISBNValidator::isbn10(i)); // EAN might be able to be converted values.remove(ISBNValidator::isbn13(i)); // check ISBN-13, too } if(!values.isEmpty()) { From noreply at forge.novell.com Tue Jan 2 07:52:57 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1365 - in trunk: . src Message-ID: <20070102145257.D460E1999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:52:55 -0700 (Tue, 02 Jan 2007) New Revision: 1365 Modified: trunk/ trunk/ChangeLog trunk/src/fetchdialog.cpp Log: r2578@homebase: robby | 2006-12-21 18:09:30 -0800 change isbn not found dialog to have selectable text Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2577 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2578 Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-01-02 14:52:48 UTC (rev 1364) +++ trunk/ChangeLog 2007-01-02 14:52:55 UTC (rev 1365) @@ -1,3 +1,7 @@ +2006-12-21 Robby Stephenson + + * Fixed "ISBN Not Found" dialog to have selectable text. + 2006-12-19 Robby Stephenson * Fixed bug with comparing relative URLs for merging file catalogs. Modified: trunk/src/fetchdialog.cpp =================================================================== --- trunk/src/fetchdialog.cpp 2007-01-02 14:52:48 UTC (rev 1364) +++ trunk/src/fetchdialog.cpp 2007-01-02 14:52:55 UTC (rev 1365) @@ -40,7 +40,6 @@ #include #include #include -#include #include #include @@ -341,14 +340,31 @@ m_valueLineEdit->text().simplifyWhiteSpace()); for(QListViewItemIterator it(m_listView); it.current(); ++it) { const QString i = static_cast(it.current())->m_result->isbn; - values.remove(i); + values.remove(i) || + values.remove(ISBNValidator::isbn13(i)) || // check ISBN-13, too values.remove(ISBNValidator::isbn10(i)); // EAN might be able to be converted - values.remove(ISBNValidator::isbn13(i)); // check ISBN-13, too } if(!values.isEmpty()) { - KMessageBox::informationList(Kernel::self()->widget(), - i18n("No results were found for the following ISBN values:"), - values); + // TODO dialog caption + KDialogBase* dlg = new KDialogBase(this, "isbn not found dialog", false, QString::null, KDialogBase::Ok); + QWidget* box = new QWidget(dlg); + QVBoxLayout* lay = new QVBoxLayout(box, KDialog::marginHint(), KDialog::spacingHint()*2); + QHBoxLayout* lay2 = new QHBoxLayout(lay); + QLabel* lab = new QLabel(box); + lab->setPixmap(KGlobal::iconLoader()->loadIcon(QString::fromLatin1("messagebox_info"), + KIcon::NoGroup, + KIcon::SizeMedium)); + lay2->addWidget(lab); + QString s = i18n("No results were found for the following ISBN values:"); + lay2->addWidget(new QLabel(s, box), 10); + KTextEdit* edit = new KTextEdit(box, "isbn list edit"); + lay->addWidget(edit); + edit->setText(values.join(QChar('\n'))); + QWhatsThis::add(edit, s); + connect(dlg, SIGNAL(okClicked()), dlg, SLOT(deleteLater())); + dlg->setMainWidget(box); + dlg->setMinimumWidth(KMAX(dlg->minimumWidth(), FETCH_MIN_WIDTH*2/3)); + dlg->show(); } } } From noreply at forge.novell.com Tue Jan 2 07:53:21 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1366 - in trunk: . src/gui src/model Message-ID: <20070102145321.4CA771999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:53:11 -0700 (Tue, 02 Jan 2007) New Revision: 1366 Added: trunk/src/model/titleinfo.h Modified: trunk/ trunk/src/gui/boolfieldwidget.cpp trunk/src/gui/linefieldwidget.cpp trunk/src/model/Makefile.am trunk/src/model/datatypes.h trunk/src/model/defaultfields.cpp trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h trunk/src/model/keximodel_tables.cpp Log: r2579@homebase: robby | 2006-12-22 19:47:19 -0800 checkpoint - add titleinfo Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2578 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2579 Modified: trunk/src/gui/boolfieldwidget.cpp =================================================================== --- trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:53:11 UTC (rev 1366) @@ -40,7 +40,6 @@ // the assumption is that a boolean value is always a short value and that // an endeavor only ever has one value for that field - QString valueString; switch(value) { case True: valueString = QString::fromLatin1("true"); break; Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:11 UTC (rev 1366) @@ -18,16 +18,19 @@ #include "../latin1literal.h" #include "../tellico_kernel.h" #include "../model/manager.h" -#include "../model/agentinfo.cpp" +#include "../model/agentinfo.h" +#include "../model/titleinfo.h" #include namespace { static Tellico::Data::UID addValue(const Tellico::Data::FID& fid_, const QString& value_) { - myDebug() << "addValue() - " << value_ << endl; Tellico::Data::UID uid; switch(fid_.domainType()) { - case Tellico::Data::Type::TitleID: uid = tcdb->addTitle(value_, Tellico::Data::Type::MainTitle); break; + case Tellico::Data::Type::TitleID: + // only main title for now + uid = tcdb->addTitle(Tellico::Data::TitleInfo::fromString(Tellico::Data::Type::MainTitle, value_)); + break; case Tellico::Data::Type::AgentID: uid = tcdb->addAgent(Tellico::Data::AgentInfo::fromString(fid_.domain().agent, value_)); break; Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/Makefile.am 2007-01-02 14:53:11 UTC (rev 1366) @@ -13,7 +13,7 @@ keximodel.h keximodel.cpp keximodel_tables.cpp \ agentinfo.h agentinfo.cpp collectioninfo.h collectionrule.h \ fieldinfo.h writer.h defaultfields.h defaultfields.cpp \ -manager.h manager.cpp +manager.h manager.cpp titleinfo.h INCLUDES = $(all_includes) Modified: trunk/src/model/datatypes.h =================================================================== --- trunk/src/model/datatypes.h 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/datatypes.h 2007-01-02 14:53:11 UTC (rev 1366) @@ -50,8 +50,8 @@ enum EndeavorType { NoEndeavor = None, - WorkEndeavor = 1 << 0, // not used yet - ExpressionEndeavor = 1 << 1, // not used yet + WorkEndeavor = 1 << 0, + ExpressionEndeavor = 1 << 1, ManifestationEndeavor = 1 << 2, ItemEndeavor = 1 << 3, AnyEndeavor = WorkEndeavor | ExpressionEndeavor | ManifestationEndeavor | ItemEndeavor @@ -66,9 +66,11 @@ }; enum TitleType { + NoTitle = None, MainTitle = 1 << 0, - SubTitle = 1 << 1, - AnyTitle = MainTitle | SubTitle + AltMainTitle = 1 << 1, // alternative main title + SubTitle = 1 << 2, + AnyTitle = MainTitle | SubTitle | AltMainTitle }; // same as in collection.h @@ -89,7 +91,7 @@ BoardGameClass = 13 }; -// same as in field.f +// same as in field.h enum FieldType { UnknownField = Unknown, LineField = 1, Modified: trunk/src/model/defaultfields.cpp =================================================================== --- trunk/src/model/defaultfields.cpp 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/defaultfields.cpp 2007-01-02 14:53:11 UTC (rev 1366) @@ -58,6 +58,7 @@ FID fid; int groupComp = Field::AllowCompletion | Field::AllowGrouped; + // TODO author might be corp body or family? addAgentField(QString::fromLatin1("author"), i18n("Author"), FieldScope::work, generalCat, FieldDomain::person); QStringList binding; @@ -77,6 +78,7 @@ model.setFieldInCollection(m_cid, fid, true); } + // TODO author might be person or family? addAgentField(QString::fromLatin1("publisher"), i18n("Publisher"), FieldScope::manifestation, generalCat, FieldDomain::corporateBody); // multiple printings are different items? Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:53:11 UTC (rev 1366) @@ -13,6 +13,7 @@ #include "keximodel.h" #include "agentinfo.h" +#include "titleinfo.h" #include "fieldinfo.h" #include "collectioninfo.h" #include "collectionrule.h" @@ -1522,14 +1523,14 @@ return list; } -Tellico::Data::UID KexiModel::addTitle(const QString& title, Type::TitleType type) { - RETURN_IF2(title.isEmpty(), UID()); +Tellico::Data::UID KexiModel::addTitle(const TitleInfo& info_) { + RETURN_IF2(info_.title.isEmpty(), UID()); const QString tname = TNAME(Type::TitleID); QueryBuilder qb(this); qb.addReturnField(tname, S("title_id")); - qb.addWhere(tname, S("value"), ESC(title)); - qb.addWhere(tname, S("type"), type); + qb.addWhere(tname, S("value"), ESC(info_.title)); + qb.addWhere(tname, S("type"), info_.type); KexiDB::RowData data = qb.data(); if(!data.isEmpty()) { return UID(Type::TitleID, data[0].toInt()); @@ -1541,7 +1542,7 @@ list.addField(table->field(S("value"))); list.addField(table->field(S("type"))); - if(!m_conn->insertRecord(list, title, type)) { + if(!m_conn->insertRecord(list, info_.title, info_.type)) { myDebug() << "KexiModel::addTitle() - insert record error" << endl; CONN_DEBUG; return UID(); Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/keximodel.h 2007-01-02 14:53:11 UTC (rev 1366) @@ -30,6 +30,7 @@ namespace Data { class AgentInfo; +class TitleInfo; class FieldInfo; class CollectionInfo; class CollectionRule; @@ -101,7 +102,7 @@ virtual UID::List agentNames(const UID& agent) const; virtual AID agentByName(const UID& name) const; - virtual UID addTitle(const QString& title, Type::TitleType type); + virtual UID addTitle(const TitleInfo& info); virtual UID addDate(const QString& date); virtual EID endeavorById(ID id) const; Modified: trunk/src/model/keximodel_tables.cpp =================================================================== --- trunk/src/model/keximodel_tables.cpp 2007-01-02 14:52:55 UTC (rev 1365) +++ trunk/src/model/keximodel_tables.cpp 2007-01-02 14:53:11 UTC (rev 1366) @@ -353,6 +353,8 @@ f->setCaption(QString::fromLatin1("Value")); titles->addField(f); + // TODO add lang? + // TODO add sort key? CREATE_OR_DELETE_RETURN(titles); KexiDB::TableSchema* titleLinks = new KexiDB::TableSchema(linkTable(Type::TitleID)); Added: trunk/src/model/titleinfo.h =================================================================== --- trunk/src/model/titleinfo.h (rev 0) +++ trunk/src/model/titleinfo.h 2007-01-02 14:53:11 UTC (rev 1366) @@ -0,0 +1,45 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef TELLICO_DATA_TITLEINFO_H +#define TELLICO_DATA_TITLEINFO_H + +#include "datatypes.h" + +#include + +namespace Tellico { + namespace Data { + +class TitleInfo { +public: + TitleInfo() : type(Type::NoTitle) {} + TitleInfo(const UID& u, Type::TitleType y, const QString& t) + : uid(u), type(y), title(t) {} + // default copy constructor is ok + bool isNull() const { return uid.isNull() || type==Unknown; } + + const UID uid; + const Type::TitleType type; + const QString title; + // const QString lang + + static TitleInfo fromString(Type::TitleType y, const QString& value) { + return TitleInfo(UID(Type::TitleID, Unknown), y, value); + } +}; + +} + +} +#endif From noreply at forge.novell.com Tue Jan 2 07:53:29 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1367 - in trunk: . src/gui src/model Message-ID: <20070102145329.D6E281999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:53:25 -0700 (Tue, 02 Jan 2007) New Revision: 1367 Modified: trunk/ trunk/src/gui/choicefieldwidget.cpp trunk/src/gui/choicefieldwidget.h trunk/src/gui/fieldwidget.cpp trunk/src/gui/linefieldwidget.cpp trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h Log: r2580@homebase: robby | 2006-12-22 20:51:37 -0800 checkpoint: choice field seems to work Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2579 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2580 Modified: trunk/src/gui/choicefieldwidget.cpp =================================================================== --- trunk/src/gui/choicefieldwidget.cpp 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/gui/choicefieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) @@ -12,28 +12,62 @@ ***************************************************************************/ #include "choicefieldwidget.h" +#include "combobox.h" #include "../field.h" +#include "../model/manager.h" +#include "../tellico_kernel.h" -#include - #include #include using Tellico::GUI::ChoiceFieldWidget; -ChoiceFieldWidget::ChoiceFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_), m_comboBox(0) { +ChoiceFieldWidget::ChoiceFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_), m_comboBox(0) { - m_comboBox = new KComboBox(this); + m_comboBox = new GUI::ComboBox(this); connect(m_comboBox, SIGNAL(activated(int)), SIGNAL(modified())); // always have empty choice - m_comboBox->insertItem(QString::null); - m_comboBox->insertStringList(field_->allowed()); + m_comboBox->insertItem(QString::null, Data::Unknown); + Data::UID::List values = tcdb->allowedFieldValues(fid_); + for(Data::UID::ListIt it = values.begin(); it != values.end(); ++it) { + m_comboBox->insertItem(tcdb->value(*it), (*it).id()); + } +// m_comboBox->insertStringList(field_->allowed()); m_comboBox->setMinimumWidth(5*fontMetrics().maxWidth()); registerWidget(); } +bool ChoiceFieldWidget::saveData(const Data::EID::List& list_) { + // someday this will be a tri-state widget + Data::UID uid(Data::Type::SubjectID, m_comboBox->currentData().toULongLong()); + // careful cause idType might be different, UnknownID vs. SubjectID + if(m_originalValue.id() == uid.id()) { + // no need to save anything + return false; + } + + Data::UID::List uids; + uids.push_back(uid); + // so if the original value was not empty, we need to remove it + // then set the current value + bool success = true; + if(m_originalValue.isNull()) { + success = Kernel::self()->setValue(list_, fid(), uids); + } else { + success = Kernel::self()->clearValue(list_, fid()); + if(!uid.isNull()) { + success = success && Kernel::self()->updateValue(list_, fid(), uids); + } + } + + if(success) { + m_originalValue = uid; + } + return success; +} + QString ChoiceFieldWidget::text() const { return m_comboBox->currentText(); } @@ -43,6 +77,7 @@ m_comboBox->blockSignals(true); m_comboBox->setCurrentItem(text_); + m_originalValue = text_.isEmpty() ? Data::UID() : tcdb->idByValue(Data::Type::SubjectID, text_); m_comboBox->blockSignals(false); blockSignals(false); @@ -54,12 +89,16 @@ } void ChoiceFieldWidget::updateFieldHook(Data::FieldPtr, Data::FieldPtr newField_) { - QString value = text(); + QVariant value = m_comboBox->currentData(); m_comboBox->clear(); // always have empty choice - m_comboBox->insertItem(QString::null); - m_comboBox->insertStringList(newField_->allowed()); - m_comboBox->setCurrentText(value); + m_comboBox->insertItem(QString::null, Data::Unknown); + // FIXME how does this work now? + Data::UID::List values = tcdb->allowedFieldValues(fid()); + for(Data::UID::ListIt it = values.begin(); it != values.end(); ++it) { + m_comboBox->insertItem(tcdb->value(*it), (*it).id()); + } + m_comboBox->setCurrentData(value); } QWidget* ChoiceFieldWidget::widget() { Modified: trunk/src/gui/choicefieldwidget.h =================================================================== --- trunk/src/gui/choicefieldwidget.h 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/gui/choicefieldwidget.h 2007-01-02 14:53:25 UTC (rev 1367) @@ -14,13 +14,13 @@ #ifndef CHOICEFIELDWIDGET_H #define CHOICEFIELDWIDGET_H -class KComboBox; - #include "fieldwidget.h" namespace Tellico { namespace GUI { +class ComboBox; + /** * @author Robby Stephenson */ @@ -28,9 +28,10 @@ Q_OBJECT public: - ChoiceFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + ChoiceFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~ChoiceFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -42,7 +43,8 @@ virtual void updateFieldHook(Data::FieldPtr oldField, Data::FieldPtr newField); private: - KComboBox* m_comboBox; + GUI::ComboBox* m_comboBox; + Data::UID m_originalValue; }; } // end GUI namespace Modified: trunk/src/gui/fieldwidget.cpp =================================================================== --- trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) @@ -61,7 +61,7 @@ return new GUI::NumberFieldWidget(field_, parent_, name_); case Data::Field::Choice: - return new GUI::ChoiceFieldWidget(field_, parent_, name_); + return new GUI::ChoiceFieldWidget(field_, fid_, parent_, name_); case Data::Field::Table: case Data::Field::Table2: Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) @@ -69,7 +69,6 @@ } } - bool LineFieldWidget::saveData(const Data::EID::List& list_) { QString value = text(); // empty and null strings are not equal @@ -103,10 +102,11 @@ } } success = Kernel::self()->setValue(list_, f, m_uids); - } else if(value.isEmpty()) { -// success = Kernel::self()->clearValue(list_, f); } else { -// success = Kernel::self()->updateValue(list_, f, value); + success = Kernel::self()->clearValue(list_, f); + if(!value.isEmpty()) { + success = success && Kernel::self()->setValue(list_, f, m_uids); + } } } Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:53:25 UTC (rev 1367) @@ -772,49 +772,51 @@ return fid; } -QStringList KexiModel::allowedFieldValues(const FID& fid) const { - if(fid.fieldType() != Type::ChoiceField) { - myDebug() << "KexiModel::allowedFieldValues() - must be choice! " << endl; - return QStringList(); // implies anything is allowed - } +Tellico::Data::UID::List KexiModel::allowedFieldValues(const FID& fid) const { + RETURN_IF3(fid.fieldType() != Type::ChoiceField, UID::List(), fid.id()); const QStringList ids = QStringList::split(',', fieldProperty(fid, S("allowed"))); - QStringList values; + UID::List list; for(QStringList::ConstIterator it = ids.begin(); it != ids.end(); ++it) { - values += value(UID(Type::SubjectID, id(*it))); + list += UID(Type::SubjectID, id(*it)); } - return values; + return list; } bool KexiModel::setAllowedFieldValues(const FID& fid, const QStringList& values) { - Q_ASSERT(!fid.isNull()); + RETURN_IF2(fid.isNull(), false); + RETURN_IF2(!fid.validDomain(Type::SubjectID), false); - QStringList allowed = allowedFieldValues(fid); - if(allowed == values) { - return true; // done - } - - UID::List list; + UID::List currentValues; // the "allowed" check is done when the value is inserted in the record // the field type should be checked against Field::Choice // first make sure all values are in database for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { - UID uid = hasFieldValue(fid, *it); + UID uid = hasSubject(*it); if(uid.isNull()) { - uid = addFieldValue(fid, *it, true); + uid = addSubject(*it); } if(!uid.isNull()) { - list += uid; + currentValues += uid; } - allowed.remove(*it); // the values left over in allowed } - // the allowed field values must be ShortValues and their id's are set in a field property + UID::List allowed = allowedFieldValues(fid); + if(allowed == currentValues) { + return true; // done + } + + // the allowed field values must be Subjects and their id's are set in a field property QStringList ids; - for(UID::ListIt it = list.begin(); it != list.end(); ++it) { - ids += QString::number((*it).id()); + for(UID::ListIt it = currentValues.begin(); it != currentValues.end(); ++it) { + if(!(*it).isNull() && (*it).idType() == Type::SubjectID) { + ids += QString::number((*it).id()); + } else if(!(*it).isNull() && (*it).idType() != Type::SubjectID) { + myDebug() << "KexiModel::setAllowedFieldValues() - id = " << (*it).id() + << "; bad uid type: " << (*it).idType() << endl; + } } return setFieldProperty(fid, S("allowed"), ids.join(S(","))); // now remove all values left || NO, leave them in! || @@ -825,11 +827,28 @@ // return true; } -QString KexiModel::fieldProperty(const FID& fid, const QString& name) const { - if(fid.isNull()) { - return QString(); +// we assume that all the values are valid +// and we don't care if they're the same as before, just overwrite property +bool KexiModel::setAllowedFieldValues(const FID& fid, const UID::List& values) { + Q_ASSERT(!fid.isNull()); + + // the allowed field values must be Subjects and their id's are set in a field property + QStringList ids; + for(UID::ListCIt it = values.begin(); it != values.end(); ++it) { + if(!(*it).isNull() && (*it).idType() == Type::SubjectID) { + ids += QString::number((*it).id()); + } else if(!(*it).isNull() && (*it).idType() != Type::SubjectID) { + myDebug() << "KexiModel::setAllowedFieldValues() - id = " << (*it).id() + << "; bad uid type: " << (*it).idType() << endl; + } } + return setFieldProperty(fid, S("allowed"), ids.join(S(","))); +} +QString KexiModel::fieldProperty(const FID& fid, const QString& name) const { + RETURN_IF2(fid.isNull(), QString()); + RETURN_IF2(name.isEmpty(), QString()); + const QString tname = TNAME("field_properties"); QueryBuilder qb(this); qb.addReturnField(tname, S("value")); @@ -1005,6 +1024,7 @@ return true; } + bool KexiModel::setFieldValue(const EID& eid, const FID& fid, const UID& value) { RETURN_IF2(eid.isNull(), false); RETURN_IF2(!isValueType(value.idType()), false); @@ -1346,24 +1366,13 @@ } return value(UID(Type::NameID, data[0].toInt())); case Type::ShortValueID: - qb.addReturnField(TNAME(Type::ShortValueID), S("value")); - qb.addWhere(TNAME(Type::ShortValueID), S("value_id"), uid.id()); - break; case Type::LongValueID: - qb.addReturnField(TNAME(Type::LongValueID), S("value")); - qb.addWhere(TNAME(Type::LongValueID), S("long_value_id"), uid.id()); - break; case Type::NameID: - qb.addReturnField(TNAME(Type::NameID), S("display_name")); - qb.addWhere(TNAME(Type::NameID), S("name_id"), uid.id()); - break; case Type::TitleID: - qb.addReturnField(TNAME(Type::TitleID), S("value")); - qb.addWhere(TNAME(Type::TitleID), S("title_id"), uid.id()); - break; case Type::DateID: - qb.addReturnField(TNAME(Type::DateID), S("value")); - qb.addWhere(TNAME(Type::DateID), S("date_id"), uid.id()); + case Type::SubjectID: + qb.addReturnField(TNAME(uid.idType()), valueColumn(uid.idType())); + qb.addWhere(TNAME(uid.idType()), idColumn(uid.idType()), uid.id()); break; default: Q_ASSERT(uid.idType() && false); @@ -1632,9 +1641,8 @@ /*********** PRIVATE *******************/ -Tellico::Data::UID KexiModel::hasFieldValue(const FID& fid, const QString& value) const { - // for now, assume that the field type is not used - RETURN_IF2(!fid.validDomain(Type::SubjectID), UID()); +Tellico::Data::UID KexiModel::hasSubject(const QString& value) const { + RETURN_IF2(value.isEmpty(), UID()); const QString tname = TNAME(Type::SubjectID); QueryBuilder qb(this); @@ -1649,27 +1657,15 @@ return data[0].toInt() > 0 ? UID(Type::SubjectID, data[0].toInt()) : UID(); } -Tellico::Data::UID KexiModel::addFieldValue(const FID& fid, const QString& value, bool force) { - // for now, assume that the field type is not used - RETURN_IF2(!fid.validDomain(Type::SubjectID), UID()); +Tellico::Data::UID KexiModel::addSubject(const QString& value) { + RETURN_IF2(value.isEmpty(), UID()); - if(!force && fid.fieldType() == Type::ChoiceField) { - // TODO - QStringList allowed = allowedFieldValues(fid); - if(allowed.findIndex(value) == -1) { - myDebug() << "KexiModel::addFieldValue() - not allowed: " << value << endl; - return UID(); - } - } - KexiDB::TableSchema* table = m_conn->tableSchema(TNAME(Type::SubjectID)); - Q_ASSERT(table); + RETURN_IF2(!table, UID()); KexiDB::FieldList list; -// list.addField(table->field(S("field_id"))); - list.addField(table->field(S("value"))); + list.addField(table->field(valueColumn(Type::SubjectID))); -// if(!m_conn->insertRecord(list, fid.id(), value)) { if(!m_conn->insertRecord(list, value)) { myDebug() << "KexiModel::addFieldValue() - insert record error" << endl; CONN_DEBUG; Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 14:53:11 UTC (rev 1366) +++ trunk/src/model/keximodel.h 2007-01-02 14:53:25 UTC (rev 1367) @@ -72,8 +72,9 @@ virtual bool setFieldInCollection(const CID& cid, const FID& fid, bool inCollection); virtual FID::List fieldsInCollection(const CID& cid) const; virtual FID fieldByName(const QString& name) const; - virtual QStringList allowedFieldValues(const FID& fid) const; + virtual UID::List allowedFieldValues(const FID& fid) const; virtual bool setAllowedFieldValues(const FID& fid, const QStringList& values); + virtual bool setAllowedFieldValues(const FID& fid, const UID::List& values); virtual QString fieldProperty(const FID& fid, const QString& name) const; virtual bool setFieldProperty(const FID& fid, const QString& name, const QString& value); @@ -127,8 +128,9 @@ bool createTables(); bool createRelationships(); - UID hasFieldValue(const FID& fid, const QString& value) const; - UID addFieldValue(const FID& fid, const QString& value, bool force=false); + UID hasSubject(const QString& value) const; + UID addSubject(const QString& value); + bool writeFieldValue(const EID& eid, const FID& fid, const UID& uid); UID addRule(const CollectionRule& rule); From noreply at forge.novell.com Tue Jan 2 07:53:41 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1368 - in trunk: . src/gui src/model Message-ID: <20070102145341.2D0F11999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:53:33 -0700 (Tue, 02 Jan 2007) New Revision: 1368 Added: trunk/src/model/textvaluewriter.cpp trunk/src/model/textvaluewriter.h Modified: trunk/ trunk/src/gui/boolfieldwidget.cpp trunk/src/gui/boolfieldwidget.h trunk/src/gui/fieldwidget.cpp trunk/src/gui/linefieldwidget.cpp trunk/src/gui/linefieldwidget.h trunk/src/gui/parafieldwidget.cpp trunk/src/gui/parafieldwidget.h trunk/src/gui/urlfieldwidget.cpp trunk/src/gui/urlfieldwidget.h trunk/src/model/Makefile.am Log: r2581@homebase: robby | 2006-12-22 21:21:39 -0800 checkpoint: add url field widget and text value writer Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2580 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2581 Modified: trunk/src/gui/boolfieldwidget.cpp =================================================================== --- trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/boolfieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -14,7 +14,6 @@ #include "boolfieldwidget.h" #include "../field.h" #include "../latin1literal.h" -#include "../tellico_kernel.h" #include #include @@ -32,36 +31,7 @@ bool BoolFieldWidget::saveData(const Data::EID::List& list_) { // someday this will be a tri-state widget - State value = m_checkBox->isChecked() ? True : NoValue; - if(m_originalValue == value) { - // no need to save anything - return false; - } - - // the assumption is that a boolean value is always a short value and that - // an endeavor only ever has one value for that field - QString valueString; - switch(value) { - case True: valueString = QString::fromLatin1("true"); break; - case False: valueString = QString::fromLatin1("false"); break; - default: break; - } - - // so if the original value was not empty, we need to remove it - // then set the current value - bool success = true; - if(m_originalValue == NoValue) { - success = Kernel::self()->setValue(list_, fid(), valueString); - } else if(value == NoValue) { - success = Kernel::self()->clearValue(list_, fid()); - } else { - success = Kernel::self()->updateValue(list_, fid(), valueString); - } - - if(success) { - m_originalValue = value; - } - return success; + return m_writer.writeValue(list_, fid(), text()); } QString BoolFieldWidget::text() const { @@ -79,7 +49,7 @@ // be lax, don't have to check for "1" or "true" // just check for a non-empty string m_checkBox->setChecked(!text_.isEmpty()); - m_originalValue = m_checkBox->isChecked() ? True : NoValue; + m_writer.setOriginalValue(text()); m_checkBox->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/boolfieldwidget.h =================================================================== --- trunk/src/gui/boolfieldwidget.h 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/boolfieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) @@ -17,6 +17,7 @@ class QCheckBox; #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -43,8 +44,7 @@ private: QCheckBox* m_checkBox; - enum State { NoValue, False, True }; - State m_originalValue; + Data::TextValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/fieldwidget.cpp =================================================================== --- trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -71,7 +71,7 @@ return new GUI::DateFieldWidget(field_, parent_, name_); case Data::Field::URL: - return new GUI::URLFieldWidget(field_, parent_, name_); + return new GUI::URLFieldWidget(field_, fid_, parent_, name_); case Data::Field::Image: return new GUI::ImageFieldWidget(field_, parent_, name_); Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -20,6 +20,7 @@ #include "../model/manager.h" #include "../model/agentinfo.h" #include "../model/titleinfo.h" +#include "../model/textvaluewriter.h" #include @@ -43,7 +44,7 @@ using Tellico::GUI::LineFieldWidget; LineFieldWidget::LineFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, fid_, parent_, name_), m_originalValue() { + : FieldWidget(field_, fid_, parent_, name_) { m_lineEdit = new KLineEdit(this); connect(m_lineEdit, SIGNAL(textChanged(const QString&)), SIGNAL(modified())); @@ -70,6 +71,12 @@ } bool LineFieldWidget::saveData(const Data::EID::List& list_) { + // if it's only a short value text, don't have to worry about a UID + const bool isTextValue = fid().validDomain(Data::Type::ShortValueID); + if(isTextValue) { + return m_writer.writeValue(list_, fid(), text()); + } + QString value = text(); // empty and null strings are not equal if(m_originalValue == value || (m_originalValue.isEmpty() && value.isEmpty())) { @@ -77,37 +84,23 @@ return false; } - Data::FID f = fid(); - // if it's only a short value text, don't have to worry about a UID - bool isTextValue = f.validDomain(Data::Type::ShortValueID); - bool success = true; - if(isTextValue) { - if(m_originalValue.isEmpty()) { - success = Kernel::self()->setValue(list_, f, value); - } else if(value.isEmpty()) { - success = Kernel::self()->clearValue(list_, f); - } else { - success = Kernel::self()->updateValue(list_, f, value); - } - } else { - if(m_originalValue.isEmpty()) { - if(m_uids.isEmpty()) { - const QStringList values = QStringList::split(s_semiColon, value); - for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { - Data::UID uid = addValue(f, *it); - if(!uid.isNull()) { - m_uids.push_back(uid); - } + if(m_originalValue.isEmpty()) { + if(m_uids.isEmpty()) { + const QStringList values = QStringList::split(s_semiColon, value); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = addValue(fid(), *it); + if(!uid.isNull()) { + m_uids.push_back(uid); } } - success = Kernel::self()->setValue(list_, f, m_uids); - } else { - success = Kernel::self()->clearValue(list_, f); - if(!value.isEmpty()) { - success = success && Kernel::self()->setValue(list_, f, m_uids); - } } + success = Kernel::self()->setValue(list_, fid(), m_uids); + } else { + success = Kernel::self()->clearValue(list_, fid()); + if(!value.isEmpty()) { + success = success && Kernel::self()->setValue(list_, fid(), m_uids); + } } if(success) { @@ -127,6 +120,7 @@ blockSignals(true); m_lineEdit->blockSignals(true); m_lineEdit->setText(text_); + m_writer.setOriginalValue(text_); m_originalValue = text_; // FIXME: use fid() somehow if(!text_.isEmpty() && fid().isSingleDomainType()) { Modified: trunk/src/gui/linefieldwidget.h =================================================================== --- trunk/src/gui/linefieldwidget.h 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/linefieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) @@ -17,6 +17,7 @@ class KLineEdit; #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -45,6 +46,7 @@ private: KLineEdit* m_lineEdit; + Data::TextValueWriter m_writer; QString m_originalValue; Data::UID::List m_uids; }; Modified: trunk/src/gui/parafieldwidget.cpp =================================================================== --- trunk/src/gui/parafieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/parafieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -13,7 +13,6 @@ #include "parafieldwidget.h" #include "../field.h" -#include "../tellico_kernel.h" #include @@ -30,30 +29,7 @@ } bool ParaFieldWidget::saveData(const Data::EID::List& list_) { - QString value = text(); - // empty and null strings are not equal - if(m_originalValue == value || (m_originalValue.isEmpty() && value.isEmpty())) { - // no need to save anything - return false; - } - - // the assumption is that a para value is always a long value and that - // an endeavor only ever has one value for that field - // so if the original value was not empty, we need to remove it - // then set the current value - bool success = true; - if(m_originalValue.isEmpty()) { - success = Kernel::self()->setValue(list_, fid(), value); - } else if(value.isEmpty()) { - success = Kernel::self()->clearValue(list_, fid()); - } else { - success = Kernel::self()->updateValue(list_, fid(), value); - } - - if(success) { - m_originalValue = value; - } - return success; + return m_writer.writeValue(list_, fid(), text()); } QString ParaFieldWidget::text() const { @@ -70,7 +46,7 @@ QString s = text_; s.replace(rx, QChar('\n')); m_textEdit->setText(s); - m_originalValue = s; + m_writer.setOriginalValue(s); m_textEdit->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/parafieldwidget.h =================================================================== --- trunk/src/gui/parafieldwidget.h 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/parafieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) @@ -17,6 +17,7 @@ class QTextEdit; #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -43,7 +44,7 @@ private: QTextEdit* m_textEdit; - QString m_originalValue; + Data::TextValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/urlfieldwidget.cpp =================================================================== --- trunk/src/gui/urlfieldwidget.cpp 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/urlfieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -32,8 +32,8 @@ return KURLCompletion::makeCompletion(text_); } -URLFieldWidget::URLFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_), m_run(0) { +URLFieldWidget::URLFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_), m_run(0) { m_requester = new KURLRequester(this); m_requester->lineEdit()->setCompletionObject(new URLCompletion()); @@ -53,6 +53,10 @@ } } +bool URLFieldWidget::saveData(const Data::EID::List& list_) { + return m_writer.writeValue(list_, fid(), text()); +} + QString URLFieldWidget::text() const { if(m_isRelative) { return KURL::relativeURL(Kernel::self()->URL(), m_requester->url()); @@ -70,6 +74,7 @@ m_requester->setURL(text_); m_requester->blockSignals(false); static_cast(label())->setURL(text_); + m_writer.setOriginalValue(text_); blockSignals(false); } Modified: trunk/src/gui/urlfieldwidget.h =================================================================== --- trunk/src/gui/urlfieldwidget.h 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/gui/urlfieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) @@ -17,6 +17,7 @@ class KURLRequester; #include "fieldwidget.h" +#include "../model/textvaluewriter.h" #include #include @@ -33,9 +34,10 @@ Q_OBJECT public: - URLFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + URLFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~URLFieldWidget(); + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -59,6 +61,7 @@ KURLRequester* m_requester; bool m_isRelative : 1; QGuardedPtr m_run; + Data::TextValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 14:53:25 UTC (rev 1367) +++ trunk/src/model/Makefile.am 2007-01-02 14:53:33 UTC (rev 1368) @@ -2,9 +2,8 @@ libmodel_a_METASOURCES = AUTO -libmodel_a_SOURCES = \ -datatypes.cpp keximodel.cpp keximodel_tables.cpp \ -defaultfields.cpp manager.cpp agentinfo.cpp +libmodel_a_SOURCES = datatypes.cpp keximodel.cpp keximodel_tables.cpp \ + defaultfields.cpp manager.cpp agentinfo.cpp textvaluewriter.cpp CLEANFILES = *~ @@ -19,3 +18,4 @@ KDE_OPTIONS = noautodist +noinst_HEADERS = textvaluewriter.h Added: trunk/src/model/textvaluewriter.cpp =================================================================== --- trunk/src/model/textvaluewriter.cpp (rev 0) +++ trunk/src/model/textvaluewriter.cpp 2007-01-02 14:53:33 UTC (rev 1368) @@ -0,0 +1,41 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "textvaluewriter.h" +#include "../tellico_kernel.h" + +using Tellico::Data::TextValueWriter; + +TextValueWriter::TextValueWriter() { +} + +bool TextValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { + // empty and null strings are not equal + if(m_originalValue == value_ || (m_originalValue.isEmpty() && value_.isEmpty())) { + // no need to save anything + return false; + } + + bool success = true; + if(m_originalValue.isEmpty()) { + success = Kernel::self()->setValue(list_, fid_, value_); + } else if(value_.isEmpty()) { + success = Kernel::self()->clearValue(list_, fid_); + } else { + success = Kernel::self()->updateValue(list_, fid_, value_); + } + if(success) { + m_originalValue = value_; + } + return success; +} Added: trunk/src/model/textvaluewriter.h =================================================================== --- trunk/src/model/textvaluewriter.h (rev 0) +++ trunk/src/model/textvaluewriter.h 2007-01-02 14:53:33 UTC (rev 1368) @@ -0,0 +1,35 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef TELLICO_DATA_TEXTVALUEWRITER_H +#define TELLICO_DATA_TEXTVALUEWRITER_H + +#include "datatypes.h" + +namespace Tellico { + namespace Data { + +class TextValueWriter { +public: + TextValueWriter(); + + void setOriginalValue(const QString& value) { m_originalValue = value; } + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + +private: + QString m_originalValue; +}; + + } +} +#endif From noreply at forge.novell.com Tue Jan 2 07:54:13 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1369 - in trunk: . src src/gui src/model Message-ID: <20070102145413.01E081999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:53:53 -0700 (Tue, 02 Jan 2007) New Revision: 1369 Added: trunk/src/model/dateinfo.cpp trunk/src/model/dateinfo.h Modified: trunk/ trunk/src/gui/choicefieldwidget.cpp trunk/src/gui/choicefieldwidget.h trunk/src/gui/fieldwidget.cpp trunk/src/gui/linefieldwidget.cpp trunk/src/gui/linefieldwidget.h trunk/src/gui/numberfieldwidget.cpp trunk/src/gui/numberfieldwidget.h trunk/src/gui/ratingfieldwidget.cpp trunk/src/gui/ratingfieldwidget.h trunk/src/model/Makefile.am trunk/src/model/agentinfo.h trunk/src/model/keximodel.cpp trunk/src/model/keximodel.h trunk/src/model/keximodel_tables.cpp trunk/src/model/textvaluewriter.cpp trunk/src/model/textvaluewriter.h trunk/src/model/titleinfo.h trunk/src/tellico_kernel.cpp trunk/src/tellico_kernel.h Log: r2582@homebase: robby | 2006-12-23 00:18:55 -0800 number fields work Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2581 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2582 Modified: trunk/src/gui/choicefieldwidget.cpp =================================================================== --- trunk/src/gui/choicefieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/choicefieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -33,39 +33,14 @@ for(Data::UID::ListIt it = values.begin(); it != values.end(); ++it) { m_comboBox->insertItem(tcdb->value(*it), (*it).id()); } -// m_comboBox->insertStringList(field_->allowed()); m_comboBox->setMinimumWidth(5*fontMetrics().maxWidth()); registerWidget(); } bool ChoiceFieldWidget::saveData(const Data::EID::List& list_) { - // someday this will be a tri-state widget Data::UID uid(Data::Type::SubjectID, m_comboBox->currentData().toULongLong()); - // careful cause idType might be different, UnknownID vs. SubjectID - if(m_originalValue.id() == uid.id()) { - // no need to save anything - return false; - } - - Data::UID::List uids; - uids.push_back(uid); - // so if the original value was not empty, we need to remove it - // then set the current value - bool success = true; - if(m_originalValue.isNull()) { - success = Kernel::self()->setValue(list_, fid(), uids); - } else { - success = Kernel::self()->clearValue(list_, fid()); - if(!uid.isNull()) { - success = success && Kernel::self()->updateValue(list_, fid(), uids); - } - } - - if(success) { - m_originalValue = uid; - } - return success; + return m_writer.writeValue(list_, fid(), uid); } QString ChoiceFieldWidget::text() const { @@ -77,7 +52,7 @@ m_comboBox->blockSignals(true); m_comboBox->setCurrentItem(text_); - m_originalValue = text_.isEmpty() ? Data::UID() : tcdb->idByValue(Data::Type::SubjectID, text_); + m_writer.setOriginalValue(text_.isEmpty() ? Data::UID() : tcdb->idByValue(Data::Type::SubjectID, text_)); m_comboBox->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/choicefieldwidget.h =================================================================== --- trunk/src/gui/choicefieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/choicefieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -15,6 +15,7 @@ #define CHOICEFIELDWIDGET_H #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -44,7 +45,7 @@ private: GUI::ComboBox* m_comboBox; - Data::UID m_originalValue; + Data::TextValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/fieldwidget.cpp =================================================================== --- trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/fieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -58,7 +58,7 @@ return new GUI::BoolFieldWidget(field_, fid_, parent_, name_); case Data::Field::Number: - return new GUI::NumberFieldWidget(field_, parent_, name_); + return new GUI::NumberFieldWidget(field_, fid_, parent_, name_); case Data::Field::Choice: return new GUI::ChoiceFieldWidget(field_, fid_, parent_, name_); @@ -77,7 +77,7 @@ return new GUI::ImageFieldWidget(field_, parent_, name_); case Data::Field::Rating: - return new GUI::RatingFieldWidget(field_, parent_, name_); + return new GUI::RatingFieldWidget(field_, fid_, parent_, name_); case Data::Field::ReadOnly: case Data::Field::Dependent: Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -20,6 +20,7 @@ #include "../model/manager.h" #include "../model/agentinfo.h" #include "../model/titleinfo.h" +#include "../model/dateinfo.h" #include "../model/textvaluewriter.h" #include @@ -35,6 +36,9 @@ case Tellico::Data::Type::AgentID: uid = tcdb->addAgent(Tellico::Data::AgentInfo::fromString(fid_.domain().agent, value_)); break; + case Tellico::Data::Type::DateID: + uid = tcdb->addDate(Tellico::Data::DateInfo::fromString(value_)); + break; default: break; } return uid; @@ -46,6 +50,9 @@ LineFieldWidget::LineFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) : FieldWidget(field_, fid_, parent_, name_) { + // if it's only a short value text, don't have to worry about a UID + m_isTextValue = fid_.validDomain(Data::Type::ShortValueID); + m_lineEdit = new KLineEdit(this); connect(m_lineEdit, SIGNAL(textChanged(const QString&)), SIGNAL(modified())); @@ -71,42 +78,19 @@ } bool LineFieldWidget::saveData(const Data::EID::List& list_) { - // if it's only a short value text, don't have to worry about a UID - const bool isTextValue = fid().validDomain(Data::Type::ShortValueID); - if(isTextValue) { + if(m_isTextValue) { return m_writer.writeValue(list_, fid(), text()); } - QString value = text(); - // empty and null strings are not equal - if(m_originalValue == value || (m_originalValue.isEmpty() && value.isEmpty())) { - // no need to save anything - return false; - } - - bool success = true; - if(m_originalValue.isEmpty()) { - if(m_uids.isEmpty()) { - const QStringList values = QStringList::split(s_semiColon, value); - for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { - Data::UID uid = addValue(fid(), *it); - if(!uid.isNull()) { - m_uids.push_back(uid); - } - } + Data::UID::List uids; + const QStringList values = QStringList::split(s_semiColon, text()); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = m_uidMap.contains(*it) ? m_uidMap[*it] : addValue(fid(), *it); + if(!uid.isNull()) { + uids.push_back(uid); } - success = Kernel::self()->setValue(list_, fid(), m_uids); - } else { - success = Kernel::self()->clearValue(list_, fid()); - if(!value.isEmpty()) { - success = success && Kernel::self()->setValue(list_, fid(), m_uids); - } } - - if(success) { - m_originalValue = value; - } - return success; + return m_writer.writeValue(list_, fid(), uids); } QString LineFieldWidget::text() const { @@ -121,17 +105,21 @@ m_lineEdit->blockSignals(true); m_lineEdit->setText(text_); m_writer.setOriginalValue(text_); - m_originalValue = text_; + Data::UID::List list; // FIXME: use fid() somehow - if(!text_.isEmpty() && fid().isSingleDomainType()) { + if(!m_isTextValue && !text_.isEmpty() && fid().isSingleDomainType()) { const QStringList values = QStringList::split(s_semiColon, text_); for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { Data::UID uid = tcdb->idByValue(fid().domainType(), *it); - if(!uid.isNull()) { - m_uids.push_back(uid); + if(uid.isNull()) { + myDebug() << "LineFieldWidget::setText() - no uid for " << *it << endl; + } else { + list.push_back(uid); + m_uidMap.insert(*it, uid); } } } + m_writer.setOriginalValue(list); m_lineEdit->blockSignals(false); blockSignals(false); } Modified: trunk/src/gui/linefieldwidget.h =================================================================== --- trunk/src/gui/linefieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/linefieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -47,8 +47,8 @@ private: KLineEdit* m_lineEdit; Data::TextValueWriter m_writer; - QString m_originalValue; - Data::UID::List m_uids; + bool m_isTextValue : 1; + QMap m_uidMap; }; } // end GUI namespace Modified: trunk/src/gui/numberfieldwidget.cpp =================================================================== --- trunk/src/gui/numberfieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/numberfieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -14,6 +14,8 @@ #include "numberfieldwidget.h" #include "datewidget.h" #include "../field.h" +#include "../model/manager.h" +#include "../model/dateinfo.h" #include @@ -22,9 +24,12 @@ using Tellico::GUI::NumberFieldWidget; -NumberFieldWidget::NumberFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_), m_lineEdit(0), m_spinBox(0) { +NumberFieldWidget::NumberFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_), m_lineEdit(0), m_spinBox(0) { + // if it's only a short value text, don't have to worry about a UID + m_isTextValue = fid_.validDomain(Data::Type::ShortValueID); + if(field_->flags() & Data::Field::AllowMultiple) { initLineEdit(); } else { @@ -56,6 +61,26 @@ m_spinBox->setSpecialValueText(QChar(' ')); } +bool NumberFieldWidget::saveData(const Data::EID::List& list_) { + if(m_isTextValue) { + if(isSpinBox()) { + return m_writer.writeValue(list_, fid(), text()); + } + return m_writer.writeValue(list_, fid(), Data::Field::split(text(), false)); + } + + // for now, assume a number field is always either a ShortValue or a Date + Data::UID::List uids; + const QStringList values = QStringList::split(s_semiColon, text()); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = m_uidMap.contains(*it) ? m_uidMap[*it] : tcdb->addDate(Data::DateInfo::fromString(*it)); + if(!uid.isNull()) { + uids.push_back(uid); + } + } + return m_writer.writeValue(list_, fid(), uids); +} + QString NumberFieldWidget::text() const { if(isSpinBox()) { // minValue = special empty text @@ -84,11 +109,32 @@ } m_spinBox->blockSignals(true); m_spinBox->setValue(n); + if(m_isTextValue) { + m_writer.setOriginalValue(text_); + } else { + m_writer.setOriginalValue(tcdb->idByValue(fid().domainType(), text_)); + } m_spinBox->blockSignals(false); } } else { m_lineEdit->blockSignals(true); m_lineEdit->setText(text_); + if(m_isTextValue) { + m_writer.setOriginalValue(Data::Field::split(text_, false)); + } else { + Data::UID::List list; + const QStringList values = QStringList::split(s_semiColon, text_); + for(QStringList::ConstIterator it = values.begin(); it != values.end(); ++it) { + Data::UID uid = tcdb->idByValue(fid().domainType(), *it); + if(uid.isNull()) { + myDebug() << "NumberFieldWidget::setText() - no uid for " << *it << endl; + } else { + list.push_back(uid); + m_uidMap.insert(*it, uid); + } + } + m_writer.setOriginalValue(list); + } m_lineEdit->blockSignals(false); } Modified: trunk/src/gui/numberfieldwidget.h =================================================================== --- trunk/src/gui/numberfieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/numberfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -17,6 +17,7 @@ class KLineEdit; #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -29,9 +30,10 @@ Q_OBJECT public: - NumberFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + NumberFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~NumberFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -49,6 +51,9 @@ KLineEdit* m_lineEdit; SpinBox* m_spinBox; + bool m_isTextValue : 1; + Data::TextValueWriter m_writer; + QMap m_uidMap; }; } // end GUI namespace Modified: trunk/src/gui/ratingfieldwidget.cpp =================================================================== --- trunk/src/gui/ratingfieldwidget.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/ratingfieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -17,14 +17,18 @@ using Tellico::GUI::RatingFieldWidget; -RatingFieldWidget::RatingFieldWidget(Data::FieldPtr field_, QWidget* parent_, const char* name_/*=0*/) - : FieldWidget(field_, parent_, name_) { +RatingFieldWidget::RatingFieldWidget(Data::FieldPtr field_, const Data::FID& fid_, QWidget* parent_, const char* name_/*=0*/) + : FieldWidget(field_, fid_, parent_, name_) { m_rating = new RatingWidget(field_, this); connect(m_rating, SIGNAL(modified()), SIGNAL(modified())); registerWidget(); } +bool RatingFieldWidget::saveData(const Data::EID::List& list_) { + return m_writer.writeValue(list_, fid(), text()); +} + QString RatingFieldWidget::text() const { return m_rating->text(); } @@ -34,6 +38,7 @@ m_rating->blockSignals(true); m_rating->setText(text_); + m_writer.setOriginalValue(text_); m_rating->blockSignals(false); blockSignals(false); Modified: trunk/src/gui/ratingfieldwidget.h =================================================================== --- trunk/src/gui/ratingfieldwidget.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/gui/ratingfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -15,6 +15,7 @@ #define RATINGFIELDWIDGET_H #include "fieldwidget.h" +#include "../model/textvaluewriter.h" namespace Tellico { namespace GUI { @@ -27,9 +28,10 @@ Q_OBJECT public: - RatingFieldWidget(Data::FieldPtr field, QWidget* parent, const char* name=0); + RatingFieldWidget(Data::FieldPtr field, const Data::FID& fid, QWidget* parent, const char* name=0); virtual ~RatingFieldWidget() {} + virtual bool saveData(const Data::EID::List& list); virtual QString text() const; virtual void setText(const QString& text); @@ -42,6 +44,7 @@ private: RatingWidget* m_rating; + Data::TextValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/Makefile.am 2007-01-02 14:53:53 UTC (rev 1369) @@ -3,7 +3,8 @@ libmodel_a_METASOURCES = AUTO libmodel_a_SOURCES = datatypes.cpp keximodel.cpp keximodel_tables.cpp \ - defaultfields.cpp manager.cpp agentinfo.cpp textvaluewriter.cpp + defaultfields.cpp manager.cpp agentinfo.cpp textvaluewriter.cpp \ + dateinfo.cpp CLEANFILES = *~ @@ -12,7 +13,7 @@ keximodel.h keximodel.cpp keximodel_tables.cpp \ agentinfo.h agentinfo.cpp collectioninfo.h collectionrule.h \ fieldinfo.h writer.h defaultfields.h defaultfields.cpp \ -manager.h manager.cpp titleinfo.h +manager.h manager.cpp titleinfo.h dateinfo.h dateinfo.cpp INCLUDES = $(all_includes) Modified: trunk/src/model/agentinfo.h =================================================================== --- trunk/src/model/agentinfo.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/agentinfo.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -25,10 +25,11 @@ public: AgentInfo() {} AgentInfo(const AID& a, const QString& g, const QString& f, const QString& s, const QString& d) - : aid(a), given(g), family(f), suffix(s), display(d) {} + : aid(a), given(g), family(f), suffix(s), display(d) {} // default copy constructor is ok bool isNull() const { return aid.isNull(); } UID nameId() const { return UID(Type::NameID, aid.nameId()); } + const AID aid; const QString given; const QString family; Added: trunk/src/model/dateinfo.cpp =================================================================== --- trunk/src/model/dateinfo.cpp (rev 0) +++ trunk/src/model/dateinfo.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -0,0 +1,38 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "dateinfo.h" +#include "../tellico_debug.h" + +#include + +using namespace Tellico::Data; + +DateInfo DateInfo::fromString(const QString& value_) { + QStringList s = QStringList::split('-', value_, true); + bool ok = true; + int y = s.count() > 0 ? s[0].toInt(&ok) : 0; + if(!ok) { + y = 0; + } + int m = s.count() > 1 ? s[1].toInt(&ok) : 0; + if(!ok) { + m = 0; + } + int d = s.count() > 2 ? s[2].toInt(&ok) : 0; + if(!ok) { + d = 0; + } + // for now AID() is null, but has a type + return DateInfo(UID(Type::DateID, Data::Unknown), y, m, d); +} Added: trunk/src/model/dateinfo.h =================================================================== --- trunk/src/model/dateinfo.h (rev 0) +++ trunk/src/model/dateinfo.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -0,0 +1,45 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef TELLICO_DATA_DATEINFO_H +#define TELLICO_DATA_DATEINFO_H + +#include "datatypes.h" + +//#include + +namespace Tellico { + namespace Data { + +class DateInfo { +public: + DateInfo() : year(0), month(0), day(0) {} + DateInfo(const UID& u, int y, int m, int d) + : uid(u), year(y), month(m), day(d) {} + // default copy constructor is ok + bool isNull() const { return uid.isNull(); } + bool isEmpty() const { return year == 0 && month == 0 && day == 0; } + + const UID uid; + const int year; + const int month; + const int day; +// const QString display; + + static DateInfo fromString(const QString& value); +}; + +} + +} +#endif Modified: trunk/src/model/keximodel.cpp =================================================================== --- trunk/src/model/keximodel.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/keximodel.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -14,6 +14,7 @@ #include "keximodel.h" #include "agentinfo.h" #include "titleinfo.h" +#include "dateinfo.h" #include "fieldinfo.h" #include "collectioninfo.h" #include "collectionrule.h" @@ -185,8 +186,8 @@ case Type::ShortValueID: return S("value"); case Type::LongValueID: return S("value"); case Type::TitleID: return S("value"); - case Type::DateID: return S("value"); case Type::NameID: return S("display_name"); + case Type::DateID: // date table doesn't really have a value default: Q_ASSERT(false); myDebug() << "valueColumn(): " << type << endl; break; } return QString(); @@ -910,7 +911,7 @@ return true; } -Tellico::Data::UID KexiModel::setFieldValue(const EID& eid, const FID& fid, const QString& value) { +Tellico::Data::UID KexiModel::addFieldValue(const EID& eid, const FID& fid, const QString& value) { RETURN_IF2(eid.isNull(), UID()); RETURN_IF2(fid.isNull(), UID()); RETURN_IF3(!fid.validScope(eid), UID(), eid.endeavorType()); @@ -993,6 +994,7 @@ } */ +/* bool KexiModel::updateFieldValue(const EID::List& eids, const FID& fid, const QString& value) { RETURN_IF2(eids.isEmpty(), false); RETURN_IF2(fid.isNull(), false); @@ -1023,9 +1025,9 @@ updateModified(eids); return true; } +*/ - -bool KexiModel::setFieldValue(const EID& eid, const FID& fid, const UID& value) { +bool KexiModel::addFieldValue(const EID& eid, const FID& fid, const UID& value) { RETURN_IF2(eid.isNull(), false); RETURN_IF2(!isValueType(value.idType()), false); RETURN_IF3(!fid.validScope(eid), false, eid.endeavorType()); @@ -1350,7 +1352,7 @@ } QString KexiModel::value(const UID& uid) const { - Q_ASSERT(!uid.isNull()); + RETURN_IF2(uid.isNull(), QString()); QueryBuilder qb(this); KexiDB::RowData data; @@ -1365,11 +1367,36 @@ return QString::null; } return value(UID(Type::NameID, data[0].toInt())); + case Type::DateID: + qb.addReturnField(TNAME(Type::DateID), S("year")); + qb.addReturnField(TNAME(Type::DateID), S("month")); + qb.addReturnField(TNAME(Type::DateID), S("day")); + qb.addWhere(TNAME(uid.idType()), idColumn(uid.idType()), uid.id()); + data = qb.data(); + if(data.isEmpty()) { + return QString::null; + } + { + int y = data[0].toInt(); + int m = data[0].toInt(); + int d = data[0].toInt(); + //TODO locale formatting, for now just ISO date + QStringList s; + if(y > 0) { + s << QString::number(y); + } + if(m > 0) { + s << QString::number(m); + } + if(d > 0) { + s << QString::number(d); + } + return s.join(QChar('-')); + } case Type::ShortValueID: case Type::LongValueID: case Type::NameID: case Type::TitleID: - case Type::DateID: case Type::SubjectID: qb.addReturnField(TNAME(uid.idType()), valueColumn(uid.idType())); qb.addWhere(TNAME(uid.idType()), idColumn(uid.idType()), uid.id()); @@ -1559,13 +1586,15 @@ return UID(Type::TitleID, m_conn->lastInsertedAutoIncValue(S("title_id"), *table)); } -Tellico::Data::UID KexiModel::addDate(const QString& date) { - RETURN_IF2(date.isEmpty(), UID()); +Tellico::Data::UID KexiModel::addDate(const DateInfo& info_) { + RETURN_IF2(info_.isEmpty(), UID()); const QString tname = TNAME(Type::DateID); QueryBuilder qb(this); qb.addReturnField(tname, S("date_id")); - qb.addWhere(tname, S("value"), ESC(date)); + qb.addWhere(tname, S("year"), info_.year); + qb.addWhere(tname, S("month"), info_.month); + qb.addWhere(tname, S("day"), info_.day); KexiDB::RowData data = qb.data(); if(!data.isEmpty()) { return UID(Type::DateID, data[0].toInt()); @@ -1574,9 +1603,11 @@ KexiDB::TableSchema* table = m_conn->tableSchema(tname); RETURN_IF2(!table, UID()); KexiDB::FieldList list; - list.addField(table->field(S("value"))); + list.addField(table->field(S("year"))); + list.addField(table->field(S("month"))); + list.addField(table->field(S("day"))); - if(!m_conn->insertRecord(list, date)) { + if(!m_conn->insertRecord(list, info_.year, info_.month, info_.day)) { myDebug() << "KexiModel::addDate() - insert record error" << endl; CONN_DEBUG; return UID(); @@ -1584,6 +1615,24 @@ return UID(Type::DateID, m_conn->lastInsertedAutoIncValue(S("date_id"), *table)); } +Tellico::Data::DateInfo KexiModel::dateInfo(const UID& uid) const { + RETURN_IF2(uid.idType() != Type::DateID, DateInfo()); + + const QString tname = TNAME(Type::DateID); + + QueryBuilder qb(this); + qb.addReturnField(tname, S("year")); + qb.addReturnField(tname, S("month")); + qb.addReturnField(tname, S("day")); + qb.addWhere(tname, idColumn(Type::DateID), uid.id()); + KexiDB::RowData data = qb.data(); + if(data.isEmpty()) { + return DateInfo(); + } + + return DateInfo(uid, data[0].toInt(), data[1].toInt(), data[2].toInt()); +} + Tellico::Data::EID KexiModel::endeavorById(ID id) const { const QString tname = TNAME(Type::EndeavorID); QueryBuilder qb(this); @@ -1625,18 +1674,28 @@ return UID(Type::ShortValueID, id); } -Tellico::Data::UID KexiModel::idByValue(Type::IDType type, const QString& value) const { - RETURN_IF2(value.isEmpty(), UID()); - const QString tname = TNAME(type); +Tellico::Data::UID KexiModel::idByValue(Type::IDType type_, const QString& value_) const { + RETURN_IF2(value_.isEmpty(), UID()); + const QString tname = TNAME(type_); QueryBuilder qb(this); - qb.addReturnField(tname, idColumn(type)); - qb.addWhere(tname, valueColumn(type), ESC(value)); + qb.addReturnField(tname, idColumn(type_)); + if(type_ == Type::DateID) { + const QStringList s = QStringList::split('-', value_, true); + int y = s.count() > 0 ? s[0].toInt() : 0; + int m = s.count() > 1 ? s[1].toInt() : 0; + int d = s.count() > 2 ? s[2].toInt() : 0; + qb.addWhere(tname, S("year"), y); + qb.addWhere(tname, S("month"), m); + qb.addWhere(tname, S("day"), d); + } else { + qb.addWhere(tname, valueColumn(type_), ESC(value_)); + } KexiDB::RowData data = qb.data(); if(data.isEmpty()) { return UID(); } - return data[0].toInt() > 0 ? UID(type, data[0].toInt()) : UID(); + return data[0].toInt() > 0 ? UID(type_, data[0].toInt()) : UID(); } /*********** PRIVATE *******************/ Modified: trunk/src/model/keximodel.h =================================================================== --- trunk/src/model/keximodel.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/keximodel.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -31,6 +31,7 @@ class AgentInfo; class TitleInfo; +class DateInfo; class FieldInfo; class CollectionInfo; class CollectionRule; @@ -78,10 +79,8 @@ virtual QString fieldProperty(const FID& fid, const QString& name) const; virtual bool setFieldProperty(const FID& fid, const QString& name, const QString& value); - virtual UID setFieldValue(const EID& eid, const FID& fid, const QString& value); - virtual bool updateFieldValue(const EID::List& eids, const FID& fid, const QString& value); - - virtual bool setFieldValue(const EID& eid, const FID& fid, const UID& value); + virtual UID addFieldValue(const EID& eid, const FID& fid, const QString& value); + virtual bool addFieldValue(const EID& eid, const FID& fid, const UID& value); virtual UID::List fieldValues(const EID& eid, const FID& fid) const; virtual QString value(const UID& uid) const; virtual bool removeFieldValues(const EID::List& list, const FID& fid); @@ -104,7 +103,8 @@ virtual AID agentByName(const UID& name) const; virtual UID addTitle(const TitleInfo& info); - virtual UID addDate(const QString& date); + virtual UID addDate(const DateInfo& info); + virtual DateInfo dateInfo(const UID& uid) const; virtual EID endeavorById(ID id) const; virtual AID agentById(ID id) const; Modified: trunk/src/model/keximodel_tables.cpp =================================================================== --- trunk/src/model/keximodel_tables.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/keximodel_tables.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -394,13 +394,21 @@ f->setCaption(QString::fromLatin1("Date ID")); dates->addField(f); - // TODO: for now, stored as text, need to change to date type - // or break year, month, day into separate fields - f = new KexiDB::Field(QString::fromLatin1("value"), KexiDB::Field::Text, + f = new KexiDB::Field(QString::fromLatin1("year"), KexiDB::Field::Integer, KexiDB::Field::NotEmpty); - f->setCaption(QString::fromLatin1("Value")); + f->setCaption(QString::fromLatin1("Year")); dates->addField(f); + f = new KexiDB::Field(QString::fromLatin1("month"), KexiDB::Field::Integer, + KexiDB::Field::NotEmpty); + f->setCaption(QString::fromLatin1("Month")); + dates->addField(f); + + f = new KexiDB::Field(QString::fromLatin1("day"), KexiDB::Field::Integer, + KexiDB::Field::NotEmpty); + f->setCaption(QString::fromLatin1("Day")); + dates->addField(f); + CREATE_OR_DELETE_RETURN(dates); KexiDB::TableSchema* dateLinks = new KexiDB::TableSchema(linkTable(Type::DateID)); Modified: trunk/src/model/textvaluewriter.cpp =================================================================== --- trunk/src/model/textvaluewriter.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/textvaluewriter.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -19,23 +19,84 @@ TextValueWriter::TextValueWriter() { } +void TextValueWriter::setOriginalValue(const QString& value_) { + m_originalValues.clear(); + // empty and null strings are not equal + m_originalValues << (value_.isEmpty() ? QString() : value_); +} + +void TextValueWriter::setOriginalValue(const QStringList& values_) { + m_originalValues.clear(); + for(QStringList::ConstIterator it = values_.begin(); it != values_.end(); ++it) { + // empty and null strings are not equal + m_originalValues << ((*it).isEmpty() ? QString() : *it); + } +} + +void TextValueWriter::setOriginalValue(const Data::UID& value_) { + m_uids.clear(); + if(!value_.isNull()) { + m_uids.push_back(value_); + } +} + +void TextValueWriter::setOriginalValue(const Data::UID::List& values_) { + m_uids.clear(); + for(Data::UID::ListCIt it = values_.begin(); it != values_.end(); ++it) { + if(!(*it).isNull()) { + m_uids.push_back(*it); + } + } +} + bool TextValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { - // empty and null strings are not equal - if(m_originalValue == value_ || (m_originalValue.isEmpty() && value_.isEmpty())) { + QStringList values; + values << value_; + return writeValue(list_, fid_, values); +} + +bool TextValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const QStringList& values_) { + if(m_originalValues == values_) { // no need to save anything return false; } bool success = true; - if(m_originalValue.isEmpty()) { - success = Kernel::self()->setValue(list_, fid_, value_); - } else if(value_.isEmpty()) { - success = Kernel::self()->clearValue(list_, fid_); - } else { - success = Kernel::self()->updateValue(list_, fid_, value_); + if(!m_originalValues.isEmpty()) { + success = Kernel::self()->clearValues(list_, fid_); } + if(!values_.isEmpty()) { + success = success && Kernel::self()->addValues(list_, fid_, values_); + } + if(success) { - m_originalValue = value_; + m_originalValues = values_; } return success; } + +bool TextValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID& value_) { + UID::List values; + values << value_; + return writeValue(list_, fid_, values); +} + +bool TextValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID::List& values_) { + if(m_uids == values_) { + // no need to save anything + return false; + } + + bool success = true; + if(!m_originalValues.isEmpty()) { + success = Kernel::self()->clearValues(list_, fid_); + } + if(!values_.isEmpty()) { + success = success && Kernel::self()->addValues(list_, fid_, values_); + } + + if(success) { + m_uids = values_; + } + return success; +} Modified: trunk/src/model/textvaluewriter.h =================================================================== --- trunk/src/model/textvaluewriter.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/textvaluewriter.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -16,6 +16,8 @@ #include "datatypes.h" +#include + namespace Tellico { namespace Data { @@ -23,11 +25,21 @@ public: TextValueWriter(); - void setOriginalValue(const QString& value) { m_originalValue = value; } + void setOriginalValue(const QString& value); + void setOriginalValue(const QStringList& values); + + void setOriginalValue(const Data::UID& value); + void setOriginalValue(const Data::UID::List& values); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const QStringList& values); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID& value); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); + private: - QString m_originalValue; + QStringList m_originalValues; + Data::UID::List m_uids; }; } Modified: trunk/src/model/titleinfo.h =================================================================== --- trunk/src/model/titleinfo.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/model/titleinfo.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -25,7 +25,7 @@ public: TitleInfo() : type(Type::NoTitle) {} TitleInfo(const UID& u, Type::TitleType y, const QString& t) - : uid(u), type(y), title(t) {} + : uid(u), type(y), title(t) {} // default copy constructor is ok bool isNull() const { return uid.isNull() || type==Unknown; } Modified: trunk/src/tellico_kernel.cpp =================================================================== --- trunk/src/tellico_kernel.cpp 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/tellico_kernel.cpp 2007-01-02 14:53:53 UTC (rev 1369) @@ -369,55 +369,40 @@ return qMakePair(modified, created); } -bool Kernel::clearValue(const Data::EID::List& list_, const Data::FID& fid_) { +bool Kernel::clearValues(const Data::EID::List& list_, const Data::FID& fid_) { return tcdb->removeFieldValues(list_, fid_); } -bool Kernel::setValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { +bool Kernel::addValues(const Data::EID::List& list_, const Data::FID& fid_, const QStringList& values_) { for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { // just skip bad scopes for now if(!fid_.validScope(*it)) { // myDebug() << "Kernel::setValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; continue; } - Data::UID uid = tcdb->setFieldValue(*it, fid_, value_); - if(uid.isNull()) { - return false; + // TODO use a prepared statement or something to speed this up + for(QStringList::ConstIterator it2 = values_.begin(); it2 != values_.end(); ++it2) { + Data::UID uid = tcdb->addFieldValue(*it, fid_, *it2); + if(uid.isNull()) { + return false; + } } } return true; } -bool Kernel::updateValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { - // EntryEditDialog might pass EID with wrong scope - Data::EID::List newList; +bool Kernel::addValues(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID::List& values_) { for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { // just skip bad scopes for now if(!fid_.validScope(*it)) { -// myDebug() << "Kernel::updateValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; - continue; - } - newList.push_back(*it); - } - return tcdb->updateFieldValue(newList, fid_, value_); -} - -bool Kernel::setValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID::List& values_) { - for(Data::EID::List::const_iterator it = list_.begin(); it != list_.end(); ++it) { - // just skip bad scopes for now - if(!fid_.validScope(*it)) { // myDebug() << "Kernel::setValue() - skipping eid: " << (*it).id() << " (invalid scope)" << endl; continue; } for(Data::UID::List::const_iterator it2 = values_.begin(); it2 != values_.end(); ++it2) { - if(!tcdb->setFieldValue(*it, fid_, *it2)) { + if(!tcdb->addFieldValue(*it, fid_, *it2)) { return false; } } } return true; } - -bool Kernel::updateValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values_) { - return false; -} Modified: trunk/src/tellico_kernel.h =================================================================== --- trunk/src/tellico_kernel.h 2007-01-02 14:53:33 UTC (rev 1368) +++ trunk/src/tellico_kernel.h 2007-01-02 14:53:53 UTC (rev 1369) @@ -101,14 +101,11 @@ void updateEntry(Data::EntryPtr oldEntry, Data::EntryPtr newEntry, bool overWrite); void removeEntries(Data::EntryVec entries); - bool clearValue(const Data::EID::List& list, const Data::FID& fid); - // these two functions are for ShortValue and LongValue only, no link tables - bool setValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); - bool updateValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool clearValues(const Data::EID::List& list, const Data::FID& fid); + bool addValues(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); + // this functions is for ShortValue and LongValue only, no link tables + bool addValues(const Data::EID::List& list, const Data::FID& fid, const QStringList& values); - bool setValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); - bool updateValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); - bool addLoans(Data::EntryVec entries); bool modifyLoan(Data::LoanPtr loan); bool removeLoans(Data::LoanVec loans); From noreply at forge.novell.com Tue Jan 2 07:54:36 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1370 - in trunk: . src/gui src/model Message-ID: <20070102145436.887941999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:54:23 -0700 (Tue, 02 Jan 2007) New Revision: 1370 Added: trunk/src/model/valuewriter.cpp trunk/src/model/valuewriter.h Removed: trunk/src/model/textvaluewriter.cpp trunk/src/model/textvaluewriter.h Modified: trunk/ trunk/src/gui/boolfieldwidget.h trunk/src/gui/choicefieldwidget.h trunk/src/gui/linefieldwidget.cpp trunk/src/gui/linefieldwidget.h trunk/src/gui/numberfieldwidget.h trunk/src/gui/parafieldwidget.h trunk/src/gui/ratingfieldwidget.h trunk/src/gui/urlfieldwidget.h trunk/src/model/Makefile.am Log: r2583@homebase: robby | 2006-12-23 14:09:01 -0800 change class name Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2582 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2583 Modified: trunk/src/gui/boolfieldwidget.h =================================================================== --- trunk/src/gui/boolfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/boolfieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -17,7 +17,7 @@ class QCheckBox; #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -44,7 +44,7 @@ private: QCheckBox* m_checkBox; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/choicefieldwidget.h =================================================================== --- trunk/src/gui/choicefieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/choicefieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -15,7 +15,7 @@ #define CHOICEFIELDWIDGET_H #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -45,7 +45,7 @@ private: GUI::ComboBox* m_comboBox; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/linefieldwidget.cpp =================================================================== --- trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/linefieldwidget.cpp 2007-01-02 14:54:23 UTC (rev 1370) @@ -21,7 +21,7 @@ #include "../model/agentinfo.h" #include "../model/titleinfo.h" #include "../model/dateinfo.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" #include Modified: trunk/src/gui/linefieldwidget.h =================================================================== --- trunk/src/gui/linefieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/linefieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -17,7 +17,7 @@ class KLineEdit; #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -46,7 +46,7 @@ private: KLineEdit* m_lineEdit; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; bool m_isTextValue : 1; QMap m_uidMap; }; Modified: trunk/src/gui/numberfieldwidget.h =================================================================== --- trunk/src/gui/numberfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/numberfieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -17,7 +17,7 @@ class KLineEdit; #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -52,7 +52,7 @@ KLineEdit* m_lineEdit; SpinBox* m_spinBox; bool m_isTextValue : 1; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; QMap m_uidMap; }; Modified: trunk/src/gui/parafieldwidget.h =================================================================== --- trunk/src/gui/parafieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/parafieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -17,7 +17,7 @@ class QTextEdit; #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -44,7 +44,7 @@ private: QTextEdit* m_textEdit; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/ratingfieldwidget.h =================================================================== --- trunk/src/gui/ratingfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/ratingfieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -15,7 +15,7 @@ #define RATINGFIELDWIDGET_H #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" namespace Tellico { namespace GUI { @@ -44,7 +44,7 @@ private: RatingWidget* m_rating; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/gui/urlfieldwidget.h =================================================================== --- trunk/src/gui/urlfieldwidget.h 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/gui/urlfieldwidget.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -17,7 +17,7 @@ class KURLRequester; #include "fieldwidget.h" -#include "../model/textvaluewriter.h" +#include "../model/valuewriter.h" #include #include @@ -61,7 +61,7 @@ KURLRequester* m_requester; bool m_isRelative : 1; QGuardedPtr m_run; - Data::TextValueWriter m_writer; + Data::ValueWriter m_writer; }; } // end GUI namespace Modified: trunk/src/model/Makefile.am =================================================================== --- trunk/src/model/Makefile.am 2007-01-02 14:53:53 UTC (rev 1369) +++ trunk/src/model/Makefile.am 2007-01-02 14:54:23 UTC (rev 1370) @@ -3,7 +3,7 @@ libmodel_a_METASOURCES = AUTO libmodel_a_SOURCES = datatypes.cpp keximodel.cpp keximodel_tables.cpp \ - defaultfields.cpp manager.cpp agentinfo.cpp textvaluewriter.cpp \ + defaultfields.cpp manager.cpp agentinfo.cpp valuewriter.cpp \ dateinfo.cpp CLEANFILES = *~ @@ -19,4 +19,4 @@ KDE_OPTIONS = noautodist -noinst_HEADERS = textvaluewriter.h +noinst_HEADERS = valuewriter.h Deleted: trunk/src/model/textvaluewriter.cpp Deleted: trunk/src/model/textvaluewriter.h Added: trunk/src/model/valuewriter.cpp =================================================================== --- trunk/src/model/valuewriter.cpp (rev 0) +++ trunk/src/model/valuewriter.cpp 2007-01-02 14:54:23 UTC (rev 1370) @@ -0,0 +1,102 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "valuewriter.h" +#include "../tellico_kernel.h" + +using Tellico::Data::ValueWriter; + +ValueWriter::ValueWriter() { +} + +void ValueWriter::setOriginalValue(const QString& value_) { + m_originalValues.clear(); + // empty and null strings are not equal + m_originalValues << (value_.isEmpty() ? QString() : value_); +} + +void ValueWriter::setOriginalValue(const QStringList& values_) { + m_originalValues.clear(); + for(QStringList::ConstIterator it = values_.begin(); it != values_.end(); ++it) { + // empty and null strings are not equal + m_originalValues << ((*it).isEmpty() ? QString() : *it); + } +} + +void ValueWriter::setOriginalValue(const Data::UID& value_) { + m_uids.clear(); + if(!value_.isNull()) { + m_uids.push_back(value_); + } +} + +void ValueWriter::setOriginalValue(const Data::UID::List& values_) { + m_uids.clear(); + for(Data::UID::ListCIt it = values_.begin(); it != values_.end(); ++it) { + if(!(*it).isNull()) { + m_uids.push_back(*it); + } + } +} + +bool ValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const QString& value_) { + QStringList values; + values << value_; + return writeValue(list_, fid_, values); +} + +bool ValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const QStringList& values_) { + if(m_originalValues == values_) { + // no need to save anything + return false; + } + + bool success = true; + if(!m_originalValues.isEmpty()) { + success = Kernel::self()->clearValues(list_, fid_); + } + if(!values_.isEmpty()) { + success = success && Kernel::self()->addValues(list_, fid_, values_); + } + + if(success) { + m_originalValues = values_; + } + return success; +} + +bool ValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID& value_) { + UID::List values; + values << value_; + return writeValue(list_, fid_, values); +} + +bool ValueWriter::writeValue(const Data::EID::List& list_, const Data::FID& fid_, const Data::UID::List& values_) { + if(m_uids == values_) { + // no need to save anything + return false; + } + + bool success = true; + if(!m_originalValues.isEmpty()) { + success = Kernel::self()->clearValues(list_, fid_); + } + if(!values_.isEmpty()) { + success = success && Kernel::self()->addValues(list_, fid_, values_); + } + + if(success) { + m_uids = values_; + } + return success; +} Added: trunk/src/model/valuewriter.h =================================================================== --- trunk/src/model/valuewriter.h (rev 0) +++ trunk/src/model/valuewriter.h 2007-01-02 14:54:23 UTC (rev 1370) @@ -0,0 +1,47 @@ +/*************************************************************************** + copyright : (C) 2006 by Robby Stephenson + email : robby@periapsis.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef TELLICO_DATA_VALUEWRITER_H +#define TELLICO_DATA_VALUEWRITER_H + +#include "datatypes.h" + +#include + +namespace Tellico { + namespace Data { + +class ValueWriter { +public: + ValueWriter(); + + void setOriginalValue(const QString& value); + void setOriginalValue(const QStringList& values); + + void setOriginalValue(const Data::UID& value); + void setOriginalValue(const Data::UID::List& values); + + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const QString& value); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const QStringList& values); + + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID& value); + bool writeValue(const Data::EID::List& list, const Data::FID& fid, const Data::UID::List& values); + +private: + QStringList m_originalValues; + Data::UID::List m_uids; +}; + + } +} +#endif From noreply at forge.novell.com Tue Jan 2 07:54:48 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:09 2007 Subject: [Tellico-commits] r1371 - in trunk: . src/gui Message-ID: <20070102145448.1B6641999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:54:43 -0700 (Tue, 02 Jan 2007) New Revision: 1371 Modified: trunk/ trunk/src/gui/imagewidget.cpp Log: r2584@homebase: robby | 2006-12-23 14:12:51 -0800 show watch when downloading image Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2583 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2584 Modified: trunk/src/gui/imagewidget.cpp =================================================================== --- trunk/src/gui/imagewidget.cpp 2007-01-02 14:54:23 UTC (rev 1370) +++ trunk/src/gui/imagewidget.cpp 2007-01-02 14:54:43 UTC (rev 1371) @@ -16,6 +16,7 @@ #include "../image.h" #include "../filehandler.h" #include "../tellico_debug.h" +#include "../tellico_utils.h" #include #include @@ -125,6 +126,7 @@ return; } + GUI::CursorSaver cs; const QString& id = ImageFactory::addImage(url); if(id != m_imageID) { setImage(id); From noreply at forge.novell.com Tue Jan 2 07:55:00 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:11 2007 Subject: [Tellico-commits] r1372 - in trunk: . po Message-ID: <20070102145500.11AA61999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:54:54 -0700 (Tue, 02 Jan 2007) New Revision: 1372 Modified: trunk/ trunk/po/pt_BR.po Log: r2585@homebase: robby | 2007-01-02 06:46:08 -0800 pt_BR update Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2584 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2585 Modified: trunk/po/pt_BR.po =================================================================== --- trunk/po/pt_BR.po 2007-01-02 14:54:43 UTC (rev 1371) +++ trunk/po/pt_BR.po 2007-01-02 14:54:54 UTC (rev 1372) @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: pt_BR\n" -"POT-Creation-Date: 2006-11-05 10:14-0800\n" -"PO-Revision-Date: 2006-09-06 01:38-0300\n" +"POT-Creation-Date: 2006-11-05 15:37-0800\n" +"PO-Revision-Date: 2006-12-25 01:47-0200\n" "Last-Translator: Claudio Henrique Fortes Felix \n" "Language-Team: Brazillian Portuguese\n" "MIME-Version: 1.0\n" @@ -15,365 +15,2299 @@ "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: tips.cpp:3 +#: cite/lyxpipe.cpp:47 +msgid "Tellico is unable to write to the server pipe at %1." +msgstr "" +"Tellico n?o conseguiu escrever para o 'pipe' do servidor em " +"%1." + +#: cite/openoffice.cpp:80 +msgid "Connecting to OpenOffice.org..." +msgstr "Conectando ao OpenOffice.org..." + +#: cite/openoffice.cpp:163 cite/openoffice.cpp:183 +msgid "OpenOffice.org Connection" +msgstr "Conex?o ao OpenOffice.org" + +#: cite/openoffice.cpp:177 msgid "" -"

...that if a book has more than one author, you should separate\n" -"their names by a semi-colon, so that Tellico will know to split them\n" -"and use them separately.

\n" -"

Any other field which allows multiple values should be entered the\n" -"same way. with a semi-colon (;) separating each value.

\n" +"Tellico was unable to connect to OpenOffice.org. Please verify the " +"connection settings below, and that OpenOffice.org Writer is currently " +"running." msgstr "" -"

... que se um livro tiver v?rios autores, voc? deve separar\n" -" os nomes deles com ponto e v?rgula, informando ao Tellico como\n" -"separ?-los e utiliz?-los independentemente.

\n" -"

Qualquer outro campo que permita m?ltiplos valores dever? ter a\n" -"mesma estrutura, com um ponto e v?rgula (;) separando cada valor.

\n" +"Tellico n?o conseguiu se conectar ao OpenOffice.org. Por favor verifique as " +"op??es de conex?o abaixo e verifique se o OpenOffice.org Writer est? " +"rodando." -#: tips.cpp:11 +#: cite/openoffice.cpp:188 +msgid "Pipe" +msgstr "Pipe" + +#: cite/openoffice.cpp:190 +msgid "TCP/IP" +msgstr "TCP/IP" + +#: gui/tablefieldwidget.cpp:180 +msgid "Rename Column" +msgstr "Renomear Coluna" + +#: gui/tablefieldwidget.cpp:180 +msgid "New column name:" +msgstr "Novo nome da coluna:" + +#: gui/tablefieldwidget.cpp:205 +#, c-format +msgid "Column %1" +msgstr "Coluna %1" + +#: gui/tablefieldwidget.cpp:240 gui/tablefieldwidget.cpp:288 +msgid "Rename Column..." +msgstr "Renomear Coluna..." + +#: gui/tablefieldwidget.cpp:273 +msgid "Insert Row" +msgstr "Inserir Linha " + +#: gui/tablefieldwidget.cpp:275 +msgid "Remove Row" +msgstr "Remover Linha " + +#: gui/tablefieldwidget.cpp:277 +msgid "Move Row Up" +msgstr "Mover Linha para Cima" + +#: gui/tablefieldwidget.cpp:282 +msgid "Move Row Down" +msgstr "Mover Linha para Baixo" + +#: gui/tablefieldwidget.cpp:294 +msgid "Clear Table" +msgstr "Limpar Tabela" + +#: gui/previewdialog.cpp:27 +msgid "Template Preview" +msgstr "Vis?o de Modelos" + +#: gui/stringmapdialog.cpp:57 +msgid "&Set" +msgstr "&Definir" + +#: gui/fieldwidget.cpp:102 gui/fieldwidget.cpp:196 msgid "" -"

...that you can change which fields are shown in the list view by\n" -"right-clicking on the column header.\n" +"_: Edit Label\n" +"%1:" +msgstr "%1:" + +#: gui/kwidgetlister.cpp:58 +msgid "" +"_: more widgets\n" +"More" +msgstr "Mais" + +#: gui/kwidgetlister.cpp:62 +msgid "" +"_: fewer widgets\n" +"Fewer" +msgstr "Menos" + +#: gui/kwidgetlister.cpp:69 +msgid "" +"_: clear widgets\n" +"Clear" +msgstr "Limpar" + +#: gui/imagewidget.cpp:52 +msgid "Select Image..." +msgstr "Selecionar Imagem..." + +#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50 +#, c-format +msgid "" +"_: Modify (Entry Title)\n" +"Modify %1" +msgstr "Modificar %1" + +#: commands/collectioncommand.cpp:93 +msgid "Append Collection" +msgstr "Continuar Cole??o" + +#: commands/collectioncommand.cpp:95 +msgid "Merge Collection" +msgstr "Combinar Cole??o" + +#: commands/collectioncommand.cpp:97 +msgid "Replace Collection" +msgstr "Substituir Cole??o" + +#: commands/modifyentries.cpp:72 +msgid "Modify Entries" +msgstr "Modificar Registros" + +#: commands/fieldcommand.cpp:104 +msgid "Add %1 Field" +msgstr "Adicionar Campo %1" + +#: commands/fieldcommand.cpp:106 +msgid "Modify %1 Field" +msgstr "Modificar Campo %1" + +#: commands/fieldcommand.cpp:108 +msgid "Delete %1 Field" +msgstr "Apagar Campo %1" + +#: commands/addentries.cpp:54 +msgid "Add Entries" +msgstr "Adicionar Registros" + +#: commands/addentries.cpp:55 +#, c-format +msgid "" +"_: Add (Entry Title)\n" +"Add %1" +msgstr "Adicionar %1" + +#: commands/renamecollection.cpp:45 tellico_kernel.cpp:322 +msgid "Rename Collection" +msgstr "Renomear a Cole??o" + +#: commands/modifyloans.cpp:75 loandialog.cpp:46 +msgid "Modify Loan" +msgstr "Modificar Empr?stimo " + +#: commands/filtercommand.cpp:98 +msgid "Add Filter" +msgstr "Adicionar Filtro" + +#: commands/filtercommand.cpp:100 filterdialog.cpp:282 filterview.cpp:67 +msgid "Modify Filter" +msgstr "Modifica Filtro " + +#: commands/filtercommand.cpp:102 filterview.cpp:69 +msgid "Delete Filter" +msgstr "Apagar o Filtro" + +#: commands/addloans.cpp:108 +msgid "Check-out Items" +msgstr "Registrar Sa?da de Itens" + +#: commands/addloans.cpp:109 +#, c-format +msgid "" +"_: Check-out (Entry Title)\n" +"Check-out %1" +msgstr "Registrar sa?da de %1" + +#: commands/removeentries.cpp:52 +msgid "Delete Entries" +msgstr "Apagar Registros" + +#: commands/removeentries.cpp:53 +#, c-format +msgid "" +"_: Delete (Entry Title)\n" +"Delete %1" +msgstr "Apagar %1" + +#: commands/reorderfields.cpp:52 +msgid "Reorder Fields" +msgstr "Reordenar Campos" + +#: commands/removeloans.cpp:79 +msgid "Check-in Entries" +msgstr "Registros de Entrada" + +#: commands/removeloans.cpp:80 +#, c-format +msgid "" +"_: Check-in (Entry Title)\n" +"Check-in %1" +msgstr "Registrar entrada de %1" + +#: collectionfactory.cpp:78 collections/bibtexcollection.cpp:24 +#: collections/bibtexcollection.cpp:59 collections/bibtexcollection.cpp:89 +#: collections/bookcollection.cpp:19 collections/bookcollection.cpp:41 +#: collections/cardcollection.cpp:19 collections/coincollection.cpp:19 +#: collections/comicbookcollection.cpp:19 collections/filecatalog.cpp:19 +#: collections/gamecollection.cpp:19 collections/musiccollection.cpp:19 +#: collections/stampcollection.cpp:19 collections/videocollection.cpp:19 +#: collections/videocollection.cpp:41 collections/winecollection.cpp:19 +#: configdialog.cpp:191 fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:910 +#: field.cpp:39 field.cpp:71 translators/gcfilmsimporter.cpp:54 +msgid "General" +msgstr "Geral " + +#: collections/bibtexcollection.cpp:25 collections/bookcollection.cpp:20 +#: collections/comicbookcollection.cpp:20 translators/grs1importer.cpp:58 +#: translators/grs1importer.cpp:68 translators/risimporter.cpp:258 +msgid "Publishing" +msgstr "Publica??o" + +#: collections/bookcollection.cpp:21 collections/comicbookcollection.cpp:21 +#: translators/grs1importer.cpp:63 translators/risimporter.cpp:252 +msgid "Classification" +msgstr "Classifica??o" + +#: collections/bookcollection.cpp:22 collections/cardcollection.cpp:20 +#: collections/coincollection.cpp:20 collections/comicbookcollection.cpp:22 +#: collections/gamecollection.cpp:20 collections/musiccollection.cpp:20 +#: collections/stampcollection.cpp:21 collections/videocollection.cpp:22 +#: collections/winecollection.cpp:20 document.cpp:490 +msgid "Personal" +msgstr "Pessoal" + +#: collections/comicbookcollection.cpp:28 +msgid "Comics" +msgstr "Revistas em Quadrinhos" + +#: collections/comicbookcollection.cpp:29 +msgid "My Comic Books" +msgstr "Minhas Revistas em Quadrinhos" + +#: collectionfactory.cpp:77 collections/bibtexcollection.cpp:57 +#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:38 +#: collections/coincollection.cpp:38 collections/comicbookcollection.cpp:40 +#: collections/gamecollection.cpp:38 collections/musiccollection.cpp:77 +#: collections/stampcollection.cpp:39 collections/videocollection.cpp:40 +#: collections/winecollection.cpp:38 entryupdater.cpp:230 +#: fetch/fetchmanager.cpp:62 fetchdialog.cpp:158 +#: translators/tellicoimporter.cpp:400 +msgid "Title" +msgstr "T?tulo" + +#: collections/bookcollection.cpp:46 collections/comicbookcollection.cpp:46 +msgid "Subtitle" +msgstr "Sub-T?tulo" + +#: collections/comicbookcollection.cpp:51 collections/videocollection.cpp:122 +msgid "Writer" +msgstr "Escritor" + +#: collections/comicbookcollection.cpp:57 +msgid "" +"_: Comic Book Illustrator\n" +"Artist" +msgstr "Artista Gr?fico" + +#: collections/bibtexcollection.cpp:195 collections/bookcollection.cpp:127 +#: collections/cardcollection.cpp:72 collections/comicbookcollection.cpp:63 +msgid "Series" +msgstr "S?rie" + +#: collections/comicbookcollection.cpp:69 +msgid "Issue" +msgstr "N?mero" + +#: collections/bibtexcollection.cpp:121 collections/bookcollection.cpp:74 +#: collections/comicbookcollection.cpp:74 collections/gamecollection.cpp:66 +msgid "Publisher" +msgstr "Editora" + +#: collections/bibtexcollection.cpp:134 collections/bookcollection.cpp:80 +#: collections/comicbookcollection.cpp:80 +msgid "Edition" +msgstr "Edi??o" + +#: collections/bookcollection.cpp:91 collections/comicbookcollection.cpp:86 +msgid "Publication Year" +msgstr "Ano de Publica??o" + +#: collections/bibtexcollection.cpp:141 collections/bookcollection.cpp:106 +#: collections/comicbookcollection.cpp:91 +msgid "Pages" +msgstr "P?ginas" + +#: collections/coincollection.cpp:67 collections/comicbookcollection.cpp:95 +#: collections/stampcollection.cpp:56 collections/winecollection.cpp:74 +msgid "Country" +msgstr "Pa?s" + +#: collections/bookcollection.cpp:110 collections/comicbookcollection.cpp:101 +#: translators/grs1importer.cpp:67 +msgid "Language" +msgstr "L?ngua" + +#: collections/bookcollection.cpp:115 collections/comicbookcollection.cpp:107 +#: collections/gamecollection.cpp:55 collections/musiccollection.cpp:68 +#: collections/videocollection.cpp:68 +msgid "Genre" +msgstr "G?nero" + +#: collections/bibtexcollection.cpp:217 collections/bookcollection.cpp:122 +#: collections/cardcollection.cpp:101 collections/comicbookcollection.cpp:113 +#: collections/musiccollection.cpp:104 fetch/amazonfetcher.cpp:860 +#: translators/grs1importer.cpp:62 translators/risimporter.cpp:250 +msgid "Keywords" +msgstr "Palavras-chave" + +#: collections/comicbookcollection.cpp:121 +msgid "" +"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very " +"Good,Good,Fair,Poor\n" +"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor" +msgstr "Novo,Quase novo,Excelente,?timo,Muito bom,Bom,Razo?vel,Ruim" + +#: collections/bookcollection.cpp:138 collections/comicbookcollection.cpp:123 +#: collections/stampcollection.cpp:20 +msgid "Condition" +msgstr "Condi??o" + +#: collections/bookcollection.cpp:65 collections/cardcollection.cpp:83 +#: collections/coincollection.cpp:103 collections/comicbookcollection.cpp:127 +#: collections/gamecollection.cpp:100 collections/musiccollection.cpp:87 +#: collections/stampcollection.cpp:105 collections/videocollection.cpp:191 +#: collections/winecollection.cpp:80 +msgid "Purchase Date" +msgstr "Data de compra" + +#: collections/bookcollection.cpp:70 collections/cardcollection.cpp:88 +#: collections/coincollection.cpp:108 collections/comicbookcollection.cpp:132 +#: collections/gamecollection.cpp:109 collections/musiccollection.cpp:96 +#: collections/stampcollection.cpp:110 collections/videocollection.cpp:200 +#: collections/winecollection.cpp:85 +msgid "Purchase Price" +msgstr "Pre?o de compra" + +#: collections/bookcollection.cpp:142 collections/comicbookcollection.cpp:136 +msgid "Signed" +msgstr "Autografado" + +#: collections/bookcollection.cpp:150 collections/cardcollection.cpp:97 +#: collections/coincollection.cpp:118 collections/comicbookcollection.cpp:140 +#: collections/gamecollection.cpp:105 collections/musiccollection.cpp:92 +#: collections/stampcollection.cpp:120 collections/videocollection.cpp:196 +#: collections/winecollection.cpp:108 +msgid "Gift" +msgstr "Presente" + +#: collections/bookcollection.cpp:154 collections/comicbookcollection.cpp:144 +#: collections/gamecollection.cpp:113 collections/musiccollection.cpp:100 +#: collections/videocollection.cpp:204 document.cpp:488 +msgid "Loaned" +msgstr "Emprestado" + +#: collections/bookcollection.cpp:163 collections/comicbookcollection.cpp:148 +msgid "Front Cover" +msgstr "Capa" + +#: collections/bookcollection.cpp:166 collections/cardcollection.cpp:116 +#: collections/coincollection.cpp:128 collections/comicbookcollection.cpp:151 +#: collections/gamecollection.cpp:120 collections/musiccollection.cpp:112 +#: collections/stampcollection.cpp:127 collections/videocollection.cpp:211 +#: collections/winecollection.cpp:115 +msgid "Comments" +msgstr "Coment?rios" + +#: collections/stampcollection.cpp:27 +msgid "Stamps" +msgstr "Selos" + +#: collections/stampcollection.cpp:28 +msgid "My Stamps" +msgstr "Meus Selos" + +#: collections/filecatalog.cpp:46 collections/gamecollection.cpp:88 +#: collections/stampcollection.cpp:45 entryupdater.cpp:231 fetchdialog.cpp:159 +msgid "Description" +msgstr "Descri??o" + +#: collections/coincollection.cpp:51 collections/stampcollection.cpp:51 +msgid "Denomination" +msgstr "Denomina??o" + +#: collections/stampcollection.cpp:62 +msgid "Issue Year" +msgstr "Ano de Edi??o" + +#: collections/stampcollection.cpp:67 collections/videocollection.cpp:173 +msgid "Color" +msgstr "Cor" + +#: collections/stampcollection.cpp:72 +msgid "Scott#" +msgstr "Scott#" + +#: collections/stampcollection.cpp:79 +msgid "" +"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n" +"Superb,Extremely Fine,Very Fine,Fine,Average,Poor" +msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim" + +#: collections/coincollection.cpp:88 collections/stampcollection.cpp:81 +msgid "Grade" +msgstr "Classifica??o" + +#: collections/stampcollection.cpp:86 +msgid "Cancelled" +msgstr "Cancelado" + +#: collections/stampcollection.cpp:90 +msgid "Hinged" +msgstr "Articulado" + +#: collections/stampcollection.cpp:95 +msgid "Centering" +msgstr "Centrada" + +#: collections/stampcollection.cpp:100 +msgid "Gummed" +msgstr "Colado" + +#: collections/cardcollection.cpp:92 collections/coincollection.cpp:112 +#: collections/stampcollection.cpp:114 collections/winecollection.cpp:89 +msgid "Location" +msgstr "Localiza??o" + +#: collections/stampcollection.cpp:124 field.cpp:432 +msgid "Image" +msgstr "Imagem " + +#: collections/coincollection.cpp:26 +msgid "Coins" +msgstr "Moedas" + +#: collections/coincollection.cpp:27 +msgid "My Coins" +msgstr "Minhas Moedas" + +#: collections/coincollection.cpp:45 collections/winecollection.cpp:69 +msgid "Type" +msgstr "Tipo" + +#: collections/bibtexcollection.cpp:146 collections/cardcollection.cpp:67 +#: collections/coincollection.cpp:56 collections/musiccollection.cpp:63 +msgid "Year" +msgstr "Ano" + +#: collections/coincollection.cpp:61 +msgid "Mint Mark" +msgstr "Marca da Casa Emissora" + +#: collections/coincollection.cpp:73 +msgid "Coin Set" +msgstr "Conjunto de Moedas" + +#: collections/coincollection.cpp:83 +msgid "" +"_: Coin grade levels - Proof-65,Proof-60,Mint State-65,Mint State-60,Almost " +"Uncirculated-55,Almost Uncirculated-50,Extremely Fine-40,Very Fine-30,Very " +"Fine-20,Fine-12,Very Good-8,Good-4,Fair\n" +"Proof-65,Proof-60,Mint State-65,Mint State-60,Almost Uncirculated-55,Almost " +"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very " +"Good-8,Good-4,Fair" msgstr "" -"

...que voc? pode alterar que campos ser?o apresentados na Vis?o\n" -"de Lista ao clicar com o bot?o direito sobre o cabe?alho das colunas.\n" +"Proof-65,Proof-60,Mint-65,Mint-60,Quase n?o Circulada-55,Quase n?o " +"Circulada-50,Extremamente Rara-40,Muito Rara-30,Muito Rara-20,Rara-12,Muito " +"Boa-8,Boa-4,Razo?vel" -#: tips.cpp:16 +#: collections/coincollection.cpp:96 msgid "" -"

...that you can add, edit, or modify the fields in the collection using\n" -"the Field Editor. The arrow buttons below the field list can be used to " -"change the\n" -"position of the field in the list, which affects the placement in the entry\n" -"editor.

\n" +"_: Coin grading services - PCGS,NGC,ANACS,ICG,ASA,PCI\n" +"PCGS,NGC,ANACS,ICG,ASA,PCI" +msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI" + +#: collections/coincollection.cpp:98 +msgid "Grading Service" +msgstr "Servi?os de Classifica??o" + +#: collections/coincollection.cpp:122 +msgid "Obverse" +msgstr "Observa??o" + +#: collections/coincollection.cpp:125 +msgid "Reverse" +msgstr "Verso" + +#: collections/bookcollection.cpp:28 +msgid "Books" +msgstr "Livros" + +#: collections/bookcollection.cpp:29 +msgid "My Books" +msgstr "Meus Livros" + +#: collections/bibtexcollection.cpp:80 collections/bookcollection.cpp:51 +msgid "Author" +msgstr "Autor" + +#: collections/bookcollection.cpp:58 translators/alexandriaimporter.cpp:121 +msgid "Hardback" +msgstr "Capa Dura" + +#: collections/bookcollection.cpp:58 +msgid "Paperback" +msgstr "Capa Flex?vel Econ?mica" + +#: collections/bookcollection.cpp:58 +msgid "Trade Paperback" +msgstr "Capa Flex?vel" + +#: collections/bookcollection.cpp:59 +msgid "E-Book" +msgstr "Livro Eletr?nico" + +#: collections/bookcollection.cpp:59 +msgid "Magazine" +msgstr "Revista" + +#: collections/bibtexcollection.cpp:158 collections/bookcollection.cpp:59 +msgid "Journal" +msgstr "Jornal" + +#: collections/bookcollection.cpp:60 +msgid "Binding" +msgstr "Formato" + +#: collections/bookcollection.cpp:86 +msgid "Copyright Year" +msgstr "Ano do Copyright" + +#: collections/bibtexcollection.cpp:152 collections/bookcollection.cpp:96 +#: translators/grs1importer.cpp:57 translators/risimporter.cpp:255 +msgid "ISBN#" +msgstr "ISBN#" + +#: collections/bibtexcollection.cpp:155 collections/bookcollection.cpp:98 +#: translators/grs1importer.cpp:59 translators/risimporter.cpp:259 +msgid "International Standard Book Number" +msgstr "N?mero Internacional Normalizado do Livro" + +#: collections/bookcollection.cpp:101 +msgid "LCCN#" +msgstr "LCCN#" + +#: collections/bookcollection.cpp:103 +msgid "Library of Congress Control Number" +msgstr "N?mero de Controlo da Biblioteca do Congresso" + +#: collections/bookcollection.cpp:132 +msgid "Series Number" +msgstr "N? de s?rie" + +#: collections/bookcollection.cpp:137 mainwindow.cpp:191 +msgid "New" +msgstr "Novo " + +#: collections/bookcollection.cpp:137 +msgid "Used" +msgstr "Usado" + +#: collections/bookcollection.cpp:146 +msgid "Read" +msgstr "Lido" + +#: collections/bookcollection.cpp:158 collections/musiccollection.cpp:82 +#: collections/winecollection.cpp:103 field.cpp:436 newstuff/dialog.cpp:114 +msgid "Rating" +msgstr "Classifica??o " + +#: collections/filecatalog.cpp:26 +msgid "My Files" +msgstr "Meus Arquivos" + +#: borrowerdialog.cpp:48 collections/filecatalog.cpp:37 +#: newstuff/dialog.cpp:112 +msgid "Name" +msgstr "Nome" + +#: collections/filecatalog.cpp:42 fetch/entrezfetcher.cpp:395 +#: fetch/entrezfetcher.cpp:464 field.cpp:430 +#: translators/gcfilmsimporter.cpp:53 translators/risimporter.cpp:261 +msgid "URL" +msgstr "URL" + +#: collections/bibtexcollection.cpp:202 collections/filecatalog.cpp:51 +msgid "Volume" +msgstr "Volume" + +#: collections/filecatalog.cpp:56 +msgid "Folder" +msgstr "Pasta" + +#: collections/filecatalog.cpp:61 +msgid "Mimetype" +msgstr "Tipo MIME" + +#: collections/filecatalog.cpp:66 +msgid "Size" +msgstr "Tamanho" + +#: collections/filecatalog.cpp:70 +msgid "Permissions" +msgstr "Permiss?es" + +#: collections/filecatalog.cpp:75 +msgid "Owner" +msgstr "Dono" + +#: collections/filecatalog.cpp:80 +msgid "Group" +msgstr "Grupo" + +#: collections/filecatalog.cpp:86 +msgid "Created" +msgstr "Criado" + +#: collections/filecatalog.cpp:90 +msgid "Modified" +msgstr "Modificado" + +#: collections/filecatalog.cpp:94 +msgid "Meta Info" +msgstr "Meta-informa??o" + +#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:96 +msgid "Property" +msgstr "Propriedade" + +#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:97 +msgid "Value" +msgstr "Valor" + +#: collections/filecatalog.cpp:100 +msgid "Icon" +msgstr "?cone" + +#: collections/winecollection.cpp:26 +msgid "Wines" +msgstr "Vinhos" + +#: collections/winecollection.cpp:27 +msgid "My Wines" +msgstr "Meus Vinhos" + +#: collections/videocollection.cpp:116 collections/winecollection.cpp:44 +msgid "Producer" +msgstr "Produtor" + +#: collections/winecollection.cpp:50 +msgid "Appellation" +msgstr "Apela??o" + +#: collections/winecollection.cpp:56 +msgid "Varietal" +msgstr "Variedade" + +# N?o sei ainda qual a tradu??o correta +#: collections/winecollection.cpp:62 +msgid "Vintage" +msgstr "Safra" + +#: collections/winecollection.cpp:68 +msgid "Red Wine" +msgstr "Vinho tinto" + +#: collections/winecollection.cpp:68 +msgid "White Wine" +msgstr "Vinho branco" + +#: collections/winecollection.cpp:68 +msgid "Sparkling Wine" +msgstr "Espumoso" + +#: collections/cardcollection.cpp:106 collections/winecollection.cpp:94 +msgid "Quantity" +msgstr "Quantidade" + +#: collections/winecollection.cpp:98 +msgid "Drink By" +msgstr "Bebido Por" + +#: collections/winecollection.cpp:112 +msgid "Label Image" +msgstr "Etiqueta" + +#: collections/videocollection.cpp:20 fetch/animenfofetcher.cpp:264 +msgid "Other People" +msgstr "Outras Pessoas" + +#: collections/videocollection.cpp:21 fetch/animenfofetcher.cpp:270 +msgid "Features" +msgstr "Caracter?sticas" + +#: collections/videocollection.cpp:28 +msgid "Videos" +msgstr "V?deos" + +#: collections/videocollection.cpp:29 +msgid "My Videos" +msgstr "Meus V?deos" + +#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47 +msgid "DVD" +msgstr "DVD" + +#: collections/videocollection.cpp:47 +msgid "VHS" +msgstr "VHS" + +#: collections/videocollection.cpp:47 +msgid "VCD" +msgstr "VCD" + +#: collections/videocollection.cpp:47 +msgid "DivX" +msgstr "DivX" + +#: collections/musiccollection.cpp:46 collections/videocollection.cpp:48 +msgid "Medium" +msgstr "M?dia" + +#: collections/videocollection.cpp:53 +msgid "Production Year" +msgstr "Ano de Produ??o" + +#: collections/videocollection.cpp:61 +msgid "" +"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n" +"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" +msgstr "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" + +#: collections/videocollection.cpp:63 +msgid "Certification" +msgstr "Certifica??o" + +#: collections/videocollection.cpp:75 +msgid "Region 1" +msgstr "Regi?o 1" + +#: collections/videocollection.cpp:76 +msgid "Region 2" +msgstr "Regi?o 2" + +#: collections/videocollection.cpp:77 +msgid "Region 3" +msgstr "Regi?o 3" + +#: collections/videocollection.cpp:78 +msgid "Region 4" +msgstr "Regi?o 4" + +#: collections/videocollection.cpp:79 +msgid "Region 5" +msgstr "Regi?o 5" + +#: collections/videocollection.cpp:80 +msgid "Region 6" +msgstr "Regi?o 6" + +#: collections/videocollection.cpp:81 +msgid "Region 7" +msgstr "Regi?o 7" + +#: collections/videocollection.cpp:82 +msgid "Region 8" +msgstr "Regi?o 8" + +#: collections/videocollection.cpp:83 +msgid "Region" +msgstr "Regi?o" + +#: collections/videocollection.cpp:88 +msgid "Nationality" +msgstr "Nacionalidade" + +#: collections/videocollection.cpp:95 +msgid "NTSC" +msgstr "NTSC" + +#: collections/videocollection.cpp:95 +msgid "PAL" +msgstr "PAL" + +#: collections/videocollection.cpp:95 +msgid "SECAM" +msgstr "SECAM" + +#: collections/videocollection.cpp:96 +msgid "Format" +msgstr "Formato" + +#: collections/videocollection.cpp:101 +msgid "Cast" +msgstr "Elenco" + +#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:404 +msgid "Actor/Actress" +msgstr "Ator/Atriz" + +#: collections/videocollection.cpp:104 translators/tellicoimporter.cpp:405 +msgid "Role" +msgstr "Personagem" + +#: collections/videocollection.cpp:107 +msgid "A table for the cast members, along with the roles they play" +msgstr "Uma tabela para o elenco do filme, com o papel representado por cada um" + +#: collections/videocollection.cpp:110 +msgid "Director" +msgstr "Diretor" + +#: collections/videocollection.cpp:128 +msgid "Composer" +msgstr "Compositor" + +#: collections/videocollection.cpp:134 +msgid "Studio" +msgstr "Est?dio" + +#: collections/videocollection.cpp:140 +msgid "Language Tracks" +msgstr "L?nguas dispon?veis" + +#: collections/videocollection.cpp:146 +msgid "Subtitle Languages" +msgstr "L?ngua das Legendas" + +#: collections/videocollection.cpp:152 +msgid "Audio Tracks" +msgstr "?udios Dispon?veis" + +#: collections/videocollection.cpp:158 +msgid "Running Time" +msgstr "Dura??o" + +#: collections/videocollection.cpp:160 +msgid "The running time of the video (in minutes)" +msgstr "Dura??o do v?deo (em minutos)" + +#: collections/videocollection.cpp:163 +msgid "Aspect Ratio" +msgstr "Formato da Imagem" + +#: collections/videocollection.cpp:168 translators/tellicoimporter.cpp:886 +msgid "Widescreen" +msgstr "Tela Larga" + +#: collections/videocollection.cpp:173 +msgid "Black & White" +msgstr "Preto & Branco" + +#: collections/videocollection.cpp:174 +msgid "Color Mode" +msgstr "Formato de Cor" + +#: collections/videocollection.cpp:179 +msgid "Director's Cut" +msgstr "Cortes do Diretor" + +#: collections/videocollection.cpp:183 fetch/ibsfetcher.cpp:352 +msgid "Plot Summary" +msgstr "Resumo da A??o" + +#: collections/gamecollection.cpp:91 collections/videocollection.cpp:186 +msgid "Personal Rating" +msgstr "Nota Pessoal" + +#: collections/gamecollection.cpp:117 collections/musiccollection.cpp:109 +#: collections/videocollection.cpp:208 +msgid "Cover" +msgstr "Capa" + +#: collections/gamecollection.cpp:26 +msgid "Games" +msgstr "Jogos" + +#: collections/gamecollection.cpp:27 +msgid "My Games" +msgstr "Meus Jogos" + +#: collections/gamecollection.cpp:45 +msgid "Xbox 360" +msgstr "Xbox 360" + +#: collections/gamecollection.cpp:45 +msgid "Xbox" +msgstr "Xbox" + +#: collections/gamecollection.cpp:46 +msgid "PlayStation3" +msgstr "PlayStation3" + +#: collections/gamecollection.cpp:46 +msgid "PlayStation2" +msgstr "PlayStation2" + +#: collections/gamecollection.cpp:46 +msgid "PlayStation" +msgstr "PlayStation" + +#: collections/gamecollection.cpp:46 +msgid "" +"_: PlayStation Portable\n" +"PSP" +msgstr "PSP" + +#: collections/gamecollection.cpp:47 +msgid "Nintendo Wii" +msgstr "Revolu??o" + +#: collections/gamecollection.cpp:47 +msgid "Nintendo DS" +msgstr "Nintendo DS" + +#: collections/gamecollection.cpp:47 +msgid "GameCube" +msgstr "GameCube" + +#: collections/gamecollection.cpp:47 +msgid "Dreamcast" +msgstr "Dreamcast" + +#: collections/gamecollection.cpp:48 +msgid "Game Boy Advance" +msgstr "Game Boy Advance" + +#: collections/gamecollection.cpp:48 +msgid "Game Boy Color" +msgstr "Game Boy Color" + +#: collections/gamecollection.cpp:48 +msgid "Game Boy" +msgstr "Game Boy" + +#: collections/gamecollection.cpp:49 +msgid "" +"_: Windows Platform\n" +"Windows" +msgstr "Windows" + +#: collections/gamecollection.cpp:49 +msgid "Mac OS" +msgstr "Mac OS" + +#: collections/gamecollection.cpp:50 +msgid "Platform" +msgstr "Platforma" + +#: collections/gamecollection.cpp:61 +msgid "Release Year" +msgstr "Ano de Lan?amento" + +#: collections/gamecollection.cpp:72 +msgid "Developer" +msgstr "Desenvolvedor" + +#: collections/gamecollection.cpp:81 +msgid "" +"_: Video game ratings - Unrated, Adults Only, Mature, Teen, Everyone, Early " +"Childhood, Pending\n" +"Unrated, Adults Only, Mature, Teen, Everyone, Early Childhood, Pending" msgstr "" -"

...que voc? pode adicionar, editar, ou modificar os campos da cole??o " -"usando\n" -"o Editor de Campos. Os bot?es com setas sob a lista de campos permitem " -"modificar\n" -"a posi??o do campo na lista, o que afetar? sua posi??o no editor de " -"registro.

\n" +"N?o Classificado, Somente Adultos, Jovens, Adolescentes, Sem Censura, " +"Infantil, Pendente" -#: tips.cpp:23 +#: collections/gamecollection.cpp:83 +msgid "ESRB Rating" +msgstr "Classifica??o da ESRB" + +#: collections/gamecollection.cpp:96 +msgid "Completed" +msgstr "Completado" + +#: collections/cardcollection.cpp:26 +msgid "Cards" +msgstr "Cart?es" + +#: collections/cardcollection.cpp:27 +msgid "My Cards" +msgstr "Meus Cart?es" + +#: collections/cardcollection.cpp:44 +msgid "Player" +msgstr "Jogador" + +#: collections/cardcollection.cpp:50 +msgid "Team" +msgstr "Time" + +#: collections/cardcollection.cpp:56 +msgid "Brand" +msgstr "Marca" + +#: collections/cardcollection.cpp:63 +msgid "Card Number" +msgstr "N?mero do Cart?o" + +#: collections/cardcollection.cpp:78 +msgid "Card Type" +msgstr "Tipo do Cart?o" + +#: collections/cardcollection.cpp:110 +msgid "Front Image" +msgstr "Imagem Frontal" + +#: collections/cardcollection.cpp:113 +msgid "Back Image" +msgstr "Imagem no Verso" + +#: collections/bibtexcollection.cpp:30 +msgid "Entries" +msgstr "Registros" + +#: collectionfactory.cpp:118 collections/bibtexcollection.cpp:31 +msgid "Bibliography" +msgstr "Bibliografia" + +#: collections/bibtexcollection.cpp:73 +msgid "Entry Type" +msgstr "Tipo de Registro" + +#: collections/bibtexcollection.cpp:77 +msgid "These entry types are specific to bibtex. See the bibtex documentation." +msgstr "" +"Estes tipos de registro s?o espec?ficos para o BibTeX. Consulte a " +"documenta??o do mesmo." + +#: collections/bibtexcollection.cpp:87 +msgid "Bibtex Key" +msgstr "Chave do BibTeX" + +#: collections/bibtexcollection.cpp:93 +msgid "Book Title" +msgstr "T?tulo do livro" + +#: collections/bibtexcollection.cpp:99 +msgid "Editor" +msgstr "Editor" + +#: collections/bibtexcollection.cpp:106 +msgid "Organization" +msgstr "Organiza??o" + +#: collections/bibtexcollection.cpp:128 fetch/srufetcher.cpp:434 +#: fetch/z3950fetcher.cpp:669 +msgid "Address" +msgstr "Endere?o" + +#: collections/bibtexcollection.cpp:167 +msgid "Month" +msgstr "M?s" + +#: collections/bibtexcollection.cpp:173 field.cpp:429 +msgid "Number" +msgstr "N?mero " + +#: collections/bibtexcollection.cpp:178 +msgid "How Published" +msgstr "Modo de publica??o" + +#: collections/bibtexcollection.cpp:190 +msgid "Chapter" +msgstr "Cap?tulo" + +#: collections/bibtexcollection.cpp:207 +msgid "Cross-Reference" +msgstr "Refer?ncia cruzada" + +#: collections/bibtexcollection.cpp:222 fetch/entrezfetcher.cpp:463 +#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:670 +#: translators/risimporter.cpp:246 +msgid "Abstract" +msgstr "Resumo" + +#: collections/bibtexcollection.cpp:226 +msgid "Notes" +msgstr "Notas" + +#: collections/musiccollection.cpp:26 +msgid "Albums" +msgstr "?lbuns" + +#: collections/musiccollection.cpp:27 +msgid "My Music" +msgstr "Minhas M?sicas" + +#: collections/musiccollection.cpp:38 +msgid "Album" +msgstr "?lbum" + +#: collections/musiccollection.cpp:45 translators/freedbimporter.cpp:224 +#: translators/freedbimporter.cpp:337 translators/freedbimporter.cpp:404 +msgid "Compact Disc" +msgstr "CD" + +#: collections/musiccollection.cpp:45 +msgid "Cassette" +msgstr "Cassete" + +#: collections/musiccollection.cpp:45 +msgid "Vinyl" +msgstr "Vinil" + +#: collections/musiccollection.cpp:51 collections/musiccollection.cpp:78 +#: translators/tellicoimporter.cpp:401 +msgid "Artist" +msgstr "Artista" + +#: collections/musiccollection.cpp:57 +msgid "Label" +msgstr "Selo" + +#: collections/musiccollection.cpp:74 +msgid "Tracks" +msgstr "Pistas" + +#: collections/musiccollection.cpp:79 translators/tellicoimporter.cpp:402 +msgid "Length" +msgstr "Dura??o" + +#: core/tellico_config.cpp:118 msgid "" -"

...that if you want to filter by a Checkbox field, a value of\n" -"\"true\" should be used. If you'd like to filter to\n" -"show only the science fiction books which you've not read, for\n" -"example, check the Match all of the\n" -"following button, set the first rule to have \"Genre\"\n" -"\"contains\" \"Science Fiction\" (no quotes) and the second rule to\n" -"have \"Read\" \"does not contain\" \"true\" (no quotes).

\n" +"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to," +"up,with" +msgstr "um,uma,e,em,de,o,a " + +#: core/tellico_config.cpp:121 +msgid "the" +msgstr "o,a,os,as " + +#: core/tellico_config.cpp:124 +msgid "jr.,jr,iii,iv" +msgstr "jr.,jr,iii,iv " + +#: core/tellico_config.cpp:127 +msgid "de,van,der,van der,von" +msgstr "de,o,a " + +#: fetch/isbndbfetcher.cpp:50 +msgid "ISBNdb.com" +msgstr "ISBNdb.com" + +#: fetch/amazonfetcher.cpp:189 fetch/animenfofetcher.cpp:74 +#: fetch/ibsfetcher.cpp:71 fetch/isbndbfetcher.cpp:75 +#: fetch/yahoofetcher.cpp:92 +msgid "%1 does not allow searching for this collection type." +msgstr "%1 n?o permite a pesquisa para este tipo de cole??o." + +#: fetch/animenfofetcher.cpp:369 fetch/entrezfetcher.cpp:443 +#: fetch/ibsfetcher.cpp:401 fetch/isbndbfetcher.cpp:257 +#: fetch/yahoofetcher.cpp:391 +msgid "This source has no options." +msgstr "Esta fonte n?o tem op??es" + +#: fetch/entrezfetcher.cpp:54 +msgid "Entrez Database" +msgstr "Banco de Dados Entrez" + +#: fetch/entrezfetcher.cpp:462 +msgid "Institution" +msgstr "Institui??o" + +#: fetch/z3950connection.cpp:115 +msgid "Query error!" +msgstr "Erro na pesquisa!" + +#: fetch/z3950connection.cpp:156 +msgid "Connection search error %1: %2" +msgstr "Erro na procura da conex?o %1: %2" + +#: fetch/z3950connection.cpp:233 +msgid "Record syntax error" +msgstr "Erro de Sintaxe no Registro" + +#: fetch/z3950connection.cpp:316 +msgid "Connection error %1: %2" +msgstr "Erro de conex?o %1: %2" + +#: fetch/srufetcher.cpp:65 +msgid "SRU Server" +msgstr "Servidor SRU" + +#: fetch/srufetcher.cpp:334 z3950.cpp:2 +msgid "Library of Congress (US)" +msgstr "Biblioteca do Congresso (Estados Unidos)" + +#: fetch/imdbfetcher.cpp:1076 fetch/srufetcher.cpp:349 +#: fetch/z3950fetcher.cpp:505 +msgid "Hos&t: " +msgstr "&Servidor:" + +#: fetch/srufetcher.cpp:355 fetch/z3950fetcher.cpp:511 +msgid "Enter the host name of the server." +msgstr "Insira o nome do servidor" + +#: fetch/srufetcher.cpp:360 fetch/z3950fetcher.cpp:516 +msgid "&Port: " +msgstr "&Porta:" + +#: fetch/srufetcher.cpp:365 fetch/z3950fetcher.cpp:521 +#, c-format +msgid "Enter the port number of the server. The default is %1." +msgstr "Insira o n?mero da porta do servidor z39.50. A porta padr?o ? %1." + +#: fetch/srufetcher.cpp:370 +msgid "Path: " +msgstr "Caminho:" + +#: fetch/srufetcher.cpp:375 +msgid "Enter the path to the database used by the server." +msgstr "Insira o caminho para o banco de dados utilizado pelo servidor" + +#: fetch/srufetcher.cpp:380 +msgid "Format: " +msgstr "Formato:" + +#: fetch/srufetcher.cpp:387 +msgid "Enter the result format used by the server." +msgstr "Informe o formato de resultado utilizado pelo servidor." + +#: fetch/yahoofetcher.cpp:51 +msgid "Yahoo! Audio Search" +msgstr "Yahoo! Audio Search" + +#: fetch/amazonfetcher.cpp:696 fetch/yahoofetcher.cpp:241 +msgid "The cover image could not be loaded." +msgstr "A imagem da capa n?o p?de ser carregada." + +#: fetch/amazonfetcher.cpp:50 +msgid "Amazon Link" +msgstr "Amazon Link" + +#: fetch/amazonfetcher.cpp:59 +msgid "Amazon (US)" +msgstr "Amazon (Estados Unidos)" + +#: fetch/amazonfetcher.cpp:62 +msgid "Amazon (UK)" +msgstr "Amazon (Reino Unido)" + +#: fetch/amazonfetcher.cpp:65 +msgid "Amazon (Germany)" +msgstr "Amazon (Alemanha)" + +#: fetch/amazonfetcher.cpp:68 +msgid "Amazon (Japan)" +msgstr "Amazon (Jap?o)" + +#: fetch/amazonfetcher.cpp:71 +msgid "Amazon (France)" +msgstr "Amazon (Fran?a)" + +#: fetch/amazonfetcher.cpp:74 +msgid "Amazon (Canada)" +msgstr "Amazon (Canad?)" + +#: fetch/amazonfetcher.cpp:96 +msgid "Amazon.com Web Services" +msgstr "Servi?os Web da Amazon.com" + +#: fetch/amazonfetcher.cpp:513 +msgid "Results from %1: %2/%3" +msgstr "Resultados de %1 : %2/%3" + +#: fetch/amazonfetcher.cpp:537 fetch/z3950fetcher.cpp:425 +msgid "No entries were found for the following ISBN values:" +msgstr "Nenhuma entrada encontrada para os ISBN seguintes:" + +#: fetch/amazonfetcher.cpp:773 +msgid "Co&untry: " +msgstr "&Pa?s" + +#: fetch/amazonfetcher.cpp:777 +msgid "United States" +msgstr "Estados Unidos" + +#: fetch/amazonfetcher.cpp:778 +msgid "United Kingdom" +msgstr "Reino Unido" + +#: fetch/amazonfetcher.cpp:779 +msgid "Germany" +msgstr "Alemanha" + +#: fetch/amazonfetcher.cpp:780 +msgid "Japan" +msgstr "Jap?o" + +#: fetch/amazonfetcher.cpp:781 +msgid "France" +msgstr "Fran?a" + +#: fetch/amazonfetcher.cpp:782 +msgid "Canada" +msgstr "Canad?" + +#: fetch/amazonfetcher.cpp:786 +msgid "" +"Amazon.com provides data from several different localized sites. Choose the " +"one you wish to use for this data source." msgstr "" -"

...que se voc? quiser filtrar a partir de um campo do tipo Marcador,\n" -"um valor \"verdadeiro\" deve ser usado. Se quiser, por exemplo, mostrar\n" -"apenas os livros de fic??o cient?fica que ainda n?o leu, marque o " -"bot?o\n" -"Verificar todas as regras seguintes, ajuste a primeira regra\n" -"para \"G?nero\" cont?m\" \"Fic??o cient?fica\" (sem aspas) e a segunda " -"regra\n" -"para: \"Lido\" \"N?o cont?m\" \"Verdadeiro\" (sem aspas).

\n" +"Amazon.com disponibiliza dados de v?rios sites em diferentes " +"localiza??es. Escolha o que deseja utilizar como fonte de dados." -#: tips.cpp:33 +#: fetch/amazonfetcher.cpp:792 +msgid "&Image size: " +msgstr "&Tamanho da Imagem" + +#: fetch/amazonfetcher.cpp:796 +msgid "Small Image" +msgstr "Imagem Pequena" + +#: fetch/amazonfetcher.cpp:797 +msgid "Medium Image" +msgstr "Imagem M?dia" + +#: fetch/amazonfetcher.cpp:798 +msgid "Large Image" +msgstr "Imagem Grande" + +#: fetch/amazonfetcher.cpp:799 +msgid "No Image" +msgstr "Sem Imagem" + +#: fetch/amazonfetcher.cpp:802 fetch/imdbfetcher.cpp:1101 msgid "" -"

...that if a non-word character is used in the Quick Filter, the text is\n" -"interpreted as a regular expression.

\n" -"

To show only books which are by Weber or Bujold, for example, then\n" -"type \"weber|bujold\" (no quotes) in the filter box.

\n" +"The cover image may be downloaded as well. However, too many large images in " +"the collection may degrade performance." msgstr "" -"

...que se um caractere n?o alfab?tico for utilizado no Filtro R?pido, " -"o\n" -"o texto ? interpretado como uma express?o regular.

\n" -"

Para mostrar somente os livros de Weber ou Bujold, por exemplo,\n" -"escreva \"weber|bujold\" (sem aspas) no campo do filtro.

\n" +"A imagem da capa pode obtida da mesma forma. No entanto, imagens grandes na " +"cole??o podem degradar o desempenho." -#: tips.cpp:40 +#: fetch/amazonfetcher.cpp:808 +msgid "&Associate's ID: " +msgstr "Identidade &associada: " + +#: fetch/amazonfetcher.cpp:813 msgid "" -"

...that you can edit more than one entry at a time, by holding down\n" -"the Shift or Ctrl key and selecting multiple entries.

\n" +"The associate's id identifies the person accessing the Amazon.com Web " +"Services, and is included in any links to the Amazon.com site." msgstr "" -"

...que voc? pode editar mais de um registro de cada vez, segurando\n" -"a tecla Shift ou Ctrl e selecionando m?ltiplos registros.

\n" +"A identidade associada identifica a pessoa acessando os servi?os Web " +"Amazon.com, e ser? inclu?da em todos os links para o site Amazon.com." -#: tips.cpp:45 +#: fetch/z3950fetcher.cpp:78 fetch/z3950fetcher.cpp:756 +msgid "z39.50 Server" +msgstr "Servidor z39.50" + +#: fetch/z3950fetcher.cpp:495 +msgid "Use preset &server:" +msgstr "Usar &servidor pr?-definido" + +#: fetch/z3950fetcher.cpp:526 +msgid "&Database: " +msgstr "Base de &dados:" + +#: fetch/z3950fetcher.cpp:531 +msgid "Enter the database name used by the server." +msgstr "Insira o nome da base de dados utilizado pelo servidor." + +#: fetch/z3950fetcher.cpp:536 +msgid "Ch&aracter set: " +msgstr "Conjunto de c&aracteres: " + +#: fetch/z3950fetcher.cpp:545 msgid "" -"

...that you can convert an existing book collection to a bibliography,\n" -"which can then be exported to bibtex or Bibtexml format.

\n" +"Enter the character set encoding used by the z39.50 server. The most likely " +"choice is MARC-8, although ISO-8859-1 is common as well." msgstr "" -"

...que voc? pode converter uma cole??o de livros em bibliografia,\n" -"que pode ent?o ser exportada em formato BibTeX ou BibTeXML.

\n" +"Insira o conjunto de caracteres utilizado pelo servidor z39.50. A escolha " +"mais prov?vel ? MARC-8, apesar do ISO-8859-1 ser t?o comum quanto." -#: tips.cpp:50 +#: fetch/z3950fetcher.cpp:551 +msgid "&Format: " +msgstr "&Formato:" + +#: fetch/z3950fetcher.cpp:554 +msgid "Auto-detect" +msgstr "Detectar automaticamente" + +#: fetch/z3950fetcher.cpp:562 msgid "" -"

...that you can add, edit, and delete string macros for " -"bibliographies.

\n" +"Enter the data format used by the z39.50 server. Tellico will attempt to " +"automatically detect the best setting if auto-detect is selected." msgstr "" -"

...que voc? pode adicionar, editar e apagar linhas de macros\n" -"para bibliografias.

\n" +"Entre com o formato de dados utilizado pelo servidor z39.50. Tellico vai " +"tentar detectar a melhor configura??o se Detectar automaticamente " +"estiver selecionado." -#: tips.cpp:54 +#: fetch/z3950fetcher.cpp:568 +msgid "&User: " +msgstr "&Usu?rio:" + +#: fetch/z3950fetcher.cpp:571 fetch/z3950fetcher.cpp:583 +msgid "Optional" +msgstr "Opcional" + +#: fetch/z3950fetcher.cpp:574 msgid "" -"

...that if more than one field is formatted as a name, then an " -"additional\n" -"group named \"People\" is added to the collection, allowing authors and " -"editors\n" -"to be sorted or printed together, for example.

\n" +"Enter the authentication user name used by the z39.50 database. Most servers " +"do not need one." msgstr "" -"

...que se mais de um campo for formatado como nome, ent?o um grupo\n" -"adicional chamado \"Pessoas\" ? adicionado ? cole??o, permitindo que " -"autores e editores\n" -"sejam classificados ou impressos juntos, por exemplo.

\n" +"Insira o nome da base de dados utilizada pelo servidor z39.50. A maioria dos " +"servidores n?o precisam dele." -#: tips.cpp:60 +#: fetch/z3950fetcher.cpp:580 +msgid "Pass&word: " +msgstr "&Senha:" + +#: fetch/z3950fetcher.cpp:587 msgid "" -"

...that you can modify the appearance of the printed output by modifying\n" -"the tellico-printing.xsl file. The file generates HTML, and the " -"CSS\n" -"within the stylesheet governs things like the font, the margins, etc.

\n" +"Enter the authentication password used by the z39.50 database. Most servers " +"do not need one. The password will be saved in plain text in the Tellico " +"configuration file." msgstr "" -"

...que voc? pode modificar a apar?ncia da impress?o modificando o " -"arquivo\n" -"tellico-printing.xsl. O arquivo produz HTML, e o c?digo CSS na " -"p?gina\n" -" de estilo determina par?metros visuais como fontes, margens, etc.

\n" +"Insira a senha utilizada para a base de dados z39.50. A maior parte dos " +"servidores n?o precisam dela. A senha ser? salva em formato texto no " +"arquivo de configura??o do Tellico." -#: tips.cpp:66 +#: fetch/z3950fetcher.cpp:671 +msgid "Illustrator" +msgstr "Ilustrador" + +#: fetch/execexternalfetcher.cpp:82 +msgid "External Application" +msgstr "Aplicativo Externo" + +#: configdialog.cpp:355 fetch/execexternalfetcher.cpp:336 +#: translators/csvimporter.cpp:171 +msgid "Collection &type:" +msgstr "&Tipo de cole??o:" + +#: fetch/execexternalfetcher.cpp:341 +msgid "Set the collection type of the data returned from the external application." +msgstr "Especifique o tipo de cole??o dos dados retornados do aplicativo externo." + +#: fetch/execexternalfetcher.cpp:346 +msgid "&Result type: " +msgstr "Tipo de &Resultado:" + +#: fetch/execexternalfetcher.cpp:355 +msgid "Set the result type of the data returned from the external application." +msgstr "Especifique o tipo de resultado dos dados retornados do aplicativo externo." + +#: fetch/execexternalfetcher.cpp:360 +msgid "Application &path: " +msgstr "&Caminho do Aplicativo:" + +#: fetch/execexternalfetcher.cpp:365 msgid "" -"

...that you can import using any generic XSL stylesheet which\n" -"outputs a valid Tellico XML file.

\n" +"Set the path of the application to run that should output a valid Tellico " +"data file." msgstr "" -"

...que voc? pode importar dados usando uma folha de estilo XSL gen?rica " -"que\n" -"seja capaz de produzir um arquivo XML do Tellico v?lido.

\n" +"Especifique o caminho do aplicativo a ser executado que deve gerar um " +"arquivo de dados Tellico v?lido." -#: tips.cpp:71 -msgid "

...that double-clicking an entry item opens the Entry Editor.

\n" +#: fetch/execexternalfetcher.cpp:370 +msgid "Select the search keys supported by the data source." +msgstr "Selecione as chaves de procura suportadas pela fonte de dados." + +#: fetch/execexternalfetcher.cpp:371 +msgid "" +"Add any arguments that may be needed. %1 will be replaced by the " +"search term." msgstr "" -"

...que um duplo clique sobre um registro permite abrir o editor de " -"Registros.

\n" +"Adicione todos os argumentos necess?rios. %1 vai ser substitu?do " +"pelo termo a ser pesquisado." -#: tips.cpp:75 +#: fetch/execexternalfetcher.cpp:372 +msgid "Arguments" +msgstr "Argumentos" + +#: fetch/execexternalfetcher.cpp:405 newstuff/dialog.cpp:151 +msgid "Update" +msgstr "Atualizar" + +#: fetch/execexternalfetcher.cpp:412 msgid "" -"

...that you can add HTML tags to any Paragraph field for formatting, such " -"as\n" -"<b>bold</b> or <i>italic</i>.

\n" +"

Enter the arguments which should be used to search for available updates " +"to an entry.

The format is the same as for Dependent fields, " +"where field values are contained inside braces, such as %{author} See " +"the documentation for details.

" msgstr "" -"

...que voc? pode adicionar marcas HTML para formatar qualquer campo de " -"tipo Par?grafo, tais como\n" -"<b>bold</b> ou <i>italic</i>.

\n" +"

Forne?a os argumentos que devem ser usados para procurar por " +"atualiza??es dispon?veis para um registro.

O formato ? o mesmo dos " +"campos Dependentes, onde os valores dos campos s?o contidos entre " +"colchetes, como %{author} Veja a documenta??o para maiores " +"detalhes.

" -#: tips.cpp:80 +#: fetch/configwidget.cpp:29 +msgid "Source Options" +msgstr "Op??es da Fonte" + +#: fetch/configwidget.cpp:40 +msgid "Available Fields" +msgstr "Campos Dispon?veis" + +#: fetch/imdbfetcher.cpp:88 +msgid "Internet Movie Database" +msgstr "Base de dados de filmes na Internet" + +#: fetch/imdbfetcher.cpp:577 +msgid "Select IMDB Result" +msgstr "Selecione o resultado IMDB" + +#: fetch/imdbfetcher.cpp:580 +msgid "Your search returned multiple matches. Please select one below." +msgstr "" +"A sua pesquisa retornou v?rios resultados. Por favor selecione um dos " +"seguintes." + +#: fetch/imdbfetcher.cpp:595 +msgid "Select a search result." +msgstr "Selecione um resultado da pesquisa." + +#: fetch/imdbfetcher.cpp:687 fetch/imdbfetcher.cpp:1140 +msgid "IMDB Link" +msgstr "Link IMDB" + +#: fetch/animenfofetcher.cpp:259 fetch/imdbfetcher.cpp:742 +#: fetch/imdbfetcher.cpp:1142 +msgid "Alternative Titles" +msgstr "T?tulos alternativos" + +#: fetch/imdbfetcher.cpp:909 fetch/imdbfetcher.cpp:1141 +msgid "IMDB Rating" +msgstr "Classifica??o IMDB" + +#: fetch/imdbfetcher.cpp:1020 fetch/imdbfetcher.cpp:1143 +msgid "Certifications" +msgstr "Certifica??es" + +#: fetch/imdbfetcher.cpp:1081 msgid "" -"

...that in the Detailed View, you can press a letter on the\n" -"keyboard to skip to the next entry that starts with that letter.

\n" +"The Internet Movie Database uses several different servers. Choose the one " +"you wish to use." msgstr "" -"

...que na Vis?o Detalhada, voc? pode pressionar uma letra do teclado " -"para ir diretamente ao pr?ximo registro que come?a por esta letra.

\n" +"A base de dados de filmes na Internet (IMDB) utiliza v?rios servidores " +"diferentes. Escolha o que deseja utilizar." -#: _translatorinfo.cpp:1 +#: fetch/imdbfetcher.cpp:1087 +msgid "&Maximum cast: " +msgstr "Elenco &m?ximo:" + +#: fetch/imdbfetcher.cpp:1092 msgid "" -"_: NAME OF TRANSLATORS\n" -"Your names" -msgstr "Cl?udio Henrique Fortes F?lix" +"The list of cast members may include many people. Set the maximum number " +"returned from the search." +msgstr "" +"A lista de membros do elenco pode incluir muitas pessoas. Especifique o " +"n?mero m?ximo a ser retornado da pesquisa." -#: _translatorinfo.cpp:3 +#: fetch/imdbfetcher.cpp:1097 +msgid "Download cover &image" +msgstr "Efetuar o Download da &Imagem da Capa" + +#: fetch/ibsfetcher.cpp:45 +msgid "Internet Bookshop (ibs.it)" +msgstr "Internet Bookshop (ibs.it)" + +#: fetch/fetchmanager.cpp:63 +msgid "Person" +msgstr "Pessoa" + +#: fetch/fetchmanager.cpp:64 +msgid "ISBN" +msgstr "ISBN" + +#: fetch/fetchmanager.cpp:65 +msgid "UPC" +msgstr "UPC" + +#: fetch/fetchmanager.cpp:66 +msgid "Keyword" +msgstr "Palavra chave" + +#: fetch/fetchmanager.cpp:67 +msgid "Raw Query" +msgstr "Pesquisa n?o refinada" + +#: fetch/animenfofetcher.cpp:256 +msgid "Original Title" +msgstr "T?tulo Original" + +#: fetch/animenfofetcher.cpp:263 +msgid "Distributor" +msgstr "Distribuidor" + +#: fetch/animenfofetcher.cpp:269 +msgid "Episodes" +msgstr "Epis?dios" + +#: newstuff/dialog.cpp:93 +msgid "Get Hot New Stuff" +msgstr "Novidades Quentes" + +#: newstuff/dialog.cpp:113 +msgid "Version" +msgstr "Vers?o" + +#: newstuff/dialog.cpp:115 +msgid "Downloads" +msgstr "Downloads" + +#: newstuff/dialog.cpp:116 +msgid "Release Date" +msgstr "Data de Lan?amento" + +#: newstuff/dialog.cpp:120 msgid "" -"_: EMAIL OF TRANSLATORS\n" -"Your emails" -msgstr "claudio@helpo.com.br" +"This is a list of all the items available for download. Previously installed " +"items have a checkmark icon, while items with new version available have an " +"update icon" +msgstr "" +"Essa ? uma lista de todos os itens dispon?veis para download. Itens " +"previamente instalados s?o mostrados com um tique, enquanto itens que " +"tenham novas vers?es dispon?veis tem um ?cone de atualiza??o." -#: xslt.cpp:2 +#: newstuff/dialog.cpp:136 +msgid "The name and license of the selected item" +msgstr "O nome e a licen?a do item selecionado" + +#: newstuff/dialog.cpp:139 +msgid "The author of the selected item" +msgstr "O autor do item selecionado" + +#: newstuff/dialog.cpp:141 newstuff/dialog.cpp:395 +msgid "Install" +msgstr "Instalar" + +#: newstuff/dialog.cpp:160 +msgid "Download and install the selected template." +msgstr "Baixa e instala o modelo selecionado." + +#: newstuff/dialog.cpp:163 msgid "" -"_: Album XSL Template\n" -"Album" -msgstr "?lbum" +"Download and install the selected script. Some scripts may need to be " +"configured after being installed." +msgstr "" +"Baixa e instala o script selecionado. Alguns scripts podem precisar ser " +"configurados ap?s a instala??o." -#: xslt.cpp:3 -msgid "This template is meant for music collections only." -msgstr "Este modelo ? apenas para cole??es de m?sica" +#: newstuff/dialog.cpp:193 +msgid "A description of the selected item is shown here." +msgstr "Uma descri??o do item selecionado ? mostrada aqui." -#: translators/audiofileimporter.cpp:153 xslt.cpp:4 -msgid "(Various)" -msgstr "(V?rios)" +#: newstuff/dialog.cpp:223 +msgid "Downloading information..." +msgstr "Baixando informa??es..." -#: xslt.cpp:5 -msgid "Total:" -msgstr "Total:" +#: controller.cpp:131 fetchdialog.cpp:214 fetchdialog.cpp:292 +#: fetchdialog.cpp:360 fetchdialog.cpp:415 newstuff/dialog.cpp:296 +#: newstuff/dialog.cpp:323 newstuff/dialog.cpp:431 statusbar.cpp:82 +msgid "Ready." +msgstr "Pronto." -#: xslt.cpp:7 +#: newstuff/dialog.cpp:395 msgid "" -"_: Fancy XSL Template\n" -"Fancy" -msgstr "Sofisticado" +"_: Update Stuff\n" +"Update" +msgstr "Atualiza??o" -#: xslt.cpp:9 +#: newstuff/dialog.cpp:412 +msgid "Installing item..." +msgstr "Instalando item..." + +#: translators/bibteximporter.cpp:58 +#, c-format +msgid "No valid bibtex entries were found in file - %1" +msgstr "Nenhum registro v?lido do BibTeX encontrado no arquivo - %1" + +#: translators/alexandriaexporter.cpp:41 +msgid "Alexandria" +msgstr "Alexandria" + +#: translators/alexandriaexporter.cpp:63 msgid "" -"_: Default XSL Template\n" -"Default" -msgstr "Padr?o" +"An Alexandria library called %1 already exists. Any existing " +"books in that library could be overwritten." +msgstr "" +"Uma biblioteca do Alexandria chamada %1 j? existe. Quaisquer " +"livros existentes nesta biblioteca podem ser sobrescritos." -#: xslt.cpp:11 +#: filehandler.cpp:138 translators/tellicoimporter.cpp:106 +#: translators/xmlimporter.cpp:42 translators/xmlimporter.cpp:56 +msgid "There is an XML parsing error in line %1, column %2." +msgstr "H? um erro de an?lise XML na linha %1, coluna %2." + +#: filehandler.cpp:140 translators/tellicoimporter.cpp:108 +#: translators/xmlimporter.cpp:44 translators/xmlimporter.cpp:58 +msgid "The error message from Qt is:" +msgstr "A mensagem de erro do Qt ?:" + +#: translators/tellicoimporter.cpp:144 +msgid "It is from a future version of Tellico." +msgstr "Isto ? para uma futura vers?o do Tellico." + +#: translators/tellicoimporter.cpp:150 msgid "" -"_: Compact XSL Template\n" -"Compact" -msgstr "Compacto" +"Tellico is converting the file to a more recent document format. Information " +"loss may occur if an older version of Tellico is used to read this file in " +"the future." +msgstr "" +"Tellico est? convertendo o arquivo para um formato mais recente. Pode haver " +"perda de informa??es se este arquivo for lido no futuro por uma vers?o " +"antiga do Tellico." -#: xslt.cpp:13 +#: translators/bibtexhandler.cpp:244 translators/risimporter.cpp:263 +#: translators/risimporter.cpp:267 translators/tellicoimporter.cpp:328 +msgid "Unknown" +msgstr "Desconhecido" + +#: translators/tellicoimporter.cpp:706 +msgid "The file is empty." +msgstr "O arquivo est? vazio." + +#: translators/tellicoimporter.cpp:724 +msgid "The file contains no collection data." +msgstr "O arquivo n?o cont?m dados de cole??o." + +#: translators/tellicoimporter.cpp:868 +msgid "Unread Books" +msgstr "Livros N?o Lidos" + +#: translators/tellicoimporter.cpp:878 +msgid "Old Movies" +msgstr "Filmes Antigos" + +#: translators/tellicoimporter.cpp:896 +msgid "80's Music" +msgstr "M?sica dos anos 80" + +#: translators/tellicoimporter.cpp:908 +msgid "Favorites" +msgstr "Favoritos" + +#: translators/audiofileimporter.cpp:65 +msgid "Scanning audio files..." +msgstr "Procurando arquivos de ?udio..." + +#: translators/audiofileimporter.cpp:153 xslt.cpp:4 +msgid "(Various)" +msgstr "(V?rios)" + +#: translators/audiofileimporter.cpp:300 +msgid "Audio File Options" +msgstr "Op??es de Arquivo de ?udio" + +#: translators/audiofileimporter.cpp:302 +msgid "Recursive &folder search" +msgstr "Pesquisa recursiva de &pastas" + +#: translators/audiofileimporter.cpp:303 +msgid "If checked, folders are recursively searched for audio files." +msgstr "" +"Se selecionado, as pastas s?o varridas recursivamente para procurar " +"arquivos de ?udio." + +#: translators/audiofileimporter.cpp:307 +msgid "&Include file location" +msgstr "&Incluir localiza??o do arquivo" + +#: translators/audiofileimporter.cpp:308 +msgid "If checked, the file names for each track are added to the entries." +msgstr "" +"Se selecionado, os nomes dos arquivos de cada faixa ser?o adicionados aos " +"registros." + +#: translators/csvexporter.cpp:40 +msgid "CSV" +msgstr "CSV" + +#: importdialog.cpp:213 translators/csvexporter.cpp:44 +msgid "*.csv|CSV Files (*.csv)" +msgstr "*.csv|Arquivos CSV (*.csv)" + +#: configdialog.cpp:1005 importdialog.cpp:245 mainwindow.cpp:1055 +#: mainwindow.cpp:1213 reportdialog.cpp:195 translators/bibtexexporter.cpp:52 +#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44 +#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:87 +#: translators/onixexporter.cpp:66 translators/pilotdbexporter.cpp:47 +#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39 +#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:86 +msgid "*|All Files" +msgstr "*|Todos os Arquivos" + +#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:166 +msgid "CSV Options" +msgstr "Op??es CSV" + +#: translators/csvexporter.cpp:112 +msgid "Include field titles as column headers" +msgstr "Incluir os nomes dos campos como cabe?alho das colunas" + +#: translators/csvexporter.cpp:114 +msgid "If checked, a header row will be added with the field titles." +msgstr "" +"Se selecionada, uma linha de cabe?alho ser? adicionada com o nome dos " +"campos." + +#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:185 +msgid "Delimiter" +msgstr "Separador" + +#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:188 msgid "" -"_: Video XSL Template\n" -"Video" -msgstr "V?deo" +"In addition to a comma, other characters may be used as a delimiter, " +"separating each value in the file." +msgstr "" +"Al?m da v?rgula, outros caracteres podem ser utilizados para delimitar " +"cada valor no arquivo." -#: xslt.cpp:14 xslt.cpp:43 -msgid "This template is meant for video collections only." -msgstr "Este modelo ? apenas para cole??es de v?deo" +#: translators/csvexporter.cpp:124 +msgid "Comma" +msgstr "V?rgula" -#: xslt.cpp:16 +#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:195 +msgid "Use a comma as the delimiter." +msgstr "Utilizar a v?rgula como separador." + +#: translators/csvexporter.cpp:130 +msgid "Semicolon" +msgstr "Ponto e v?rgula" + +#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:200 +msgid "Use a semi-colon as the delimiter." +msgstr "Utilizar o ponto e v?rgula como separador." + +#: translators/csvexporter.cpp:135 +msgid "Tab" +msgstr "Aba" + +#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:205 +msgid "Use a tab as the delimiter." +msgstr "Utilizar a tabula??o como separador." + +#: translators/csvexporter.cpp:140 +msgid "Other" +msgstr "Outro" + +#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:210 +msgid "Use a custom string as the delimiter." +msgstr "Utilizar um outro caractere como separador." + +#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:216 +msgid "A custom string, such as a colon, may be used as a delimiter." +msgstr "" +"Um caractere qualquer, como os dois pontos, pode ser utilizado como " +"separador." + +#: translators/filelistingimporter.cpp:62 +msgid "Scanning files..." +msgstr "Varrendo arquivos..." + +#: translators/filelistingimporter.cpp:197 +msgid "File Listing Options" +msgstr "Op??es de Listagem de Arquivo" + +#: translators/filelistingimporter.cpp:199 +msgid "Recursive folder search" +msgstr "Procura recursiva de pastas" + +#: translators/filelistingimporter.cpp:200 +msgid "If checked, folders are recursively searched for all files." +msgstr "" +"Se selecionado, as pastas s?o varridas recursivamente para procurar todos " +"os arquivos." + +#: translators/filelistingimporter.cpp:204 +msgid "Generate file previews" +msgstr "Gerar pr?-visualiza??es dos arquivos" + +#: translators/filelistingimporter.cpp:205 msgid "" -"_: Image List XSL Template\n" -"Image List" -msgstr "Lista de Imagens" +"If checked, previews of the file contents are generated, which can slow down " +"the folder listing." +msgstr "" +"Se selecionado, ser?o geradas pr?-visualiza??es do conte?do dos " +"arquivos, o que pode causar lentid?o na listagem das pastas." -#: xslt.cpp:18 +#: translators/onixexporter.cpp:62 +msgid "ONIX Archive" +msgstr "Arquivo ONIX" + +#: translators/onixexporter.cpp:66 +msgid "*.zip|Zip Files (*.zip)" +msgstr "*.zip|Arquivos Zip (*.zip)" + +#: translators/onixexporter.cpp:175 +msgid "ONIX Archive Options" +msgstr "Op??es de Arquivo ONIX" + +#: translators/onixexporter.cpp:178 +msgid "Include images in archive" +msgstr "Incluir as imagens no arquivo" + +#: translators/onixexporter.cpp:180 msgid "" -"_: Loan View XSL Template\n" -"Loan View" -msgstr "Vis?o de Empr?stimos" +"If checked, the images in the document will be included in the zipped ONIX " +"archive." +msgstr "" +"Se selecionado, as imagens do documento ser?o inclu?das no arquivo zipado " +"ONIX." -#: loanview.cpp:32 loanview.cpp:90 xslt.cpp:19 -msgid "Borrower" -msgstr "Pessoa que pegou emprestado" +#: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:137 +msgid "Tellico was unable to access the CD-ROM device - %1." +msgstr "Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." -#: xslt.cpp:20 xslt.cpp:22 -msgid "Loan Date" -msgstr "Data de Empr?stimo" +#: translators/freedbimporter.cpp:163 +msgid "Select CDDB Entry" +msgstr "Seleciona Registro CDDB" -#: xslt.cpp:21 xslt.cpp:24 -msgid "Note" -msgstr "Observa??o" +#: translators/freedbimporter.cpp:164 +msgid "Select a CDDB entry:" +msgstr "Selecione um registro do CDDB:" -#: xslt.cpp:23 -msgid "Due Date" -msgstr "Data para Devolu??o" +#: translators/freedbimporter.cpp:187 +msgid "No records were found to match the CD." +msgstr "Nenhum registro correspondente ao CD foi encontrado." -#: xslt.cpp:25 xslt.cpp:39 xslt.cpp:46 -msgid "Generated by Tellico" -msgstr "Gerado por Tellico" +#: translators/freedbimporter.cpp:205 +msgid "Tellico was unable to complete the CD lookup." +msgstr "Tellico n?o p?de completar a pesquisa das informa??es do CD." -#: xslt.cpp:27 -msgid "" -"_: Title Listing (Horizontal) XSL Template\n" -"Title Listing (Horizontal)" -msgstr "Listagem de T?tulos (Horizontal)" +#: translators/freedbimporter.cpp:428 +msgid "Various" +msgstr "V?rios" -#: xslt.cpp:29 +#: translators/freedbimporter.cpp:447 +msgid "Audio CD Options" +msgstr "Op??es de CD de ?udio" + +#: translators/freedbimporter.cpp:451 +msgid "Read data from CD-ROM device" +msgstr "Ler dados do dispositivo de CD-ROM" + +#: translators/freedbimporter.cpp:454 +msgid "Select or input the CD-ROM device location." +msgstr "Selecione ou informe a localiza??o do dispositivo de CD-ROM." + +#: translators/freedbimporter.cpp:460 +msgid "Read all CDDB cache files only" +msgstr "Ler apenas os arquivos de cache do CDDB" + +#: translators/freedbimporter.cpp:461 msgid "" -"_: Title Listing (Vertical) XSL Template\n" -"Title Listing (Vertical)" -msgstr "Listagem de T?tulos (Vertical)" +"Read data recursively from all the CDDB cache files contained in the default " +"cache folders." +msgstr "" +"Ler recursivamente os dados de todos os arquivos de cache do CDDB contidos " +"nas pastas de cache padr?o." -#: xslt.cpp:31 +#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:37 +msgid "GCfilms" +msgstr "GCfilms " + +#: importdialog.cpp:230 translators/gcfilmsexporter.cpp:41 +msgid "*.gcf|GCfilms Data Files (*.gcf)" +msgstr "*.gcf|Arquivos de Dados GCfilms (*.gcf) " + +#: translators/xsltexporter.cpp:37 +msgid "XSLT" +msgstr "XSLT" + +#: translators/xsltexporter.cpp:69 translators/xsltimporter.cpp:79 +msgid "XSLT Options" +msgstr "Op??es de XSLT" + +#: translators/xsltexporter.cpp:74 translators/xsltimporter.cpp:82 +msgid "XSLT file:" +msgstr "Arquivo XSLT:" + +#: translators/xsltexporter.cpp:76 +msgid "Choose the XSLT file used to transform the Tellico XML data." +msgstr "Escolher o arquivo XSLT para transformar os dados XML do Tellico." + +#: translators/alexandriaimporter.cpp:178 +msgid "Alexandria Options" +msgstr "Op??es do Alexandria" + +#: translators/alexandriaimporter.cpp:179 +msgid "&Library:" +msgstr "&Biblioteca:" + +#: importdialog.cpp:268 translators/bibtexmlexporter.cpp:36 +msgid "Bibtexml" +msgstr "BibTeXML " + +#: translators/bibtexmlexporter.cpp:40 +msgid "*.xml|Bibtexml Files (*.xml)" +msgstr "*.xml|Arquivos BibTeXML (*.xml)" + +#: translators/tellicoxmlexporter.cpp:56 +msgid "XML" +msgstr "XML" + +#: importdialog.cpp:205 importdialog.cpp:218 importdialog.cpp:222 +#: mainwindow.cpp:1053 translators/tellicoxmlexporter.cpp:60 +msgid "*.xml|XML Files (*.xml)" +msgstr "*.xml|Arquivos XML (*.xml)" + +#: translators/tellicoxmlexporter.cpp:464 +msgid "Tellico XML Options" +msgstr "Op??es XML do Tellico" + +#: translators/tellicoxmlexporter.cpp:467 +msgid "Include images in XML document" +msgstr "Incluir as imagens no documento XML" + +#: translators/tellicoxmlexporter.cpp:469 msgid "" -"_: Group View XSL Template\n" -"Group View" -msgstr "Vis?o de Grupos" +"If checked, the images in the document will be included in the XML stream as " +"base64 encoded elements." +msgstr "" +"Se selecionado, as imagens do documento ser?o integradas aos dados em XML " +"como elementos codificados em base64." -#: xslt.cpp:33 +#: translators/importer.h:90 +msgid "Loading data..." +msgstr "Carregando dados..." + +#: translators/importer.h:90 +msgid "Loading %1..." +msgstr "Carregando %1..." + +#: importdialog.cpp:267 translators/bibtexexporter.cpp:48 +msgid "Bibtex" +msgstr "BibTeX" + +#: importdialog.cpp:209 translators/bibtexexporter.cpp:52 +msgid "*.bib|Bibtex Files (*.bib)" +msgstr "*.bib|Arquivos BibTeX (*.bib)" + +#: translators/bibtexexporter.cpp:201 +msgid "Bibtex Options" +msgstr "Op??es do BibTeX" + +#: translators/bibtexexporter.cpp:204 +msgid "Expand string macros" +msgstr "Expandir as macros de string" + +#: translators/bibtexexporter.cpp:206 msgid "" -"_: Column View XSL Template\n" -"Column View" -msgstr "Vis?o de Colunas" +"If checked, the string macros will be expanded and no @string{} entries will " +"be written." +msgstr "" +"Se selecionado, as macros de string v?o ser expandidas e nenhum registro " +"@string{} ser? escrito." -#: xslt.cpp:35 +#: translators/bibtexexporter.cpp:209 +msgid "Use URL package" +msgstr "Utilizar o pacote URL" + +#: translators/bibtexexporter.cpp:211 +msgid "If checked, any URL fields will be wrapped in a \\url declaration." +msgstr "" +"Se selecionado, qualquer campo URL ser? transformado em uma declara??o " +"\\url." + +#: translators/bibtexexporter.cpp:214 +msgid "Skip entries with empty citation keys" +msgstr "Ignorar os registros com chaves de cita??o vazias" + +#: translators/bibtexexporter.cpp:216 +msgid "If checked, any entries without a bibtex citation key will be skipped." +msgstr "" +"Se selecionado, qualquer registro sem uma chave de cita??o do BibTeX ser? " +"ignorado." + +#: translators/bibtexexporter.cpp:220 +msgid "Bibtex quotation style:" +msgstr "Estilo das cita??es do BibTeX:" + +#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:229 +#: translators/bibtexexporter.cpp:260 +msgid "Braces" +msgstr "Colchetes" + +#: translators/bibtexexporter.cpp:223 translators/bibtexexporter.cpp:231 +msgid "Quotes" +msgstr "Aspas" + +#: translators/bibtexexporter.cpp:224 msgid "" -"_: Group Summary XSL Template\n" -"Group Summary" -msgstr "Resumo de Grupos" +"The quotation style used when exporting bibtex. All field values will " +"be escaped with either braces or quotation marks." +msgstr "" +"Estilo de cita??o utilizado para arquivos no formato BibTeX. Os " +"valores de todos os campos ser?o envolvidos por colchetes ou aspas." -#: xslt.cpp:36 -msgid ": Group Summary" -msgstr ": Resumo de Grupos" +#: translators/tellicozipexporter.cpp:35 +msgid "Tellico Zip File" +msgstr "Arquivo Zip Tellico" -#: xslt.cpp:37 -msgid "Total number of fields:" -msgstr "N?mero total de campos:" +#: importdialog.cpp:204 mainwindow.cpp:1051 mainwindow.cpp:1211 +#: translators/tellicozipexporter.cpp:39 +msgid "*.tc *.bc|Tellico Files (*.tc)" +msgstr "*.tc *.bc|Arquivos Tellico (*.tc)" -#: xslt.cpp:38 -msgid "Total number of entries:" -msgstr "N?mero total de registros:" +#: translators/csvimporter.cpp:174 +msgid "Select the type of collection being imported." +msgstr "Selecionar o tipo de cole??o a importar." -#: xslt.cpp:40 -msgid "Distinct values: " -msgstr "Valores Distintos:" +#: translators/csvimporter.cpp:180 +msgid "&First row contains field titles" +msgstr "A &primeira linha cont?m os t?tulos dos campos" -#: xslt.cpp:42 +#: translators/csvimporter.cpp:181 +msgid "If checked, the first row is used as field titles." +msgstr "Se selecionado, a primeira linha ser? utilizada para o nome dos campos." + +#: translators/csvimporter.cpp:193 +msgid "&Comma" +msgstr "&V?rgula" + +#: translators/csvimporter.cpp:199 +msgid "&Semicolon" +msgstr "&Ponto e v?rgula" + +#: translators/csvimporter.cpp:204 +msgid "Ta&b" +msgstr "Ta&bula??o" + +#: translators/csvimporter.cpp:209 +msgid "Ot&her:" +msgstr "Out&ro" + +#: translators/csvimporter.cpp:233 +msgid "The table shows up to the first five lines of the CSV file." +msgstr "A tabela mostra as cinco primeiras linhas do arquivo CSV." + +#: translators/csvimporter.cpp:240 msgid "" -"_: Tri-Column XSL Template\n" -"Tri-Column" -msgstr "Tripla Coluna" +"Set each column to correspond to a field in the collection by choosing a " +"column, selecting the field, then clicking the Assign Field " +"button." +msgstr "" +" Marque cada coluna para corresponder a um campo na cole??o escolhendo " +"uma coluna, selecionando o campo e clicando no bot?o Associar Campo " -#: xslt.cpp:44 -msgid "Search" -msgstr "Procura" +#: translators/csvimporter.cpp:242 +msgid "Co&lumn:" +msgstr "Co&luna:" -#: fetch/srufetcher.cpp:334 z3950.cpp:2 -msgid "Library of Congress (US)" -msgstr "Biblioteca do Congresso (Estados Unidos)" +#: translators/csvimporter.cpp:251 +msgid "&Data field in this column:" +msgstr "Campo de &dados nesta coluna:" -#: z3950.cpp:4 -msgid "The British Library" -msgstr "A Biblioteca Brit?nica" +#: translators/csvimporter.cpp:259 +msgid "&Assign Field" +msgstr "&Associar Campo" -#: z3950.cpp:6 -msgid "Sudoc (France)" -msgstr "Sudoc (Fran?a)" +#: collectionfieldsdialog.cpp:394 collectionfieldsdialog.cpp:397 +#: translators/csvimporter.cpp:410 translators/csvimporter.cpp:513 +msgid "New Field" +msgstr "Novo campo" -#: z3950.cpp:8 -msgid "BIBSYS (Norway)" -msgstr "BIBSYS (Noruega)" +#: translators/risimporter.cpp:265 +msgid "PDF" +msgstr "PDF" -#: z3950.cpp:10 -msgid "Italian National Library" -msgstr "Biblioteca Nacional Italiana" +#: translators/pilotdbexporter.cpp:43 +msgid "PilotDB" +msgstr "PilotDB" -#: z3950.cpp:12 -msgid "Portuguese National Library" -msgstr "Biblioteca Nacional Portuguesa" +#: translators/pilotdbexporter.cpp:47 +msgid "*.pdb|Pilot Database Files(*.pdb)" +msgstr "*.pdb|Arquivos Pilot Database (*.pdb)" -#: z3950.cpp:14 -msgid "National Library of Poland" -msgstr "Biblioteca Nacional da Pol?nia" +#: detailedlistview.cpp:67 detailedlistview.cpp:296 +#: translators/pilotdbexporter.cpp:143 +msgid "View Columns" +msgstr "Ver Colunas" -#: z3950.cpp:16 -msgid "National Library of Canada" -msgstr "Biblioteca Nacional do Canad?" +#: translators/pilotdbexporter.cpp:210 +msgid "PilotDB Options" +msgstr "Op??es do PilotDB" -#: z3950.cpp:18 -msgid "Israel Union List" -msgstr "Lista Unida de Israel" +#: translators/pilotdbexporter.cpp:213 translators/pilotdbexporter.cpp:215 +msgid "Set PDA backup flag for database" +msgstr "Marcar a op??o PDA backup para a base de dados" -#: z3950.cpp:20 -msgid "National Library of Australia" -msgstr "Biblioteca Nacional da Austr?lia" +#: translators/gcfilmsimporter.cpp:85 +msgid "The file is not a valid GCfilms data file." +msgstr "O arquivo n?o ? um arquivo de dados GCfilms v?lido" -#: z3950.cpp:22 -#, fuzzy -msgid "National Library of Lithuania" -msgstr "Biblioteca Nacional do Canad?" +#: translators/xsltimporter.cpp:45 translators/xsltimporter.cpp:51 +msgid "A valid XSLT file is needed to import the file." +msgstr "Um arquivo XSLT v?lido ? necess?rio para importar o arquivo." -#: scripts.cpp:2 -msgid "BoardGameGeek" +#: mainwindow.cpp:1696 translators/xsltimporter.cpp:57 +msgid "Tellico encountered an error in XSLT processing." +msgstr "Tellico encontrou um erro no processamento do XSLT." + +#: configdialog.cpp:1003 translators/xsltimporter.cpp:85 +msgid "*.xsl|XSL Files (*.xsl)" +msgstr "*.xsl|Arquivos XSL (*.xsl)" + +#: translators/htmlexporter.cpp:83 +msgid "HTML" +msgstr "HTML" + +#: reportdialog.cpp:195 translators/htmlexporter.cpp:87 +msgid "*.html|HTML Files (*.html)" +msgstr "*.html|Arquivos HTML (*.html)" + +#: groupview.cpp:463 mainwindow.cpp:1549 mainwindow.cpp:1589 +#: translators/htmlexporter.cpp:314 +msgid "People" +msgstr "Pessoas" + +#: translators/htmlexporter.cpp:318 +msgid "(grouped by %1)" +msgstr "(Agrupados por %1)" + +#: translators/htmlexporter.cpp:463 +msgid "HTML Options" +msgstr "Op??es HTML" + +#: translators/htmlexporter.cpp:466 +msgid "Print field headers" +msgstr "Imprimir os cabe?alhos dos campos" + +#: configdialog.cpp:299 translators/htmlexporter.cpp:467 +msgid "If checked, the field names will be printed as table headers." +msgstr "Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." + +#: translators/htmlexporter.cpp:471 +msgid "Group the entries" +msgstr "Agrupar os registros" + +#: configdialog.cpp:306 translators/htmlexporter.cpp:472 +msgid "If checked, the entries will be grouped by the selected field." msgstr "" +"Se selecionado, os registros ser?o agrupados em fun??o do campo " +"selecionado." -#: scripts.cpp:4 -msgid "Dark Horse Comics" -msgstr "Quadrinhos Dark Horse" +#: translators/htmlexporter.cpp:476 +msgid "Export individual entry files" +msgstr "Exporta arquivos de registros isolados" -#: scripts.cpp:6 -msgid "Allocine.fr" -msgstr "Allocine.fr" +#: translators/htmlexporter.cpp:477 +msgid "If checked, individual files will be created for each entry." +msgstr "Se selecionado, ser?o criados arquivos individuais para cada registro." -#: scripts.cpp:8 -msgid "Spanish Ministry of Culture" -msgstr "Minist?rio da Cultura da Espanha" +#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49 +msgid "Data Source Properties" +msgstr "Propriedades da Fonte de Dados" +#: fetcherconfigdialog.cpp:77 +msgid "&Source name: " +msgstr "Nome da &fonte: " + +#: fetcherconfigdialog.cpp:79 +msgid "The name identifies the data source and should be unique and informative." +msgstr "O nome identifica a fonte de dados, devendo ser ?nico e informativo." + +#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94 +msgid "Source &type: " +msgstr "&Tipo de fonte: " + +#: fetcherconfigdialog.cpp:97 +msgid "Tellico supports several different data sources." +msgstr "Tellico suporta v?rias fontes de dados diferentes." + +#: fetcherconfigdialog.cpp:111 +msgid "Updating from source should overwrite user data" +msgstr "" +"A atualiza??o a partir de uma fonte sobrescrever? dados preenchidos pelo " +"usu?rio" + +#: fetcherconfigdialog.cpp:114 +msgid "If checked, updating entries will overwrite any existing information." +msgstr "" +"Se selecionado, a atualiza??o dos registros sobrescrever? toda " +"informa??o existente." + #: filterdialog.cpp:60 msgid "Any Field" msgstr "Qualquer campo" @@ -410,10 +2344,6 @@ msgid "Advanced Filter" msgstr "Filtro Avan?ado " -#: commands/filtercommand.cpp:100 filterdialog.cpp:282 filterview.cpp:67 -msgid "Modify Filter" -msgstr "Modifica Filtro " - #: filterdialog.cpp:294 msgid "Filter Criteria" msgstr "Crit?rios de Filtragem" @@ -434,20 +2364,6 @@ msgid "&Save Filter" msgstr "&Salvar Filtro " -#: collectionfactory.cpp:81 collections/bibtexcollection.cpp:24 -#: collections/bibtexcollection.cpp:58 collections/bibtexcollection.cpp:88 -#: collections/boardgamecollection.cpp:19 collections/bookcollection.cpp:19 -#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:19 -#: collections/coincollection.cpp:19 collections/comicbookcollection.cpp:19 -#: collections/filecatalog.cpp:19 collections/gamecollection.cpp:19 -#: collections/musiccollection.cpp:19 collections/stampcollection.cpp:19 -#: collections/videocollection.cpp:19 collections/videocollection.cpp:40 -#: collections/winecollection.cpp:19 configdialog.cpp:191 -#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:910 field.cpp:39 -#: field.cpp:71 translators/gcfilmsimporter.cpp:54 -msgid "General" -msgstr "Geral " - #: field.cpp:425 msgid "Simple Text" msgstr "Texto Simples " @@ -464,24 +2380,10 @@ msgid "Checkbox" msgstr "Marcador " -#: collections/bibtexcollection.cpp:172 field.cpp:429 -msgid "Number" -msgstr "N?mero " - -#: collections/filecatalog.cpp:41 fetch/entrezfetcher.cpp:395 -#: fetch/entrezfetcher.cpp:464 field.cpp:430 -#: translators/gcfilmsimporter.cpp:53 translators/risimporter.cpp:261 -msgid "URL" -msgstr "URL" - #: field.cpp:431 msgid "Table" msgstr "Tabela" -#: collections/stampcollection.cpp:123 field.cpp:432 -msgid "Image" -msgstr "Imagem " - #: field.cpp:433 msgid "Dependent" msgstr "Dependente " @@ -490,12 +2392,35 @@ msgid "Date" msgstr "Data " -#: collections/boardgamecollection.cpp:84 collections/bookcollection.cpp:157 -#: collections/musiccollection.cpp:81 collections/winecollection.cpp:102 -#: field.cpp:436 newstuff/dialog.cpp:114 -msgid "Rating" -msgstr "Classifica??o " +#: entryupdater.cpp:82 +msgid "Updating %1..." +msgstr "Carregando %1..." +#: entryupdater.cpp:84 +msgid "Updating entries..." +msgstr "Atualizando registros..." + +#: entryupdater.cpp:86 +msgid "Update Entries" +msgstr "Atualizar Registros" + +#: entryupdater.cpp:100 +msgid "Updating %1..." +msgstr "Atualizando %1..." + +#: entryupdater.cpp:210 +msgid "Select Match" +msgstr "Selecionar Correspond?ncia" + +#: entryupdater.cpp:218 +msgid "" +"%1 returned multiple results which could match %2, the " +"entry currently in the collection. Please select the correct match." +msgstr "" +"%1 foram retornados m?ltiplos resultados que correspondem a " +"%2, que ? o registro corrente na cole??o. Por favor selecione o " +"resultado desejado." + #: groupview.cpp:250 msgid "Expand All Groups" msgstr "Mostrar Todos os Grupos" @@ -518,11 +2443,6 @@ "Group" msgstr "Grupo" -#: groupview.cpp:463 mainwindow.cpp:1557 mainwindow.cpp:1597 -#: translators/htmlexporter.cpp:314 -msgid "People" -msgstr "Pessoas" - #: importdialog.cpp:50 importdialog.cpp:56 msgid "Import Options" msgstr "Op??es de Importa??o" @@ -561,152 +2481,26 @@ "poss?vel se as cole??es forem do mesmo tipo. Os registros devem ser " "exatamente do mesmo tipo para que possam ser combinados." -#: importdialog.cpp:91 mainwindow.cpp:324 rc.cpp:3 -msgid "&Import" -msgstr "&Importar " - -#: importdialog.cpp:208 mainwindow.cpp:1059 mainwindow.cpp:1219 -#: translators/tellicozipexporter.cpp:39 -msgid "*.tc *.bc|Tellico Files (*.tc)" -msgstr "*.tc *.bc|Arquivos Tellico (*.tc)" - -#: importdialog.cpp:209 importdialog.cpp:222 importdialog.cpp:226 -#: mainwindow.cpp:1061 translators/tellicoxmlexporter.cpp:60 -msgid "*.xml|XML Files (*.xml)" -msgstr "*.xml|Arquivos XML (*.xml)" - -#: importdialog.cpp:213 translators/bibtexexporter.cpp:52 -msgid "*.bib|Bibtex Files (*.bib)" -msgstr "*.bib|Arquivos BibTeX (*.bib)" - -#: importdialog.cpp:217 translators/csvexporter.cpp:44 -msgid "*.csv|CSV Files (*.csv)" -msgstr "*.csv|Arquivos CSV (*.csv)" - -#: importdialog.cpp:230 +#: importdialog.cpp:226 msgid "*.ris|RIS Files (*.ris)" msgstr "*.ris|Arquivos RIS (*.ris)" -#: importdialog.cpp:234 translators/gcfilmsexporter.cpp:41 -msgid "*.gcf|GCfilms Data Files (*.gcf)" -msgstr "*.gcf|Arquivos de Dados GCfilms (*.gcf) " - -#: importdialog.cpp:238 +#: importdialog.cpp:234 msgid "*.amc|AMC Data Files (*.amc)" msgstr "*.amc|Arquivos de Dados AMC (*.amc) " -#: configdialog.cpp:1005 importdialog.cpp:249 mainwindow.cpp:1063 -#: mainwindow.cpp:1221 reportdialog.cpp:195 translators/bibtexexporter.cpp:52 -#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44 -#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:87 -#: translators/onixexporter.cpp:66 translators/pilotdbexporter.cpp:47 -#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39 -#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:86 -msgid "*|All Files" -msgstr "*|Todos os Arquivos" - -#: importdialog.cpp:271 translators/bibtexexporter.cpp:48 -msgid "Bibtex" -msgstr "BibTeX" - -#: importdialog.cpp:272 translators/bibtexmlexporter.cpp:36 -msgid "Bibtexml" -msgstr "BibTeXML " - -#: importdialog.cpp:274 +#: importdialog.cpp:270 msgid "MODS" msgstr "MODS" -#: importdialog.cpp:275 +#: importdialog.cpp:271 msgid "RIS" msgstr "RIS " -#: importdialog.cpp:276 translators/gcfilmsexporter.cpp:37 -msgid "GCfilms" -msgstr "GCfilms " - -#: importdialog.cpp:277 +#: importdialog.cpp:273 msgid "AMC" msgstr "AMC" -#: detailedlistview.cpp:67 detailedlistview.cpp:296 -#: translators/pilotdbexporter.cpp:143 -msgid "View Columns" -msgstr "Ver Colunas" - -#: gui/tablefieldwidget.cpp:180 -msgid "Rename Column" -msgstr "Renomear Coluna" - -#: gui/tablefieldwidget.cpp:180 -msgid "New column name:" -msgstr "Novo nome da coluna:" - -#: gui/tablefieldwidget.cpp:205 -#, c-format -msgid "Column %1" -msgstr "Coluna %1" - -#: gui/tablefieldwidget.cpp:240 gui/tablefieldwidget.cpp:288 -msgid "Rename Column..." -msgstr "Renomear Coluna..." - -#: gui/tablefieldwidget.cpp:273 -msgid "Insert Row" -msgstr "Inserir Linha " - -#: gui/tablefieldwidget.cpp:275 -msgid "Remove Row" -msgstr "Remover Linha " - -#: gui/tablefieldwidget.cpp:277 -msgid "Move Row Up" -msgstr "Mover Linha para Cima" - -#: gui/tablefieldwidget.cpp:282 -msgid "Move Row Down" -msgstr "Mover Linha para Baixo" - -#: gui/tablefieldwidget.cpp:294 -msgid "Clear Table" -msgstr "Limpar Tabela" - -#: gui/stringmapdialog.cpp:57 -msgid "&Set" -msgstr "&Definir" - -#: gui/fieldwidget.cpp:102 gui/fieldwidget.cpp:196 -msgid "" -"_: Edit Label\n" -"%1:" -msgstr "%1:" - -#: gui/kwidgetlister.cpp:58 -msgid "" -"_: more widgets\n" -"More" -msgstr "Mais" - -#: gui/kwidgetlister.cpp:62 -msgid "" -"_: fewer widgets\n" -"Fewer" -msgstr "Menos" - -#: gui/kwidgetlister.cpp:69 -msgid "" -"_: clear widgets\n" -"Clear" -msgstr "Limpar" - -#: gui/imagewidget.cpp:52 -msgid "Select Image..." -msgstr "Selecionar Imagem..." - -#: gui/previewdialog.cpp:27 -msgid "Template Preview" -msgstr "Vis?o de Modelos" - #: tellico_strings.cpp:18 #, c-format msgid "Tellico is unable to load the file - %1." @@ -747,10 +2541,6 @@ msgid "Loan Dialog" msgstr "Di?logo de Empr?stimo" -#: commands/modifyloans.cpp:75 loandialog.cpp:46 -msgid "Modify Loan" -msgstr "Modificar Empr?stimo " - #: loandialog.cpp:78 msgid "The following items are being checked out:" msgstr "Os seguintes itens est?o registrados para sa?da:" @@ -818,10 +2608,6 @@ "calend?rio ativo, podendo ser acessado pelo KOrganizer. Este marcador ser? " "habilitado somente se voc? especificar uma data para devolu??o." -#: collections/bookcollection.cpp:136 mainwindow.cpp:191 -msgid "New" -msgstr "Novo " - #: mainwindow.cpp:194 msgid "Create a new collection" msgstr "Cria uma nova cole??o " @@ -907,484 +2693,478 @@ msgstr "Cria uma nova cole??o de jogos " #: mainwindow.cpp:278 -#, fuzzy -msgid "New Boa&rd Game Collection" -msgstr "Nova Cole??o de &Jogos" - -#: mainwindow.cpp:280 -#, fuzzy -msgid "Create a new board game collection" -msgstr "Cria uma nova cole??o de jogos " - -#: mainwindow.cpp:286 msgid "New &File Catalog" msgstr "Novo Cat?logo de &Arquivos" -#: mainwindow.cpp:288 +#: mainwindow.cpp:280 msgid "Create a new file catalog" msgstr "Cria um novo cat?logo de arquivos " -#: mainwindow.cpp:294 +#: mainwindow.cpp:286 msgid "New C&ustom Collection" msgstr "Nova Cole??o &Personalizada" -#: mainwindow.cpp:296 +#: mainwindow.cpp:288 msgid "Create a new custom collection" msgstr "Cria uma nova cole??o personalizada " -#: mainwindow.cpp:305 +#: mainwindow.cpp:297 msgid "Open an existing document" msgstr "Abre um documento existente" -#: mainwindow.cpp:307 +#: mainwindow.cpp:299 msgid "Open a recently used file" msgstr "Abre um arquivo usado recentemente" -#: mainwindow.cpp:309 +#: mainwindow.cpp:301 msgid "Save the document" msgstr "Salva o documento" -#: mainwindow.cpp:311 +#: mainwindow.cpp:303 msgid "Save the document as a different file..." msgstr "Salva o documento como um novo arquivo" -#: mainwindow.cpp:313 +#: mainwindow.cpp:305 msgid "Print the contents of the document..." msgstr "Imprime os dados do documento" -#: mainwindow.cpp:315 +#: mainwindow.cpp:307 msgid "Quit the application" msgstr "Sai do aplicativo" -#: mainwindow.cpp:326 +#: mainwindow.cpp:316 rc.cpp:3 +msgid "&Import" +msgstr "&Importar " + +#: mainwindow.cpp:318 msgid "Import collection data from other formats" msgstr "Importa dados a partir de outros formatos" -#: mainwindow.cpp:330 +#: mainwindow.cpp:322 msgid "Import Tellico Data..." msgstr "Importar Dados do Tellico..." -#: mainwindow.cpp:331 +#: mainwindow.cpp:323 msgid "Import another Tellico data file" msgstr "Importa outro arquivo de dados do Tellico " -#: mainwindow.cpp:337 +#: mainwindow.cpp:329 msgid "Import CSV Data..." msgstr "Importar Dados CSV... " -#: mainwindow.cpp:338 +#: mainwindow.cpp:330 msgid "Import a CSV file" msgstr "Importa um arquivo de valores separados por v?rgula" -#: mainwindow.cpp:344 +#: mainwindow.cpp:336 msgid "Import MODS Data..." msgstr "Importar Dados do MODS..." -#: mainwindow.cpp:345 +#: mainwindow.cpp:337 msgid "Import a MODS data file" msgstr "Importa um arquivo do MODS" -#: mainwindow.cpp:351 +#: mainwindow.cpp:343 msgid "Import Alexandria Data..." msgstr "Importar Dados do Alexandria..." -#: mainwindow.cpp:352 +#: mainwindow.cpp:344 msgid "Import data from the Alexandria book collection manager" msgstr "Importa um arquivo do gerenciador de cole??o de livros Alexandria" -#: mainwindow.cpp:358 +#: mainwindow.cpp:350 msgid "Import Bibtex Data..." msgstr "Importar Dados do BibTeX..." -#: mainwindow.cpp:359 +#: mainwindow.cpp:351 msgid "Import a bibtex bibliography file" msgstr "Importa um arquivo de bibliografia do BibTeX" -#: mainwindow.cpp:365 +#: mainwindow.cpp:357 msgid "Import Bibtexml Data..." msgstr "Importar Dados do BibTeXML..." -#: mainwindow.cpp:366 +#: mainwindow.cpp:358 msgid "Import a Bibtexml bibliography file" msgstr "Importa um arquivo de bibliografia do BibTeXML" -#: mainwindow.cpp:372 +#: mainwindow.cpp:364 msgid "Import RIS Data..." msgstr "Importar Dados do RIS..." -#: mainwindow.cpp:373 +#: mainwindow.cpp:365 msgid "Import an RIS reference file" msgstr "Importa um arquivo de refer?ncia do RIS" -#: mainwindow.cpp:379 +#: mainwindow.cpp:371 msgid "Import Audio File Metadata..." msgstr "Importar Meta-dados de um Arquivo de ?udio..." -#: mainwindow.cpp:380 +#: mainwindow.cpp:372 msgid "Import meta-data from audio files" msgstr "Importa meta-dados de arquivos de ?udio" -#: mainwindow.cpp:389 +#: mainwindow.cpp:381 msgid "Import Audio CD Data..." msgstr "Importar Dados de CD de ?udio..." -#: mainwindow.cpp:390 +#: mainwindow.cpp:382 msgid "Import audio CD information" msgstr "Importa informa??es de um CD de ?udio " -#: mainwindow.cpp:399 +#: mainwindow.cpp:391 msgid "Import GCfilms Data..." msgstr "Importar Dados do GCfilms..." -#: mainwindow.cpp:400 +#: mainwindow.cpp:392 msgid "Import a GCfilms data file" msgstr "Importa um arquivo de dados do GCfilms " -#: mainwindow.cpp:406 +#: mainwindow.cpp:398 msgid "Import Ant Movie Catalog Data..." msgstr "Importar Dados do Ant Movie Catalog..." -#: mainwindow.cpp:407 +#: mainwindow.cpp:399 msgid "Import an Ant Movie Catalog data file" msgstr "Importa um arquivo de dados do Ant Movie Catalog" -#: mainwindow.cpp:413 +#: mainwindow.cpp:405 msgid "Import File Listing..." msgstr "Importar Listagem de Arquivos..." -#: mainwindow.cpp:414 +#: mainwindow.cpp:406 msgid "Import information about files in a folder" msgstr "Importa informa??es sobre os arquivos de uma pasta " -#: mainwindow.cpp:420 +#: mainwindow.cpp:412 msgid "Import XSL Transform..." msgstr "Importar Transforma??o XSL..." -#: mainwindow.cpp:421 +#: mainwindow.cpp:413 msgid "Import using an XSL Transform" msgstr "Importa dados utilizando uma transforma??o XSL " -#: mainwindow.cpp:433 rc.cpp:4 +#: mainwindow.cpp:425 rc.cpp:4 msgid "&Export" msgstr "&Exportar " -#: mainwindow.cpp:435 +#: mainwindow.cpp:427 msgid "Export the collection data to other formats" msgstr "Exporta os dados da cole??o para outros formatos " -#: mainwindow.cpp:439 +#: mainwindow.cpp:431 msgid "Export to XML..." msgstr "Exportar para XML... " -#: mainwindow.cpp:440 +#: mainwindow.cpp:432 msgid "Export to a Tellico XML file" msgstr "Exporta para um arquivo XML do Tellico " -#: mainwindow.cpp:446 +#: mainwindow.cpp:438 msgid "Export to Zip..." msgstr "Exportar para Zip... " -#: mainwindow.cpp:447 +#: mainwindow.cpp:439 msgid "Export to a Tellico Zip file" msgstr "Exporta para um arquivo Zip do Tellico " -#: mainwindow.cpp:453 +#: mainwindow.cpp:445 msgid "Export to HTML..." msgstr "Exportar para HTML... " -#: mainwindow.cpp:454 +#: mainwindow.cpp:446 msgid "Export to an HTML file" msgstr "Exporta para um arquivo HTML " -#: mainwindow.cpp:460 +#: mainwindow.cpp:452 msgid "Export to CSV..." msgstr "Exportar para CSV... " -#: mainwindow.cpp:461 +#: mainwindow.cpp:453 msgid "Export to a comma-separated values file" msgstr "Exporta para um arquivo de valores separados por v?rgula " -#: mainwindow.cpp:467 +#: mainwindow.cpp:459 msgid "Export to PilotDB..." msgstr "Exportar para &PilotDB... " -#: mainwindow.cpp:468 +#: mainwindow.cpp:460 msgid "Export to a PilotDB database" msgstr "Exporta para um banco de dados PilotDB" -#: mainwindow.cpp:474 +#: mainwindow.cpp:466 msgid "Export to Alexandria..." msgstr "Exportar para o Alexandria... " -#: mainwindow.cpp:475 +#: mainwindow.cpp:467 msgid "Export to an Alexandria library" msgstr "Exporta para uma biblioteca do Alexandria " -#: mainwindow.cpp:481 +#: mainwindow.cpp:473 msgid "Export to Bibtex..." msgstr "Exportar para o BibTeX... " -#: mainwindow.cpp:482 +#: mainwindow.cpp:474 msgid "Export to a bibtex file" msgstr "Exporta para um arquivo do BibTeX " -#: mainwindow.cpp:488 +#: mainwindow.cpp:480 msgid "Export to Bibtexml..." msgstr "Exportar para o BibTeXML..." -#: mainwindow.cpp:489 +#: mainwindow.cpp:481 msgid "Export to a Bibtexml file" msgstr "Exporta para um arquivo BibTeXML" -#: mainwindow.cpp:495 +#: mainwindow.cpp:487 msgid "Export to ONIX..." msgstr "Exportar para o ONIX... " -#: mainwindow.cpp:496 +#: mainwindow.cpp:488 msgid "Export to an ONIX file" msgstr "Exporta para um arquivo ONIX" -#: mainwindow.cpp:502 +#: mainwindow.cpp:494 msgid "Export to GCfilms..." msgstr "Exportar para o GCfilms... " -#: mainwindow.cpp:503 +#: mainwindow.cpp:495 msgid "Export to a GCfilms data file" msgstr "Exporta para um arquivo de dados do GCfilms" -#: mainwindow.cpp:509 +#: mainwindow.cpp:501 msgid "Export XSL Transform..." msgstr "Exportar Transforma??o XSL..." -#: mainwindow.cpp:510 +#: mainwindow.cpp:502 msgid "Export using an XSL Transform" msgstr "Exporta utilizando uma transforma??o XSL" -#: mainwindow.cpp:519 +#: mainwindow.cpp:511 msgid "Cut the selected text and puts it in the clipboard" msgstr "Corta o texto selecionado e coloca-o na ?rea de transfer?ncia" -#: mainwindow.cpp:521 +#: mainwindow.cpp:513 msgid "Copy the selected text to the clipboard" msgstr "Copia o texto selecionado para a ?rea de transfer?ncia" -#: mainwindow.cpp:523 +#: mainwindow.cpp:515 msgid "Paste the clipboard contents" msgstr "Cola o conte?do da ?rea de transfer?ncia" -#: mainwindow.cpp:525 +#: mainwindow.cpp:517 msgid "Select all the entries in the collection" msgstr "Seleciona todos os registros da cole??o" -#: mainwindow.cpp:527 +#: mainwindow.cpp:519 msgid "Deselect all the entries in the collection" msgstr "De-seleciona todos os registros da cole??o" -#: mainwindow.cpp:529 +#: mainwindow.cpp:521 msgid "Internet Search..." msgstr "Pesquisa na Internet..." -#: mainwindow.cpp:532 +#: mainwindow.cpp:524 msgid "Search the internet..." msgstr "Pesquisa registros em fontes da Internet" -#: mainwindow.cpp:537 +#: mainwindow.cpp:529 msgid "&New Entry..." msgstr "&Novo registro..." -#: mainwindow.cpp:540 +#: mainwindow.cpp:532 msgid "Create a new entry" msgstr "Cria um novo registro" -#: controller.cpp:598 mainwindow.cpp:541 +#: controller.cpp:598 mainwindow.cpp:533 msgid "&Edit Entry..." msgstr "&Editar Registro..." -#: mainwindow.cpp:544 +#: mainwindow.cpp:536 msgid "Edit the selected entries" msgstr "Edita os registros selecionados" -#: controller.cpp:599 mainwindow.cpp:545 +#: controller.cpp:599 mainwindow.cpp:537 msgid "D&uplicate Entry" msgstr "D&uplicar Registro" -#: mainwindow.cpp:548 +#: mainwindow.cpp:540 msgid "Copy the selected entries" msgstr "Copia os registros selecionados" -#: controller.cpp:601 mainwindow.cpp:549 +#: controller.cpp:601 mainwindow.cpp:541 msgid "&Delete Entry" msgstr "&Apagar Registro" -#: mainwindow.cpp:552 +#: mainwindow.cpp:544 msgid "Delete the selected entries" msgstr "Apaga os registros selecionados " -#: mainwindow.cpp:554 +#: mainwindow.cpp:546 msgid "&Generate Reports..." msgstr "&Gerar Relat?rios... " -#: mainwindow.cpp:557 +#: mainwindow.cpp:549 msgid "Generate collection reports" msgstr "Gera relat?rios da cole??o " -#: mainwindow.cpp:558 +#: mainwindow.cpp:550 msgid "Check-&out..." msgstr "&Registrar sa?da..." -#: mainwindow.cpp:561 +#: mainwindow.cpp:553 msgid "Check-out the selected items" msgstr "Registra sa?da dos itens selecionados " -#: mainwindow.cpp:562 +#: mainwindow.cpp:554 msgid "Check-&in" msgstr "Registrar &entrada..." -#: mainwindow.cpp:565 +#: mainwindow.cpp:557 msgid "Check-in the selected items" msgstr "Registra entrada dos itens selecionados" -#: mainwindow.cpp:567 +#: mainwindow.cpp:559 msgid "&Rename Collection..." msgstr "&Renomear Cole??o..." -#: mainwindow.cpp:570 +#: mainwindow.cpp:562 msgid "Rename the collection" msgstr "Renomeia a cole??o" -#: mainwindow.cpp:571 +#: mainwindow.cpp:563 msgid "Collection &Fields..." msgstr "&Campos da Cole??o..." -#: mainwindow.cpp:574 +#: mainwindow.cpp:566 msgid "Modify the collection fields" msgstr "Modifica os campos da cole??o" -#: mainwindow.cpp:575 +#: mainwindow.cpp:567 msgid "Convert to &Bibliography" msgstr "Converter para &Bibliografia" -#: mainwindow.cpp:578 +#: mainwindow.cpp:570 msgid "Convert a book collection to a bibliography" msgstr "Converter uma cole??o de livros para uma bibliografia" -#: mainwindow.cpp:579 +#: mainwindow.cpp:571 msgid "String &Macros..." msgstr "&Macros de String..." -#: mainwindow.cpp:582 +#: mainwindow.cpp:574 msgid "Edit the bibtex string macros" msgstr "Editar linhas de macros do BibTeX " -#: mainwindow.cpp:589 +#: mainwindow.cpp:581 msgid "Copy Bibtex to Cli&pboard" msgstr "Copia BibTeX para a &?rea de Transfer?ncia" -#: mainwindow.cpp:590 +#: mainwindow.cpp:582 msgid "Copy bibtex citations to the clipboard" msgstr "Copia cita??es do BibTeX para a ?rea de transfer?ncia" -#: mainwindow.cpp:595 +#: mainwindow.cpp:587 msgid "Cite Entry in &LyX" msgstr "Citar Registro no &LyX" -#: mainwindow.cpp:596 +#: mainwindow.cpp:588 msgid "Cite the selected entries in LyX" msgstr "Citar os registros selecionados no LyX" -#: mainwindow.cpp:601 +#: mainwindow.cpp:593 msgid "Ci&te Entry in OpenOffice.org" msgstr "Ci&tar Registro no OpenOffice.org" -#: mainwindow.cpp:602 +#: mainwindow.cpp:594 msgid "Cite the selected entries in OpenOffice.org" msgstr "Citar os registros selecionados no OpenOffice.org" -#: controller.cpp:600 mainwindow.cpp:610 rc.cpp:6 +#: controller.cpp:600 mainwindow.cpp:602 rc.cpp:6 msgid "&Update Entry" msgstr "&Atualizar o Registro" -#: mainwindow.cpp:615 +#: mainwindow.cpp:607 msgid "All Sources" msgstr "Todas as Fontes" -#: mainwindow.cpp:616 +#: mainwindow.cpp:608 msgid "Update entry data from all available sources" msgstr "Atualizar o registro a partir de todas as fontes dispon?veis " -#: mainwindow.cpp:628 +#: mainwindow.cpp:620 msgid "Show Grou&p View" msgstr "Mostrar Vis?o de &Grupo" -#: mainwindow.cpp:631 +#: mainwindow.cpp:623 msgid "Enable/disable the group view" msgstr "Ativar/desativar a vis?o de grupo" -#: mainwindow.cpp:632 +#: mainwindow.cpp:624 msgid "Hide Grou&p View" msgstr "Ocultar Vis?o de Gru&po " -#: mainwindow.cpp:634 +#: mainwindow.cpp:626 msgid "Show Entry &Editor" msgstr "Mostrar &Editor de Registros" -#: mainwindow.cpp:637 +#: mainwindow.cpp:629 msgid "Enable/disable the editor" msgstr "Habilitar/desabilitar o editor" -#: mainwindow.cpp:638 +#: mainwindow.cpp:630 msgid "Hide Entry &Editor" msgstr "Ocultar &Editor de Registros" -#: mainwindow.cpp:640 +#: mainwindow.cpp:632 msgid "Show Entry &View" msgstr "Mostrar &Vis?o de Registros" -#: mainwindow.cpp:643 +#: mainwindow.cpp:635 msgid "Enable/disable the entry view" msgstr "Habilitar/desabilitar vis?o de registros" -#: mainwindow.cpp:644 +#: mainwindow.cpp:636 msgid "Hide Entry &View" msgstr "Ocultar &Vis?o de Registros" -#: mainwindow.cpp:646 +#: mainwindow.cpp:638 msgid "Advanced &Filter..." msgstr "&Filtro Avan?ado..." -#: mainwindow.cpp:649 mainwindow.cpp:687 +#: mainwindow.cpp:641 mainwindow.cpp:679 msgid "Filter the collection" msgstr "Filtrar a cole??o " -#: mainwindow.cpp:661 +#: mainwindow.cpp:653 msgid "Change Grouping" msgstr "Alterar o Agrupamento" -#: mainwindow.cpp:665 +#: mainwindow.cpp:657 msgid "&Group Selection" msgstr "Sele??o de &Grupo" -#: mainwindow.cpp:668 +#: mainwindow.cpp:660 msgid "Change the grouping of the collection" msgstr "Alterar o agrupamento da cole??o" -#: filterview.cpp:32 filterview.cpp:84 mainwindow.cpp:670 mainwindow.cpp:685 +#: filterview.cpp:32 filterview.cpp:84 mainwindow.cpp:662 mainwindow.cpp:677 msgid "Filter" msgstr "Filtrar" -#: mainwindow.cpp:673 +#: mainwindow.cpp:665 msgid "Clear Filter" msgstr "Limpar Filtro" -#: mainwindow.cpp:678 +#: mainwindow.cpp:670 msgid "Filter here..." msgstr "Filtrar Aqui..." -#: mainwindow.cpp:734 +#: mainwindow.cpp:726 msgid "Groups" msgstr "Grupos" -#: mainwindow.cpp:735 +#: mainwindow.cpp:727 msgid "" "The Group View sorts the entries into groupings based on a " "selected field." @@ -1392,7 +3172,7 @@ "A Vis?o de Grupos classifica os registros em grupos com base em " "um campo selecionado." -#: mainwindow.cpp:742 +#: mainwindow.cpp:734 msgid "" "The Column View shows the value of multiple fields for each " "entry." @@ -1400,23 +3180,23 @@ "A Vis?o de Colunas mostra os valores de v?rios campos para cada " "registro" -#: mainwindow.cpp:1024 +#: mainwindow.cpp:1016 msgid "Creating new document..." msgstr "Cria??o de um novo documento... " -#: mainwindow.cpp:1056 mainwindow.cpp:1076 mainwindow.cpp:1095 +#: mainwindow.cpp:1048 mainwindow.cpp:1068 mainwindow.cpp:1087 msgid "Opening file..." msgstr "Abrindo arquivo..." -#: mainwindow.cpp:1066 +#: mainwindow.cpp:1058 msgid "Open File" msgstr "Abrir Arquivo" -#: document.cpp:177 mainwindow.cpp:1169 +#: document.cpp:177 mainwindow.cpp:1161 msgid "Saving file..." msgstr "Salvando Arquivo..." -#: mainwindow.cpp:1179 +#: mainwindow.cpp:1171 msgid "" "

You are saving a file with many images, which causes Tellico to slow " "down significantly. Do you want to save the images separately in Tellico's " @@ -1429,23 +3209,23 @@ "performance?

Sua escolha pode sempre ser alterada na caixa de di?logo " "de configura??o.

" -#: mainwindow.cpp:1184 +#: mainwindow.cpp:1176 msgid "Save Images Separately" msgstr "Salvar Imagens Separadamente" -#: mainwindow.cpp:1185 +#: mainwindow.cpp:1177 msgid "Save Images in File" msgstr "Salvar Imagens no Arquivo" -#: mainwindow.cpp:1217 +#: mainwindow.cpp:1209 msgid "Saving file with a new filename..." msgstr "Salvando arquivo com um novo nome..." -#: mainwindow.cpp:1257 mainwindow.cpp:1309 +#: mainwindow.cpp:1249 mainwindow.cpp:1301 msgid "Printing..." msgstr "Impress?o..." -#: mainwindow.cpp:1266 +#: mainwindow.cpp:1258 msgid "" "The collection is currently being filtered to show a limited subset of the " "entries. Only the visible entries will be printed. Continue?" @@ -1453,96 +3233,92 @@ "A cole??o esta sendo filtrada para mostrar um subconjunto limitado de seus " "registros. Apenas os registros vis?veis ser?o impressos. Continuar?" -#: mainwindow.cpp:1292 +#: mainwindow.cpp:1284 msgid "Processing document..." msgstr "Processamento do documento..." -#: mainwindow.cpp:1317 +#: mainwindow.cpp:1309 msgid "Exiting..." msgstr "Saindo..." -#: mainwindow.cpp:1457 +#: mainwindow.cpp:1449 #, c-format msgid "Total entries: %1" msgstr "Total de registros: %1" -#: mainwindow.cpp:1464 +#: mainwindow.cpp:1456 msgid "(%1 filtered; %2 selected)" msgstr "" "(%1 filtrado, %2 selecionado)\n" "(%1 filtrados, %2 selecionados)" -#: mainwindow.cpp:1467 +#: mainwindow.cpp:1459 msgid "(%1 filtered)" msgstr "" "(%1 filtrado)\n" "(%1 filtrados)" -#: mainwindow.cpp:1470 +#: mainwindow.cpp:1462 msgid "(%1 selected)" msgstr "" "(%1 selecionado)\n" "(%1 selecionados)" -#: mainwindow.cpp:1645 +#: mainwindow.cpp:1637 #, c-format msgid "Print %1" msgstr "Impress?o %1" -#: mainwindow.cpp:1678 +#: mainwindow.cpp:1670 #, c-format msgid "Page %1" msgstr "P?gina %1" -#: mainwindow.cpp:1704 translators/xsltimporter.cpp:57 -msgid "Tellico encountered an error in XSLT processing." -msgstr "Tellico encontrou um erro no processamento do XSLT." - -#: entryview.cpp:170 mainwindow.cpp:1705 +#: entryview.cpp:170 mainwindow.cpp:1697 msgid "Please check your installation." msgstr "Por favor, confira sua instala??o." -#: mainwindow.cpp:1791 +#: mainwindow.cpp:1783 msgid "Importing data..." msgstr "Importa??o de dados..." -#: mainwindow.cpp:1800 +#: mainwindow.cpp:1792 msgid "Import File" msgstr "Importar Arquivo" -#: mainwindow.cpp:1806 +#: mainwindow.cpp:1798 msgid "Import Directory" msgstr "Importar Diret?rio" -#: mainwindow.cpp:1894 +#: mainwindow.cpp:1886 msgid "Exporting data..." msgstr "Exporta??o de dados..." -#: mainwindow.cpp:1916 +#: mainwindow.cpp:1908 msgid "Export As" msgstr "Exportar Como" -#: mainwindow.cpp:1945 +#: mainwindow.cpp:1937 msgid "String Macros" msgstr "Macros de String" -#: mainwindow.cpp:1946 +#: mainwindow.cpp:1938 msgid "Macro" msgstr "Macro" -#: mainwindow.cpp:1946 +#: mainwindow.cpp:1938 msgid "String" msgstr "String" -#: mainwindow.cpp:2009 +#: mainwindow.cpp:2001 msgid "Creating citations..." msgstr "Criando cita??es..." -#: mainwindow.cpp:2159 +#: mainwindow.cpp:2151 msgid "Filters" msgstr "Filtros" -#: mainwindow.cpp:2160 +#: mainwindow.cpp:2152 msgid "" "The Filter View shows the entries which meet certain filter " "rules." @@ -1550,11 +3326,11 @@ "A Vis?o de Filtros mostra os registros que atendem determinadas " "regras de filtros." -#: mainwindow.cpp:2176 +#: mainwindow.cpp:2168 msgid "Loans" msgstr "Empr?stimos" -#: mainwindow.cpp:2177 +#: mainwindow.cpp:2169 msgid "" "The Loan View shows a list of all the people who have borrowed " "items from your collection." @@ -1562,29 +3338,18 @@ "A Vis?o de Empr?stimos mostra uma lista com todas as pessoas " "que pegaram itens emprestados de sua cole??o." -#: mainwindow.cpp:2309 +#: mainwindow.cpp:2301 #, c-format msgid "Update entry data from %1" msgstr "Atualiza os dados do registro %1" -#: filehandler.cpp:138 translators/tellicoimporter.cpp:111 -#: translators/xmlimporter.cpp:42 translators/xmlimporter.cpp:56 -msgid "There is an XML parsing error in line %1, column %2." -msgstr "H? um erro de an?lise XML na linha %1, coluna %2." - -#: filehandler.cpp:140 translators/tellicoimporter.cpp:113 -#: translators/xmlimporter.cpp:44 translators/xmlimporter.cpp:58 -msgid "The error message from Qt is:" -msgstr "A mensagem de erro do Qt ?:" - #: filehandler.cpp:190 #, c-format msgid "Tellico is unable to load the image - %1." msgstr "Tellico n?o p?de carregar a imagem - %1." #: filehandler.cpp:204 -msgid "" -"A file named \"%1\" already exists. Are you sure you want to overwrite it?" +msgid "A file named \"%1\" already exists. Are you sure you want to overwrite it?" msgstr "" "Um arquivo chamado \"%1\" j? existe. Tem certeza que deseja mesmo " "sobrescrev?-lo?" @@ -1597,111 +3362,10 @@ msgid "Overwrite" msgstr "Sobrescrever" -#: commands/filtercommand.cpp:102 filterview.cpp:69 -msgid "Delete Filter" -msgstr "Apagar o Filtro" - #: filterview.cpp:86 msgid "Filter (Sort by Count)" msgstr "Filtro (Classificar por Contagem)" -#: commands/modifyentries.cpp:72 -msgid "Modify Entries" -msgstr "Modificar Registros" - -#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50 -#, c-format -msgid "" -"_: Modify (Entry Title)\n" -"Modify %1" -msgstr "Modificar %1" - -#: commands/fieldcommand.cpp:104 -msgid "Add %1 Field" -msgstr "Adicionar Campo %1" - -#: commands/fieldcommand.cpp:106 -msgid "Modify %1 Field" -msgstr "Modificar Campo %1" - -#: commands/fieldcommand.cpp:108 -msgid "Delete %1 Field" -msgstr "Apagar Campo %1" - -#: commands/renamecollection.cpp:45 tellico_kernel.cpp:322 -msgid "Rename Collection" -msgstr "Renomear a Cole??o" - -#: commands/filtercommand.cpp:98 -msgid "Add Filter" -msgstr "Adicionar Filtro" - -#: commands/addloans.cpp:108 -msgid "Check-out Items" -msgstr "Registrar Sa?da de Itens" - -#: commands/addloans.cpp:109 -#, c-format -msgid "" -"_: Check-out (Entry Title)\n" -"Check-out %1" -msgstr "Registrar sa?da de %1" - -#: commands/removeentries.cpp:52 -msgid "Delete Entries" -msgstr "Apagar Registros" - -#: commands/removeentries.cpp:53 -#, c-format -msgid "" -"_: Delete (Entry Title)\n" -"Delete %1" -msgstr "Apagar %1" - -#: commands/reorderfields.cpp:52 -msgid "Reorder Fields" -msgstr "Reordenar Campos" - -#: commands/collectioncommand.cpp:93 -msgid "Append Collection" -msgstr "Continuar Cole??o" - -#: commands/collectioncommand.cpp:95 -msgid "Merge Collection" -msgstr "Combinar Cole??o" - -#: commands/collectioncommand.cpp:97 -msgid "Replace Collection" -msgstr "Substituir Cole??o" - -#: commands/removeloans.cpp:79 -msgid "Check-in Entries" -msgstr "Registros de Entrada" - -#: commands/removeloans.cpp:80 -#, c-format -msgid "" -"_: Check-in (Entry Title)\n" -"Check-in %1" -msgstr "Registrar entrada de %1" - -#: commands/addentries.cpp:54 -msgid "Add Entries" -msgstr "Adicionar Registros" - -#: commands/addentries.cpp:55 -#, c-format -msgid "" -"_: Add (Entry Title)\n" -"Add %1" -msgstr "Adicionar %1" - -#: controller.cpp:131 fetchdialog.cpp:214 fetchdialog.cpp:292 -#: fetchdialog.cpp:360 fetchdialog.cpp:415 newstuff/dialog.cpp:296 -#: newstuff/dialog.cpp:323 newstuff/dialog.cpp:431 statusbar.cpp:82 -msgid "Ready." -msgstr "Pronto." - #: controller.cpp:421 msgid "Do you really want to delete this entry?" msgstr "Quer mesmo apagar este registro?" @@ -1744,888 +3408,71 @@ "emprestar itens m?ltiplas vezes, eles ser?o removidos da lista de itens a " "serem emprestados." -#: collection.cpp:30 -msgid "(Empty)" -msgstr "(Vazio)" +#: calendarhandler.cpp:166 +msgid "Default Calendar" +msgstr "Calend?rio Padr?o" -#: collections/bookcollection.cpp:137 collections/comicbookcollection.cpp:122 -#: collections/stampcollection.cpp:20 -msgid "Condition" -msgstr "Condi??o" - -#: collections/boardgamecollection.cpp:20 collections/bookcollection.cpp:22 -#: collections/cardcollection.cpp:20 collections/coincollection.cpp:20 -#: collections/comicbookcollection.cpp:22 collections/gamecollection.cpp:20 -#: collections/musiccollection.cpp:20 collections/stampcollection.cpp:21 -#: collections/videocollection.cpp:22 collections/winecollection.cpp:20 -#: document.cpp:490 -msgid "Personal" -msgstr "Pessoal" - -#: collections/stampcollection.cpp:27 -msgid "My Stamps" -msgstr "Meus Selos" - -#: collectionfactory.cpp:80 collections/bibtexcollection.cpp:56 -#: collections/boardgamecollection.cpp:37 collections/bookcollection.cpp:39 -#: collections/cardcollection.cpp:37 collections/coincollection.cpp:37 -#: collections/comicbookcollection.cpp:39 collections/gamecollection.cpp:37 -#: collections/musiccollection.cpp:76 collections/stampcollection.cpp:38 -#: collections/videocollection.cpp:39 collections/winecollection.cpp:37 -#: entryupdater.cpp:230 fetch/fetchmanager.cpp:62 fetchdialog.cpp:158 -#: translators/tellicoimporter.cpp:404 -msgid "Title" -msgstr "T?tulo" - -#: collections/boardgamecollection.cpp:81 collections/filecatalog.cpp:45 -#: collections/gamecollection.cpp:87 collections/stampcollection.cpp:44 -#: entryupdater.cpp:231 fetchdialog.cpp:159 -msgid "Description" -msgstr "Descri??o" - -#: collections/coincollection.cpp:50 collections/stampcollection.cpp:50 -msgid "Denomination" -msgstr "Denomina??o" - -#: collections/coincollection.cpp:66 collections/comicbookcollection.cpp:94 -#: collections/stampcollection.cpp:55 collections/winecollection.cpp:73 -msgid "Country" -msgstr "Pa?s" - -#: collections/stampcollection.cpp:61 -msgid "Issue Year" -msgstr "Ano de Edi??o" - -#: collections/stampcollection.cpp:66 collections/videocollection.cpp:172 -msgid "Color" -msgstr "Cor" - -#: collections/stampcollection.cpp:71 -msgid "Scott#" -msgstr "Scott#" - -#: collections/stampcollection.cpp:78 +#: calendarhandler.cpp:174 msgid "" -"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n" -"Superb,Extremely Fine,Very Fine,Fine,Average,Poor" -msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim" - -#: collections/coincollection.cpp:87 collections/stampcollection.cpp:80 -msgid "Grade" -msgstr "Classifica??o" - -#: collections/stampcollection.cpp:85 -msgid "Cancelled" -msgstr "Cancelado" - -#: collections/stampcollection.cpp:89 -msgid "Hinged" -msgstr "Articulado" - -#: collections/stampcollection.cpp:94 -msgid "Centering" -msgstr "Centrada" - -#: collections/stampcollection.cpp:99 -msgid "Gummed" -msgstr "Colado" - -#: collections/boardgamecollection.cpp:89 collections/bookcollection.cpp:64 -#: collections/cardcollection.cpp:82 collections/coincollection.cpp:102 -#: collections/comicbookcollection.cpp:126 collections/gamecollection.cpp:99 -#: collections/musiccollection.cpp:86 collections/stampcollection.cpp:104 -#: collections/videocollection.cpp:190 collections/winecollection.cpp:79 -msgid "Purchase Date" -msgstr "Data de compra" - -#: collections/boardgamecollection.cpp:98 collections/bookcollection.cpp:69 -#: collections/cardcollection.cpp:87 collections/coincollection.cpp:107 -#: collections/comicbookcollection.cpp:131 collections/gamecollection.cpp:108 -#: collections/musiccollection.cpp:95 collections/stampcollection.cpp:109 -#: collections/videocollection.cpp:199 collections/winecollection.cpp:84 -msgid "Purchase Price" -msgstr "Pre?o de compra" - -#: collections/cardcollection.cpp:91 collections/coincollection.cpp:111 -#: collections/stampcollection.cpp:113 collections/winecollection.cpp:88 -msgid "Location" -msgstr "Localiza??o" - -#: collections/boardgamecollection.cpp:94 collections/bookcollection.cpp:149 -#: collections/cardcollection.cpp:96 collections/coincollection.cpp:117 -#: collections/comicbookcollection.cpp:139 collections/gamecollection.cpp:104 -#: collections/musiccollection.cpp:91 collections/stampcollection.cpp:119 -#: collections/videocollection.cpp:195 collections/winecollection.cpp:107 -msgid "Gift" -msgstr "Presente" - -#: collections/boardgamecollection.cpp:109 collections/bookcollection.cpp:165 -#: collections/cardcollection.cpp:115 collections/coincollection.cpp:127 -#: collections/comicbookcollection.cpp:150 collections/gamecollection.cpp:119 -#: collections/musiccollection.cpp:111 collections/stampcollection.cpp:126 -#: collections/videocollection.cpp:210 collections/winecollection.cpp:114 -msgid "Comments" -msgstr "Coment?rios" - -#: collections/coincollection.cpp:26 -msgid "My Coins" -msgstr "Minhas Moedas" - -#: collections/coincollection.cpp:44 collections/winecollection.cpp:68 -msgid "Type" -msgstr "Tipo" - -#: collections/bibtexcollection.cpp:145 collections/cardcollection.cpp:66 -#: collections/coincollection.cpp:55 collections/musiccollection.cpp:62 -msgid "Year" -msgstr "Ano" - -#: collections/coincollection.cpp:60 -msgid "Mint Mark" -msgstr "Marca da Casa Emissora" - -#: collections/coincollection.cpp:72 -msgid "Coin Set" -msgstr "Conjunto de Moedas" - -#: collections/coincollection.cpp:82 -msgid "" -"_: Coin grade levels - Proof-65,Proof-60,Mint State-65,Mint State-60,Almost " -"Uncirculated-55,Almost Uncirculated-50,Extremely Fine-40,Very Fine-30,Very " -"Fine-20,Fine-12,Very Good-8,Good-4,Fair\n" -"Proof-65,Proof-60,Mint State-65,Mint State-60,Almost Uncirculated-55,Almost " -"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very " -"Good-8,Good-4,Fair" +"At the moment, Tellico only supports local calendar resources. The active " +"calendar is remotely located, so your loans will not be added." msgstr "" -"Proof-65,Proof-60,Mint-65,Mint-60,Quase n?o Circulada-55,Quase n?o " -"Circulada-50,Extremamente Rara-40,Muito Rara-30,Muito Rara-20,Rara-12,Muito " -"Boa-8,Boa-4,Razo?vel" +"Presentemente, Tellico suporta apenas recursos de calend?rio locais. O " +"calend?rio ativo est? localizado remotamente, ent?o seus empr?stimos " +"n?o ser?o adicionados." -#: collections/coincollection.cpp:95 -msgid "" -"_: Coin grading services - PCGS,NGC,ANACS,ICG,ASA,PCI\n" -"PCGS,NGC,ANACS,ICG,ASA,PCI" -msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI" +#: calendarhandler.cpp:179 +msgid "Active Calendar" +msgstr "Calend?rio Ativo" -#: collections/coincollection.cpp:97 -msgid "Grading Service" -msgstr "Servi?os de Classifica??o" +#: calendarhandler.cpp:202 +msgid "Tellico: %1 is due to return \"%2\"" +msgstr "Tellico: %1 est? previsto para ser devolvido para \"%2\"" -#: collections/coincollection.cpp:121 -msgid "Obverse" -msgstr "Observa??o" +#: collection.cpp:30 +msgid "(Empty)" +msgstr "(Vazio)" -#: collections/coincollection.cpp:124 -msgid "Reverse" -msgstr "Verso" +#: main.cpp:23 +msgid "Tellico - a collection manager for KDE" +msgstr "Tellico - um gerenciador de cole??es para o KDE" -#: collections/bibtexcollection.cpp:25 collections/bookcollection.cpp:20 -#: collections/comicbookcollection.cpp:20 translators/grs1importer.cpp:58 -#: translators/grs1importer.cpp:68 translators/risimporter.cpp:258 -msgid "Publishing" -msgstr "Publica??o" +#: main.cpp:27 +msgid "Do not reopen the last open file" +msgstr "N?o reabrir o ?ltimo arquivo aberto" -#: collections/bookcollection.cpp:21 collections/comicbookcollection.cpp:21 -#: translators/grs1importer.cpp:63 translators/risimporter.cpp:252 -msgid "Classification" -msgstr "Classifica??o" +#: main.cpp:28 +msgid "Import as a bibtex file" +msgstr "Importar como um arquivo do BibTeX" -#: collections/bookcollection.cpp:28 -msgid "My Books" -msgstr "Meus Livros" +#: main.cpp:29 +msgid "Import as a MODS file" +msgstr "Importar como um arquivo MODS" -#: collections/bookcollection.cpp:45 collections/comicbookcollection.cpp:45 -msgid "Subtitle" -msgstr "Sub-T?tulo" +#: main.cpp:30 +msgid "Import as a RIS file" +msgstr "Importar como um arquivo RIS" -#: collections/bibtexcollection.cpp:79 collections/bookcollection.cpp:50 -msgid "Author" -msgstr "Autor" +#: main.cpp:31 +msgid "File to open" +msgstr "Arquivo a ser aberto" -#: collections/bookcollection.cpp:57 translators/alexandriaimporter.cpp:121 -msgid "Hardback" -msgstr "Capa Dura" +#: main.cpp:42 +msgid "Data source scripts" +msgstr "Scripts de fontes de dados" -#: collections/bookcollection.cpp:57 -msgid "Paperback" -msgstr "Capa Flex?vel Econ?mica" +#: main.cpp:44 +msgid "Icons" +msgstr "?cones" -#: collections/bookcollection.cpp:57 -msgid "Trade Paperback" -msgstr "Capa Flex?vel" +#: main.cpp:46 +msgid "Author of btparse library" +msgstr "Autor da biblioteca btparse" -#: collections/bookcollection.cpp:58 -msgid "E-Book" -msgstr "Livro Eletr?nico" +#: main.cpp:48 +msgid "Code examples and general inspiration" +msgstr "Exemplos de c?digo e inspira??o em geral" -#: collections/bookcollection.cpp:58 -msgid "Magazine" -msgstr "Revista" - -#: collections/bibtexcollection.cpp:157 collections/bookcollection.cpp:58 -msgid "Journal" -msgstr "Jornal" - -#: collections/bookcollection.cpp:59 -msgid "Binding" -msgstr "Formato" - -#: collections/bibtexcollection.cpp:120 collections/boardgamecollection.cpp:60 -#: collections/bookcollection.cpp:73 collections/comicbookcollection.cpp:73 -#: collections/gamecollection.cpp:65 -msgid "Publisher" -msgstr "Editora" - -#: collections/bibtexcollection.cpp:133 collections/bookcollection.cpp:79 -#: collections/comicbookcollection.cpp:79 -msgid "Edition" -msgstr "Edi??o" - -#: collections/bookcollection.cpp:85 -msgid "Copyright Year" -msgstr "Ano do Copyright" - -#: collections/bookcollection.cpp:90 collections/comicbookcollection.cpp:85 -msgid "Publication Year" -msgstr "Ano de Publica??o" - -#: collections/bibtexcollection.cpp:151 collections/bookcollection.cpp:95 -#: translators/grs1importer.cpp:57 translators/risimporter.cpp:255 -msgid "ISBN#" -msgstr "ISBN#" - -#: collections/bibtexcollection.cpp:154 collections/bookcollection.cpp:97 -#: translators/grs1importer.cpp:59 translators/risimporter.cpp:259 -msgid "International Standard Book Number" -msgstr "N?mero Internacional Normalizado do Livro" - -#: collections/bookcollection.cpp:100 -msgid "LCCN#" -msgstr "LCCN#" - -#: collections/bookcollection.cpp:102 -msgid "Library of Congress Control Number" -msgstr "N?mero de Controlo da Biblioteca do Congresso" - -#: collections/bibtexcollection.cpp:140 collections/bookcollection.cpp:105 -#: collections/comicbookcollection.cpp:90 -msgid "Pages" -msgstr "P?ginas" - -#: collections/bookcollection.cpp:109 collections/comicbookcollection.cpp:100 -#: translators/grs1importer.cpp:67 -msgid "Language" -msgstr "L?ngua" - -#: collections/boardgamecollection.cpp:43 collections/bookcollection.cpp:114 -#: collections/comicbookcollection.cpp:106 collections/gamecollection.cpp:54 -#: collections/musiccollection.cpp:67 collections/videocollection.cpp:67 -msgid "Genre" -msgstr "G?nero" - -#: collections/bibtexcollection.cpp:216 collections/bookcollection.cpp:121 -#: collections/cardcollection.cpp:100 collections/comicbookcollection.cpp:112 -#: collections/musiccollection.cpp:103 fetch/amazonfetcher.cpp:860 -#: translators/grs1importer.cpp:62 translators/risimporter.cpp:250 -msgid "Keywords" -msgstr "Palavras-chave" - -#: collections/bibtexcollection.cpp:194 collections/bookcollection.cpp:126 -#: collections/cardcollection.cpp:71 collections/comicbookcollection.cpp:62 -msgid "Series" -msgstr "S?rie" - -#: collections/bookcollection.cpp:131 -msgid "Series Number" -msgstr "N? de s?rie" - -#: collections/bookcollection.cpp:136 -msgid "Used" -msgstr "Usado" - -#: collections/bookcollection.cpp:141 collections/comicbookcollection.cpp:135 -msgid "Signed" -msgstr "Autografado" - -#: collections/bookcollection.cpp:145 -msgid "Read" -msgstr "Lido" - -#: collections/boardgamecollection.cpp:102 collections/bookcollection.cpp:153 -#: collections/comicbookcollection.cpp:143 collections/gamecollection.cpp:112 -#: collections/musiccollection.cpp:99 collections/videocollection.cpp:203 -#: document.cpp:488 -msgid "Loaned" -msgstr "Emprestado" - -#: collections/bookcollection.cpp:162 collections/comicbookcollection.cpp:147 -msgid "Front Cover" -msgstr "Capa" - -#: collections/winecollection.cpp:26 -msgid "My Wines" -msgstr "Meus Vinhos" - -#: collections/videocollection.cpp:115 collections/winecollection.cpp:43 -msgid "Producer" -msgstr "Produtor" - -#: collections/winecollection.cpp:49 -msgid "Appellation" -msgstr "Apela??o" - -#: collections/winecollection.cpp:55 -msgid "Varietal" -msgstr "Variedade" - -# N?o sei ainda qual a tradu??o correta -#: collections/winecollection.cpp:61 -msgid "Vintage" -msgstr "Safra" - -#: collections/winecollection.cpp:67 -msgid "Red Wine" -msgstr "Vinho tinto" - -#: collections/winecollection.cpp:67 -msgid "White Wine" -msgstr "Vinho branco" - -#: collections/winecollection.cpp:67 -msgid "Sparkling Wine" -msgstr "Espumoso" - -#: collections/cardcollection.cpp:105 collections/winecollection.cpp:93 -msgid "Quantity" -msgstr "Quantidade" - -#: collections/winecollection.cpp:97 -msgid "Drink By" -msgstr "Bebido Por" - -#: collections/winecollection.cpp:111 -msgid "Label Image" -msgstr "Etiqueta" - -#: collections/comicbookcollection.cpp:28 -msgid "My Comic Books" -msgstr "Minhas Revistas em Quadrinhos" - -#: collections/comicbookcollection.cpp:50 collections/videocollection.cpp:121 -msgid "Writer" -msgstr "Escritor" - -#: collections/comicbookcollection.cpp:56 -msgid "" -"_: Comic Book Illustrator\n" -"Artist" -msgstr "Artista Gr?fico" - -#: collections/comicbookcollection.cpp:68 -msgid "Issue" -msgstr "N?mero" - -#: collections/comicbookcollection.cpp:120 -msgid "" -"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very " -"Good,Good,Fair,Poor\n" -"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor" -msgstr "Novo,Quase novo,Excelente,?timo,Muito bom,Bom,Razo?vel,Ruim" - -#: collections/videocollection.cpp:20 fetch/animenfofetcher.cpp:264 -msgid "Other People" -msgstr "Outras Pessoas" - -#: collections/videocollection.cpp:21 fetch/animenfofetcher.cpp:270 -msgid "Features" -msgstr "Caracter?sticas" - -#: collections/videocollection.cpp:28 -msgid "My Videos" -msgstr "Meus V?deos" - -#: collections/musiccollection.cpp:44 collections/videocollection.cpp:46 -msgid "DVD" -msgstr "DVD" - -#: collections/videocollection.cpp:46 -msgid "VHS" -msgstr "VHS" - -#: collections/videocollection.cpp:46 -msgid "VCD" -msgstr "VCD" - -#: collections/videocollection.cpp:46 -msgid "DivX" -msgstr "DivX" - -#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47 -msgid "Medium" -msgstr "M?dia" - -#: collections/videocollection.cpp:52 -msgid "Production Year" -msgstr "Ano de Produ??o" - -#: collections/videocollection.cpp:60 -msgid "" -"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n" -"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" -msgstr "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)" - -#: collections/videocollection.cpp:62 -msgid "Certification" -msgstr "Certifica??o" - -#: collections/videocollection.cpp:74 -msgid "Region 1" -msgstr "Regi?o 1" - -#: collections/videocollection.cpp:75 -msgid "Region 2" -msgstr "Regi?o 2" - -#: collections/videocollection.cpp:76 -msgid "Region 3" -msgstr "Regi?o 3" - -#: collections/videocollection.cpp:77 -msgid "Region 4" -msgstr "Regi?o 4" - -#: collections/videocollection.cpp:78 -msgid "Region 5" -msgstr "Regi?o 5" - -#: collections/videocollection.cpp:79 -msgid "Region 6" -msgstr "Regi?o 6" - -#: collections/videocollection.cpp:80 -msgid "Region 7" -msgstr "Regi?o 7" - -#: collections/videocollection.cpp:81 -msgid "Region 8" -msgstr "Regi?o 8" - -#: collections/videocollection.cpp:82 -msgid "Region" -msgstr "Regi?o" - -#: collections/videocollection.cpp:87 -msgid "Nationality" -msgstr "Nacionalidade" - -#: collections/videocollection.cpp:94 -msgid "NTSC" -msgstr "NTSC" - -#: collections/videocollection.cpp:94 -msgid "PAL" -msgstr "PAL" - -#: collections/videocollection.cpp:94 -msgid "SECAM" -msgstr "SECAM" - -#: collections/videocollection.cpp:95 -msgid "Format" -msgstr "Formato" - -#: collections/videocollection.cpp:100 -msgid "Cast" -msgstr "Elenco" - -#: collections/videocollection.cpp:102 translators/tellicoimporter.cpp:408 -msgid "Actor/Actress" -msgstr "Ator/Atriz" - -#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:409 -msgid "Role" -msgstr "Personagem" - -#: collections/videocollection.cpp:106 -msgid "A table for the cast members, along with the roles they play" -msgstr "" -"Uma tabela para o elenco do filme, com o papel representado por cada um" - -#: collections/videocollection.cpp:109 -msgid "Director" -msgstr "Diretor" - -#: collections/videocollection.cpp:127 -msgid "Composer" -msgstr "Compositor" - -#: collections/videocollection.cpp:133 -msgid "Studio" -msgstr "Est?dio" - -#: collections/videocollection.cpp:139 -msgid "Language Tracks" -msgstr "L?nguas dispon?veis" - -#: collections/videocollection.cpp:145 -msgid "Subtitle Languages" -msgstr "L?ngua das Legendas" - -#: collections/videocollection.cpp:151 -msgid "Audio Tracks" -msgstr "?udios Dispon?veis" - -#: collections/videocollection.cpp:157 -msgid "Running Time" -msgstr "Dura??o" - -#: collections/videocollection.cpp:159 -msgid "The running time of the video (in minutes)" -msgstr "Dura??o do v?deo (em minutos)" - -#: collections/videocollection.cpp:162 -msgid "Aspect Ratio" -msgstr "Formato da Imagem" - -#: collections/videocollection.cpp:167 translators/tellicoimporter.cpp:890 -msgid "Widescreen" -msgstr "Tela Larga" - -#: collections/videocollection.cpp:172 -msgid "Black & White" -msgstr "Preto & Branco" - -#: collections/videocollection.cpp:173 -msgid "Color Mode" -msgstr "Formato de Cor" - -#: collections/videocollection.cpp:178 -msgid "Director's Cut" -msgstr "Cortes do Diretor" - -#: collections/videocollection.cpp:182 fetch/ibsfetcher.cpp:352 -msgid "Plot Summary" -msgstr "Resumo da A??o" - -#: collections/gamecollection.cpp:90 collections/videocollection.cpp:185 -msgid "Personal Rating" -msgstr "Nota Pessoal" - -#: collections/boardgamecollection.cpp:106 collections/gamecollection.cpp:116 -#: collections/musiccollection.cpp:108 collections/videocollection.cpp:207 -msgid "Cover" -msgstr "Capa" - -#: collections/gamecollection.cpp:26 -msgid "My Games" -msgstr "Meus Jogos" - -#: collections/gamecollection.cpp:44 -msgid "Xbox 360" -msgstr "Xbox 360" - -#: collections/gamecollection.cpp:44 -msgid "Xbox" -msgstr "Xbox" - -#: collections/gamecollection.cpp:45 -msgid "PlayStation3" -msgstr "PlayStation3" - -#: collections/gamecollection.cpp:45 -msgid "PlayStation2" -msgstr "PlayStation2" - -#: collections/gamecollection.cpp:45 -msgid "PlayStation" -msgstr "PlayStation" - -#: collections/gamecollection.cpp:45 -msgid "" -"_: PlayStation Portable\n" -"PSP" -msgstr "PSP" - -#: collections/gamecollection.cpp:46 -msgid "Nintendo Wii" -msgstr "Revolu??o" - -#: collections/gamecollection.cpp:46 -msgid "Nintendo DS" -msgstr "Nintendo DS" - -#: collections/gamecollection.cpp:46 -msgid "GameCube" -msgstr "GameCube" - -#: collections/gamecollection.cpp:46 -msgid "Dreamcast" -msgstr "Dreamcast" - -#: collections/gamecollection.cpp:47 -msgid "Game Boy Advance" -msgstr "Game Boy Advance" - -#: collections/gamecollection.cpp:47 -msgid "Game Boy Color" -msgstr "Game Boy Color" - -#: collections/gamecollection.cpp:47 -msgid "Game Boy" -msgstr "Game Boy" - -#: collections/gamecollection.cpp:48 -msgid "" -"_: Windows Platform\n" -"Windows" -msgstr "Windows" - -#: collections/gamecollection.cpp:48 -msgid "Mac OS" -msgstr "Mac OS" - -#: collections/gamecollection.cpp:49 -msgid "Platform" -msgstr "Platforma" - -#: collections/boardgamecollection.cpp:55 collections/gamecollection.cpp:60 -msgid "Release Year" -msgstr "Ano de Lan?amento" - -#: collections/gamecollection.cpp:71 -msgid "Developer" -msgstr "Desenvolvedor" - -#: collections/gamecollection.cpp:80 -msgid "" -"_: Video game ratings - Unrated, Adults Only, Mature, Teen, Everyone, Early " -"Childhood, Pending\n" -"Unrated, Adults Only, Mature, Teen, Everyone, Early Childhood, Pending" -msgstr "" -"N?o Classificado, Somente Adultos, Jovens, Adolescentes, Sem Censura, " -"Infantil, Pendente" - -#: collections/gamecollection.cpp:82 -msgid "ESRB Rating" -msgstr "Classifica??o da ESRB" - -#: collections/gamecollection.cpp:95 -msgid "Completed" -msgstr "Completado" - -#: collections/cardcollection.cpp:26 -msgid "My Cards" -msgstr "Meus Cart?es" - -#: collections/cardcollection.cpp:43 -msgid "Player" -msgstr "Jogador" - -#: collections/cardcollection.cpp:49 -msgid "Team" -msgstr "Time" - -#: collections/cardcollection.cpp:55 -msgid "Brand" -msgstr "Marca" - -#: collections/cardcollection.cpp:62 -msgid "Card Number" -msgstr "N?mero do Cart?o" - -#: collections/cardcollection.cpp:77 -msgid "Card Type" -msgstr "Tipo do Cart?o" - -#: collections/cardcollection.cpp:109 -msgid "Front Image" -msgstr "Imagem Frontal" - -#: collections/cardcollection.cpp:112 -msgid "Back Image" -msgstr "Imagem no Verso" - -#: collectionfactory.cpp:123 collections/bibtexcollection.cpp:30 -msgid "Bibliography" -msgstr "Bibliografia" - -#: collections/bibtexcollection.cpp:72 -msgid "Entry Type" -msgstr "Tipo de Registro" - -#: collections/bibtexcollection.cpp:76 -msgid "These entry types are specific to bibtex. See the bibtex documentation." -msgstr "" -"Estes tipos de registro s?o espec?ficos para o BibTeX. Consulte a " -"documenta??o do mesmo." - -#: collections/bibtexcollection.cpp:86 -msgid "Bibtex Key" -msgstr "Chave do BibTeX" - -#: collections/bibtexcollection.cpp:92 -msgid "Book Title" -msgstr "T?tulo do livro" - -#: collections/bibtexcollection.cpp:98 -msgid "Editor" -msgstr "Editor" - -#: collections/bibtexcollection.cpp:105 -msgid "Organization" -msgstr "Organiza??o" - -#: collections/bibtexcollection.cpp:127 fetch/srufetcher.cpp:434 -#: fetch/z3950fetcher.cpp:669 -msgid "Address" -msgstr "Endere?o" - -#: collections/bibtexcollection.cpp:166 -msgid "Month" -msgstr "M?s" - -#: collections/bibtexcollection.cpp:177 -msgid "How Published" -msgstr "Modo de publica??o" - -#: collections/bibtexcollection.cpp:189 -msgid "Chapter" -msgstr "Cap?tulo" - -#: collections/bibtexcollection.cpp:201 collections/filecatalog.cpp:50 -msgid "Volume" -msgstr "Volume" - -#: collections/bibtexcollection.cpp:206 -msgid "Cross-Reference" -msgstr "Refer?ncia cruzada" - -#: collections/bibtexcollection.cpp:221 fetch/entrezfetcher.cpp:463 -#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:670 -#: translators/risimporter.cpp:246 -msgid "Abstract" -msgstr "Resumo" - -#: collections/bibtexcollection.cpp:225 -msgid "Notes" -msgstr "Notas" - -#: collections/musiccollection.cpp:26 -msgid "My Music" -msgstr "Minhas M?sicas" - -#: collections/musiccollection.cpp:37 -msgid "Album" -msgstr "?lbum" - -#: collections/musiccollection.cpp:44 translators/freedbimporter.cpp:224 -#: translators/freedbimporter.cpp:337 translators/freedbimporter.cpp:404 -msgid "Compact Disc" -msgstr "CD" - -#: collections/musiccollection.cpp:44 -msgid "Cassette" -msgstr "Cassete" - -#: collections/musiccollection.cpp:44 -msgid "Vinyl" -msgstr "Vinil" - -#: collections/musiccollection.cpp:50 collections/musiccollection.cpp:77 -#: translators/tellicoimporter.cpp:405 -msgid "Artist" -msgstr "Artista" - -#: collections/musiccollection.cpp:56 -msgid "Label" -msgstr "Selo" - -#: collections/musiccollection.cpp:73 -msgid "Tracks" -msgstr "Pistas" - -#: collections/musiccollection.cpp:78 translators/tellicoimporter.cpp:406 -msgid "Length" -msgstr "Dura??o" - -#: collections/filecatalog.cpp:25 -msgid "My Files" -msgstr "Meus Arquivos" - -#: borrowerdialog.cpp:48 collections/filecatalog.cpp:36 -#: newstuff/dialog.cpp:112 -msgid "Name" -msgstr "Nome" - -#: collections/filecatalog.cpp:55 -msgid "Folder" -msgstr "Pasta" - -#: collections/filecatalog.cpp:60 -msgid "Mimetype" -msgstr "Tipo MIME" - -#: collections/filecatalog.cpp:65 -msgid "Size" -msgstr "Tamanho" - -#: collections/filecatalog.cpp:69 -msgid "Permissions" -msgstr "Permiss?es" - -#: collections/filecatalog.cpp:74 -msgid "Owner" -msgstr "Dono" - -#: collections/filecatalog.cpp:79 -msgid "Group" -msgstr "Grupo" - -#: collections/filecatalog.cpp:85 -msgid "Created" -msgstr "Criado" - -#: collections/filecatalog.cpp:89 -msgid "Modified" -msgstr "Modificado" - -#: collections/filecatalog.cpp:93 -msgid "Meta Info" -msgstr "Meta-informa??o" - -#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:95 -msgid "Property" -msgstr "Propriedade" - -#: collectionfieldsdialog.cpp:854 collections/filecatalog.cpp:96 -msgid "Value" -msgstr "Valor" - -#: collections/filecatalog.cpp:99 -msgid "Icon" -msgstr "?cone" - -#: collections/boardgamecollection.cpp:26 -#, fuzzy -msgid "My Board Games" -msgstr "Meus Jogos" - -#: collections/boardgamecollection.cpp:49 -msgid "Mechanism" -msgstr "" - -#: collections/boardgamecollection.cpp:66 -msgid "Designer" -msgstr "" - -#: collections/boardgamecollection.cpp:72 -msgid "Number of Players" -msgstr "" - -#: collections/boardgamecollection.cpp:77 -msgid "BoardGameGeek ID" -msgstr "" - #: collectionfieldsdialog.cpp:56 msgid "Collection Fields" msgstr "Campos da Cole??o" @@ -2727,10 +3574,8 @@ msgstr "Um campo Imagem serve para armazenar uma foto ou figura." #: collectionfieldsdialog.cpp:144 -msgid "" -"A Date field can be used for values with a day, month, and year. " -msgstr "" -"Um campo Data pode ser utilizado para valores com dia, m?s e ano." +msgid "A Date field can be used for values with a day, month, and year. " +msgstr "Um campo Data pode ser utilizado para valores com dia, m?s e ano." #: collectionfieldsdialog.cpp:145 msgid "A Rating field uses stars to show a rating number. " @@ -2835,8 +3680,7 @@ msgstr "Permitir apenas a formata??o autom?tica em letras mai?sculas" #: collectionfieldsdialog.cpp:230 -msgid "" -"This option allows the field to be capitalized, but not specially formatted." +msgid "This option allows the field to be capitalized, but not specially formatted." msgstr "" "Esta op??o permite p?r o campo em mai?sculas, mas sem formata??es " "especiais." @@ -2898,16 +3742,14 @@ msgstr "Permitir agrupamento" #: collectionfieldsdialog.cpp:248 -msgid "" -"If checked, this field may be used to group the entries in the group view." +msgid "If checked, this field may be used to group the entries in the group view." msgstr "" "Se selecionado, este campo ser? utilizado para reagrupar os registros na " "vis?o de grupos." #: collectionfieldsdialog.cpp:262 msgid "Revert the selected field's properties to the default values." -msgstr "" -"Reverter as propriedades dos campos selecionados para seus valores padr?o." +msgstr "Reverter as propriedades dos campos selecionados para seus valores padr?o." #: collectionfieldsdialog.cpp:301 msgid "Modify Fields" @@ -2927,11 +3769,6 @@ msgid "Keep modified values" msgstr "Manter os valores modificados" -#: collectionfieldsdialog.cpp:394 collectionfieldsdialog.cpp:397 -#: translators/csvimporter.cpp:426 translators/csvimporter.cpp:530 -msgid "New Field" -msgstr "Novo campo" - #: collectionfieldsdialog.cpp:728 msgid "Revert Field Properties" msgstr "Reverter Propriedades do Campo" @@ -2994,481 +3831,6 @@ msgid "Tables are limited to a maximum of ten columns." msgstr "Tabelas s?o limitadas a um m?ximo de dez colunas." -#: calendarhandler.cpp:166 -msgid "Default Calendar" -msgstr "Calend?rio Padr?o" - -#: calendarhandler.cpp:174 -msgid "" -"At the moment, Tellico only supports local calendar resources. The active " -"calendar is remotely located, so your loans will not be added." -msgstr "" -"Presentemente, Tellico suporta apenas recursos de calend?rio locais. O " -"calend?rio ativo est? localizado remotamente, ent?o seus empr?stimos " -"n?o ser?o adicionados." - -#: calendarhandler.cpp:179 -msgid "Active Calendar" -msgstr "Calend?rio Ativo" - -#: calendarhandler.cpp:202 -msgid "Tellico: %1 is due to return \"%2\"" -msgstr "Tellico: %1 est? previsto para ser devolvido para \"%2\"" - -#: fetch/entrezfetcher.cpp:54 -msgid "Entrez Database" -msgstr "Banco de Dados Entrez" - -#: fetch/animenfofetcher.cpp:369 fetch/entrezfetcher.cpp:443 -#: fetch/ibsfetcher.cpp:401 fetch/isbndbfetcher.cpp:257 -#: fetch/yahoofetcher.cpp:392 -msgid "This source has no options." -msgstr "Esta fonte n?o tem op??es" - -#: fetch/entrezfetcher.cpp:462 -msgid "Institution" -msgstr "Institui??o" - -#: fetch/configwidget.cpp:29 -msgid "Source Options" -msgstr "Op??es da Fonte" - -#: fetch/configwidget.cpp:40 -msgid "Available Fields" -msgstr "Campos Dispon?veis" - -#: fetch/srufetcher.cpp:65 -msgid "SRU Server" -msgstr "Servidor SRU" - -#: fetch/imdbfetcher.cpp:1076 fetch/srufetcher.cpp:349 -#: fetch/z3950fetcher.cpp:505 -msgid "Hos&t: " -msgstr "&Servidor:" - -#: fetch/srufetcher.cpp:355 fetch/z3950fetcher.cpp:511 -msgid "Enter the host name of the server." -msgstr "Insira o nome do servidor" - -#: fetch/srufetcher.cpp:360 fetch/z3950fetcher.cpp:516 -msgid "&Port: " -msgstr "&Porta:" - -#: fetch/srufetcher.cpp:365 fetch/z3950fetcher.cpp:521 -#, c-format -msgid "Enter the port number of the server. The default is %1." -msgstr "Insira o n?mero da porta do servidor z39.50. A porta padr?o ? %1." - -#: fetch/srufetcher.cpp:370 -msgid "Path: " -msgstr "Caminho:" - -#: fetch/srufetcher.cpp:375 -msgid "Enter the path to the database used by the server." -msgstr "Insira o caminho para o banco de dados utilizado pelo servidor" - -#: fetch/srufetcher.cpp:380 -msgid "Format: " -msgstr "Formato:" - -#: fetch/srufetcher.cpp:387 -msgid "Enter the result format used by the server." -msgstr "Informe o formato de resultado utilizado pelo servidor." - -#: fetch/imdbfetcher.cpp:88 -msgid "Internet Movie Database" -msgstr "Base de dados de filmes na Internet" - -#: fetch/imdbfetcher.cpp:577 -msgid "Select IMDB Result" -msgstr "Selecione o resultado IMDB" - -#: fetch/imdbfetcher.cpp:580 -msgid "" -"Your search returned multiple matches. Please select one below." -msgstr "" -"A sua pesquisa retornou v?rios resultados. Por favor selecione um dos " -"seguintes." - -#: fetch/imdbfetcher.cpp:595 -msgid "Select a search result." -msgstr "Selecione um resultado da pesquisa." - -#: fetch/imdbfetcher.cpp:687 fetch/imdbfetcher.cpp:1140 -msgid "IMDB Link" -msgstr "Link IMDB" - -#: fetch/animenfofetcher.cpp:259 fetch/imdbfetcher.cpp:742 -#: fetch/imdbfetcher.cpp:1142 -msgid "Alternative Titles" -msgstr "T?tulos alternativos" - -#: fetch/imdbfetcher.cpp:909 fetch/imdbfetcher.cpp:1141 -msgid "IMDB Rating" -msgstr "Classifica??o IMDB" - -#: fetch/imdbfetcher.cpp:1020 fetch/imdbfetcher.cpp:1143 -msgid "Certifications" -msgstr "Certifica??es" - -#: fetch/imdbfetcher.cpp:1081 -msgid "" -"The Internet Movie Database uses several different servers. Choose the one " -"you wish to use." -msgstr "" -"A base de dados de filmes na Internet (IMDB) utiliza v?rios servidores " -"diferentes. Escolha o que deseja utilizar." - -#: fetch/imdbfetcher.cpp:1087 -msgid "&Maximum cast: " -msgstr "Elenco &m?ximo:" - -#: fetch/imdbfetcher.cpp:1092 -msgid "" -"The list of cast members may include many people. Set the maximum number " -"returned from the search." -msgstr "" -"A lista de membros do elenco pode incluir muitas pessoas. Especifique o " -"n?mero m?ximo a ser retornado da pesquisa." - -#: fetch/imdbfetcher.cpp:1097 -msgid "Download cover &image" -msgstr "Efetuar o Download da &Imagem da Capa" - -#: fetch/amazonfetcher.cpp:802 fetch/imdbfetcher.cpp:1101 -msgid "" -"The cover image may be downloaded as well. However, too many large images in " -"the collection may degrade performance." -msgstr "" -"A imagem da capa pode obtida da mesma forma. No entanto, imagens grandes na " -"cole??o podem degradar o desempenho." - -#: fetch/fetchmanager.cpp:63 -msgid "Person" -msgstr "Pessoa" - -#: fetch/fetchmanager.cpp:64 -msgid "ISBN" -msgstr "ISBN" - -#: fetch/fetchmanager.cpp:65 -msgid "UPC" -msgstr "UPC" - -#: fetch/fetchmanager.cpp:66 -msgid "Keyword" -msgstr "Palavra chave" - -#: fetch/fetchmanager.cpp:67 -msgid "Raw Query" -msgstr "Pesquisa n?o refinada" - -#: fetch/amazonfetcher.cpp:50 -msgid "Amazon Link" -msgstr "Amazon Link" - -#: fetch/amazonfetcher.cpp:59 -msgid "Amazon (US)" -msgstr "Amazon (Estados Unidos)" - -#: fetch/amazonfetcher.cpp:62 -msgid "Amazon (UK)" -msgstr "Amazon (Reino Unido)" - -#: fetch/amazonfetcher.cpp:65 -msgid "Amazon (Germany)" -msgstr "Amazon (Alemanha)" - -#: fetch/amazonfetcher.cpp:68 -msgid "Amazon (Japan)" -msgstr "Amazon (Jap?o)" - -#: fetch/amazonfetcher.cpp:71 -msgid "Amazon (France)" -msgstr "Amazon (Fran?a)" - -#: fetch/amazonfetcher.cpp:74 -msgid "Amazon (Canada)" -msgstr "Amazon (Canad?)" - -#: fetch/amazonfetcher.cpp:96 -msgid "Amazon.com Web Services" -msgstr "Servi?os Web da Amazon.com" - -#: fetch/amazonfetcher.cpp:189 fetch/animenfofetcher.cpp:74 -#: fetch/ibsfetcher.cpp:71 fetch/isbndbfetcher.cpp:75 -#: fetch/yahoofetcher.cpp:92 -msgid "%1 does not allow searching for this collection type." -msgstr "%1 n?o permite a pesquisa para este tipo de cole??o." - -#: fetch/amazonfetcher.cpp:513 -msgid "Results from %1: %2/%3" -msgstr "Resultados de %1 : %2/%3" - -#: fetch/amazonfetcher.cpp:537 fetch/z3950fetcher.cpp:425 -msgid "No entries were found for the following ISBN values:" -msgstr "Nenhuma entrada encontrada para os ISBN seguintes:" - -#: fetch/amazonfetcher.cpp:696 fetch/yahoofetcher.cpp:242 -msgid "The cover image could not be loaded." -msgstr "A imagem da capa n?o p?de ser carregada." - -#: fetch/amazonfetcher.cpp:773 -msgid "Co&untry: " -msgstr "&Pa?s" - -#: fetch/amazonfetcher.cpp:777 -msgid "United States" -msgstr "Estados Unidos" - -#: fetch/amazonfetcher.cpp:778 -msgid "United Kingdom" -msgstr "Reino Unido" - -#: fetch/amazonfetcher.cpp:779 -msgid "Germany" -msgstr "Alemanha" - -#: fetch/amazonfetcher.cpp:780 -msgid "Japan" -msgstr "Jap?o" - -#: fetch/amazonfetcher.cpp:781 -msgid "France" -msgstr "Fran?a" - -#: fetch/amazonfetcher.cpp:782 -msgid "Canada" -msgstr "Canad?" - -#: fetch/amazonfetcher.cpp:786 -msgid "" -"Amazon.com provides data from several different localized sites. Choose the " -"one you wish to use for this data source." -msgstr "" -"Amazon.com disponibiliza dados de v?rios sites em diferentes " -"localiza??es. Escolha o que deseja utilizar como fonte de dados." - -#: fetch/amazonfetcher.cpp:792 -msgid "&Image size: " -msgstr "&Tamanho da Imagem" - -#: fetch/amazonfetcher.cpp:796 -msgid "Small Image" -msgstr "Imagem Pequena" - -#: fetch/amazonfetcher.cpp:797 -msgid "Medium Image" -msgstr "Imagem M?dia" - -#: fetch/amazonfetcher.cpp:798 -msgid "Large Image" -msgstr "Imagem Grande" - -#: fetch/amazonfetcher.cpp:799 -msgid "No Image" -msgstr "Sem Imagem" - -#: fetch/amazonfetcher.cpp:808 -msgid "&Associate's ID: " -msgstr "Identidade &associada: " - -#: fetch/amazonfetcher.cpp:813 -msgid "" -"The associate's id identifies the person accessing the Amazon.com Web " -"Services, and is included in any links to the Amazon.com site." -msgstr "" -"A identidade associada identifica a pessoa acessando os servi?os Web " -"Amazon.com, e ser? inclu?da em todos os links para o site Amazon.com." - -#: fetch/execexternalfetcher.cpp:82 -msgid "External Application" -msgstr "Aplicativo Externo" - -#: configdialog.cpp:355 fetch/execexternalfetcher.cpp:344 -#: translators/csvimporter.cpp:178 -msgid "Collection &type:" -msgstr "&Tipo de cole??o:" - -#: fetch/execexternalfetcher.cpp:349 -msgid "" -"Set the collection type of the data returned from the external application." -msgstr "" -"Especifique o tipo de cole??o dos dados retornados do aplicativo externo." - -#: fetch/execexternalfetcher.cpp:354 -msgid "&Result type: " -msgstr "Tipo de &Resultado:" - -#: fetch/execexternalfetcher.cpp:363 -msgid "Set the result type of the data returned from the external application." -msgstr "" -"Especifique o tipo de resultado dos dados retornados do aplicativo externo." - -#: fetch/execexternalfetcher.cpp:368 -msgid "Application &path: " -msgstr "&Caminho do Aplicativo:" - -#: fetch/execexternalfetcher.cpp:373 -msgid "" -"Set the path of the application to run that should output a valid Tellico " -"data file." -msgstr "" -"Especifique o caminho do aplicativo a ser executado que deve gerar um " -"arquivo de dados Tellico v?lido." - -#: fetch/execexternalfetcher.cpp:378 -msgid "Select the search keys supported by the data source." -msgstr "Selecione as chaves de procura suportadas pela fonte de dados." - -#: fetch/execexternalfetcher.cpp:379 -msgid "" -"Add any arguments that may be needed. %1 will be replaced by the " -"search term." -msgstr "" -"Adicione todos os argumentos necess?rios. %1 vai ser substitu?do " -"pelo termo a ser pesquisado." - -#: fetch/execexternalfetcher.cpp:380 -msgid "Arguments" -msgstr "Argumentos" - -#: fetch/execexternalfetcher.cpp:413 newstuff/dialog.cpp:151 -msgid "Update" -msgstr "Atualizar" - -#: fetch/execexternalfetcher.cpp:420 -msgid "" -"

Enter the arguments which should be used to search for available updates " -"to an entry.

The format is the same as for Dependent fields, " -"where field values are contained inside braces, such as %{author} See " -"the documentation for details.

" -msgstr "" -"

Forne?a os argumentos que devem ser usados para procurar por " -"atualiza??es dispon?veis para um registro.

O formato ? o mesmo dos " -"campos Dependentes, onde os valores dos campos s?o contidos entre " -"colchetes, como %{author} Veja a documenta??o para maiores " -"detalhes.

" - -#: fetch/z3950fetcher.cpp:78 fetch/z3950fetcher.cpp:756 -msgid "z39.50 Server" -msgstr "Servidor z39.50" - -#: fetch/z3950fetcher.cpp:495 -msgid "Use preset &server:" -msgstr "Usar &servidor pr?-definido" - -#: fetch/z3950fetcher.cpp:526 -msgid "&Database: " -msgstr "Base de &dados:" - -#: fetch/z3950fetcher.cpp:531 -msgid "Enter the database name used by the server." -msgstr "Insira o nome da base de dados utilizado pelo servidor." - -#: fetch/z3950fetcher.cpp:536 -msgid "Ch&aracter set: " -msgstr "Conjunto de c&aracteres: " - -#: fetch/z3950fetcher.cpp:545 -msgid "" -"Enter the character set encoding used by the z39.50 server. The most likely " -"choice is MARC-8, although ISO-8859-1 is common as well." -msgstr "" -"Insira o conjunto de caracteres utilizado pelo servidor z39.50. A escolha " -"mais prov?vel ? MARC-8, apesar do ISO-8859-1 ser t?o comum quanto." - -#: fetch/z3950fetcher.cpp:551 -msgid "&Format: " -msgstr "&Formato:" - -#: fetch/z3950fetcher.cpp:554 -msgid "Auto-detect" -msgstr "Detectar automaticamente" - -#: fetch/z3950fetcher.cpp:562 -msgid "" -"Enter the data format used by the z39.50 server. Tellico will attempt to " -"automatically detect the best setting if auto-detect is selected." -msgstr "" -"Entre com o formato de dados utilizado pelo servidor z39.50. Tellico vai " -"tentar detectar a melhor configura??o se Detectar automaticamente " -"estiver selecionado." - -#: fetch/z3950fetcher.cpp:568 -msgid "&User: " -msgstr "&Usu?rio:" - -#: fetch/z3950fetcher.cpp:571 fetch/z3950fetcher.cpp:583 -msgid "Optional" -msgstr "Opcional" - -#: fetch/z3950fetcher.cpp:574 -msgid "" -"Enter the authentication user name used by the z39.50 database. Most servers " -"do not need one." -msgstr "" -"Insira o nome da base de dados utilizada pelo servidor z39.50. A maioria dos " -"servidores n?o precisam dele." - -#: fetch/z3950fetcher.cpp:580 -msgid "Pass&word: " -msgstr "&Senha:" - -#: fetch/z3950fetcher.cpp:587 -msgid "" -"Enter the authentication password used by the z39.50 database. Most servers " -"do not need one. The password will be saved in plain text in the Tellico " -"configuration file." -msgstr "" -"Insira a senha utilizada para a base de dados z39.50. A maior parte dos " -"servidores n?o precisam dela. A senha ser? salva em formato texto no " -"arquivo de configura??o do Tellico." - -#: fetch/z3950fetcher.cpp:671 -msgid "Illustrator" -msgstr "Ilustrador" - -#: fetch/animenfofetcher.cpp:256 -msgid "Original Title" -msgstr "T?tulo Original" - -#: fetch/animenfofetcher.cpp:263 -msgid "Distributor" -msgstr "Distribuidor" - -#: fetch/animenfofetcher.cpp:269 -msgid "Episodes" -msgstr "Epis?dios" - -#: fetch/z3950connection.cpp:115 -msgid "Query error!" -msgstr "Erro na pesquisa!" - -#: fetch/z3950connection.cpp:156 -msgid "Connection search error %1: %2" -msgstr "Erro na procura da conex?o %1: %2" - -#: fetch/z3950connection.cpp:233 -msgid "Record syntax error" -msgstr "Erro de Sintaxe no Registro" - -#: fetch/z3950connection.cpp:316 -msgid "Connection error %1: %2" -msgstr "Erro de conex?o %1: %2" - -#: fetch/ibsfetcher.cpp:45 -msgid "Internet Bookshop (ibs.it)" -msgstr "Internet Bookshop (ibs.it)" - -#: fetch/yahoofetcher.cpp:51 -msgid "Yahoo! Audio Search" -msgstr "Yahoo! Audio Search" - -#: fetch/isbndbfetcher.cpp:50 -msgid "ISBNdb.com" -msgstr "ISBNdb.com" - #: document.cpp:148 msgid "" "The current file has been modified.\n" @@ -3485,111 +3847,6 @@ msgid "Select Borrower" msgstr "Selecione a pessoa que pegou o item emprestado" -#: collectionfactory.cpp:79 -msgid "My Collection" -msgstr "Minha Cole??o" - -#: collectionfactory.cpp:122 -msgid "Book Collection" -msgstr "Cole??o de Livros" - -#: collectionfactory.cpp:124 -msgid "Comic Book Collection" -msgstr "Cole??o de Revistas em Quadrinhos" - -#: collectionfactory.cpp:125 -msgid "Video Collection" -msgstr "Cole??o de V?deos" - -#: collectionfactory.cpp:126 -msgid "Music Collection" -msgstr "Cole??o de M?sicas" - -#: collectionfactory.cpp:127 -msgid "Coin Collection" -msgstr "Cole??o de Moedas" - -#: collectionfactory.cpp:128 -msgid "Stamp Collection" -msgstr "Cole??o de Selos" - -#: collectionfactory.cpp:129 -msgid "Wine Collection" -msgstr "Cole??o de Vinhos" - -#: collectionfactory.cpp:130 -msgid "Card Collection" -msgstr "Cole??o de Cart?es" - -#: collectionfactory.cpp:131 -msgid "Game Collection" -msgstr "Cole??o de Jogos" - -#: collectionfactory.cpp:132 -msgid "File Catalog" -msgstr "Cat?logo de Arquivos" - -#: collectionfactory.cpp:133 -#, fuzzy -msgid "Board Game Collection" -msgstr "Cole??o de Jogos" - -#: collectionfactory.cpp:134 -msgid "Custom Collection" -msgstr "Cole??o Personalizada" - -#: loanview.cpp:73 -msgid "Check-in" -msgstr "Registro de entrada" - -#: loanview.cpp:75 -msgid "Modify Loan..." -msgstr "&Modificar empr?stimo..." - -#: loanview.cpp:92 -msgid "Borrower (Sort by Count)" -msgstr "Pessoa que pegou emprestado (Classificar por Contagem)" - -#: main.cpp:23 -msgid "Tellico - a collection manager for KDE" -msgstr "Tellico - um gerenciador de cole??es para o KDE" - -#: main.cpp:27 -msgid "Do not reopen the last open file" -msgstr "N?o reabrir o ?ltimo arquivo aberto" - -#: main.cpp:28 -msgid "Import as a bibtex file" -msgstr "Importar como um arquivo do BibTeX" - -#: main.cpp:29 -msgid "Import as a MODS file" -msgstr "Importar como um arquivo MODS" - -#: main.cpp:30 -msgid "Import as a RIS file" -msgstr "Importar como um arquivo RIS" - -#: main.cpp:31 -msgid "File to open" -msgstr "Arquivo a ser aberto" - -#: main.cpp:42 -msgid "Data source scripts" -msgstr "Scripts de fontes de dados" - -#: main.cpp:44 -msgid "Icons" -msgstr "?cones" - -#: main.cpp:46 -msgid "Author of btparse library" -msgstr "Autor da biblioteca btparse" - -#: main.cpp:48 -msgid "Code examples and general inspiration" -msgstr "Exemplos de c?digo e inspira??o em geral" - #: configdialog.cpp:99 msgid "Configure Tellico" msgstr "Configurar Tellico" @@ -3630,8 +3887,7 @@ #: configdialog.cpp:209 msgid "If checked, the \"Tip of the Day\" will be shown at program start-up." -msgstr "" -"Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." +msgstr "Se selecionado, as '\"Dicas do Dia\" ser?o mostradas ao iniciar o programa." #: configdialog.cpp:214 configdialog.cpp:291 msgid "Formatting Options" @@ -3653,8 +3909,7 @@ #: configdialog.cpp:224 configdialog.cpp:295 msgid "If checked, titles and names will be automatically formatted." -msgstr "" -"Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." +msgstr "Se selecionado, os t?tulos e os nomes ser?o automaticamente formatados." #: configdialog.cpp:232 msgid "No capitali&zation:" @@ -3722,11 +3977,6 @@ msgid "&Print field headers" msgstr "Im&primir cabe?alhos dos campos" -#: configdialog.cpp:299 translators/htmlexporter.cpp:467 -msgid "If checked, the field names will be printed as table headers." -msgstr "" -"Se selecionado, o nome dos campos ser? impresso como t?tulos de uma tabela." - #: configdialog.cpp:302 msgid "Grouping Options" msgstr "Op??es de agrupamento" @@ -3735,12 +3985,6 @@ msgid "&Group the entries" msgstr "A&grupar os registros" -#: configdialog.cpp:306 translators/htmlexporter.cpp:472 -msgid "If checked, the entries will be grouped by the selected field." -msgstr "" -"Se selecionado, os registros ser?o agrupados em fun??o do campo " -"selecionado." - #: configdialog.cpp:309 msgid "Image Options" msgstr "Op??es das Imagens" @@ -3753,8 +3997,7 @@ msgid "" "The maximum width of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." +msgstr "Largura m?xima das imagens na impress?o. As propor??es s?o conservadas." #: configdialog.cpp:328 msgid "&Maximum image height:" @@ -3764,8 +4007,7 @@ msgid "" "The maximum height of the images in the printout. The aspect ration is " "preserved." -msgstr "" -"Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." +msgstr "Altura m?xima da imagem na impress?o. As propor??es s?o conservadas." #: configdialog.cpp:347 msgid "Templates" @@ -3919,10 +4161,6 @@ msgid "Click to download additional data sources via the Internet." msgstr "Clique para baixar fontes de dados adicionais da internet." -#: configdialog.cpp:1003 translators/xsltimporter.cpp:85 -msgid "*.xsl|XSL Files (*.xsl)" -msgstr "*.xsl|Arquivos XSL (*.xsl)" - #: configdialog.cpp:1004 msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)" msgstr "*.tar.gz *.tgz|Pacotes de Modelos (*.tar.gz)" @@ -3935,6 +4173,70 @@ msgid "Select template to delete:" msgstr "Seleciona modelo a ser apagado" +#: loanview.cpp:32 loanview.cpp:90 xslt.cpp:26 +msgid "Borrower" +msgstr "Pessoa que pegou emprestado" + +#: loanview.cpp:73 +msgid "Check-in" +msgstr "Registro de entrada" + +#: loanview.cpp:75 +msgid "Modify Loan..." +msgstr "&Modificar empr?stimo..." + +#: loanview.cpp:92 +msgid "Borrower (Sort by Count)" +msgstr "Pessoa que pegou emprestado (Classificar por Contagem)" + +#: collectionfactory.cpp:76 +msgid "My Collection" +msgstr "Minha Cole??o" + +#: collectionfactory.cpp:117 +msgid "Book Collection" +msgstr "Cole??o de Livros" + +#: collectionfactory.cpp:119 +msgid "Comic Book Collection" +msgstr "Cole??o de Revistas em Quadrinhos" + +#: collectionfactory.cpp:120 +msgid "Video Collection" +msgstr "Cole??o de V?deos" + +#: collectionfactory.cpp:121 +msgid "Music Collection" +msgstr "Cole??o de M?sicas" + +#: collectionfactory.cpp:122 +msgid "Coin Collection" +msgstr "Cole??o de Moedas" + +#: collectionfactory.cpp:123 +msgid "Stamp Collection" +msgstr "Cole??o de Selos" + +#: collectionfactory.cpp:124 +msgid "Wine Collection" +msgstr "Cole??o de Vinhos" + +#: collectionfactory.cpp:125 +msgid "Card Collection" +msgstr "Cole??o de Cart?es" + +#: collectionfactory.cpp:126 +msgid "Game Collection" +msgstr "Cole??o de Jogos" + +#: collectionfactory.cpp:127 +msgid "File Catalog" +msgstr "Cat?logo de Arquivos" + +#: collectionfactory.cpp:128 +msgid "Custom Collection" +msgstr "Cole??o Personalizada" + #: viewstack.cpp:29 msgid "" "The Entry View shows a formatted view of the entry's " @@ -4048,8 +4350,7 @@ msgstr "Editar Lista..." #: fetchdialog.cpp:129 -msgid "" -"Click to open a text edit box for entering or editing multiple ISBN values." +msgid "Click to open a text edit box for entering or editing multiple ISBN values." msgstr "Clique para inserir ou editar os m?ltiplos ISBN a serem pesquisados." #: fetchdialog.cpp:135 @@ -4086,13 +4387,12 @@ msgstr "Adicionar o registro selecionado ? cole??o atual" #: fetchdialog.cpp:186 -#, fuzzy msgid "Get More Results" -msgstr "Selecione o resultado IMDB" +msgstr "Obter mais resultados" #: fetchdialog.cpp:189 msgid "Fetch more results from the current data source" -msgstr "" +msgstr "Obter mais resultados da fonte de dados atual" #: fetchdialog.cpp:193 msgid "Clear all search fields and results" @@ -4218,16 +4518,11 @@ msgstr "Selecione um modelo de relat?rio e clique em Gerar." #: reportdialog.cpp:108 -msgid "" -"Some reports may take several seconds to generate for large collections." +msgid "Some reports may take several seconds to generate for large collections." msgstr "" "Alguns relat?rios de grandes cole??es podem levar v?rios segundos para " "serem gerados." -#: reportdialog.cpp:195 translators/htmlexporter.cpp:87 -msgid "*.html|HTML Files (*.html)" -msgstr "*.html|Arquivos HTML (*.html)" - #: tellico_kernel.cpp:284 msgid "Do you really want to delete this filter?" msgstr "Deseja realmente apagar este filtro?" @@ -4240,727 +4535,357 @@ msgid "New collection name:" msgstr "Novo nome da cole??o:" -#: translators/bibteximporter.cpp:58 -#, c-format -msgid "No valid bibtex entries were found in file - %1" -msgstr "Nenhum registro v?lido do BibTeX encontrado no arquivo - %1" +#: entryview.cpp:168 +msgid "Tellico is unable to locate the default entry stylesheet." +msgstr "Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." -#: translators/bibtexmlexporter.cpp:40 -msgid "*.xml|Bibtexml Files (*.xml)" -msgstr "*.xml|Arquivos BibTeXML (*.xml)" +#: rc.cpp:2 +msgid "&New" +msgstr "&Novo" -#: translators/alexandriaexporter.cpp:41 -msgid "Alexandria" -msgstr "Alexandria" +#: rc.cpp:5 +msgid "&Collection" +msgstr "&Cole??o" -#: translators/alexandriaexporter.cpp:63 +#: rc.cpp:8 +msgid "Collection Toolbar" +msgstr "Barra de Ferramentas de Cole??o" + +#: _translatorinfo.cpp:1 msgid "" -"An Alexandria library called %1 already exists. Any existing " -"books in that library could be overwritten." -msgstr "" -"Uma biblioteca do Alexandria chamada %1 j? existe. Quaisquer " -"livros existentes nesta biblioteca podem ser sobrescritos." +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Cl?udio Henrique Fortes F?lix" -#: translators/tellicoxmlexporter.cpp:56 -msgid "XML" -msgstr "XML" +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "claudio@helpo.com.br" -#: translators/tellicoxmlexporter.cpp:470 -msgid "Tellico XML Options" -msgstr "Op??es XML do Tellico" - -#: translators/tellicoxmlexporter.cpp:473 -msgid "Include images in XML document" -msgstr "Incluir as imagens no documento XML" - -#: translators/tellicoxmlexporter.cpp:475 +#: tips.cpp:3 msgid "" -"If checked, the images in the document will be included in the XML stream as " -"base64 encoded elements." +"

...that if a book has more than one author, you should separate\n" +"their names by a semi-colon, so that Tellico will know to split them\n" +"and use them separately.

\n" +"

Any other field which allows multiple values should be entered the\n" +"same way. with a semi-colon (;) separating each value.

\n" msgstr "" -"Se selecionado, as imagens do documento ser?o integradas aos dados em XML " -"como elementos codificados em base64." +"

... que se um livro tiver v?rios autores, voc? deve separar\n" +" os nomes deles com ponto e v?rgula, informando ao Tellico como\n" +"separ?-los e utiliz?-los independentemente.

\n" +"

Qualquer outro campo que permita m?ltiplos valores dever? ter a\n" +"mesma estrutura, com um ponto e v?rgula (;) separando cada valor.

\n" -#: translators/importer.h:94 -msgid "Loading data..." -msgstr "Carregando dados..." - -#: translators/importer.h:94 -msgid "Loading %1..." -msgstr "Carregando %1..." - -#: translators/bibtexexporter.cpp:201 -msgid "Bibtex Options" -msgstr "Op??es do BibTeX" - -#: translators/bibtexexporter.cpp:204 -msgid "Expand string macros" -msgstr "Expandir as macros de string" - -#: translators/bibtexexporter.cpp:206 +#: tips.cpp:11 msgid "" -"If checked, the string macros will be expanded and no @string{} entries will " -"be written." +"

...that you can change which fields are shown in the list view by\n" +"right-clicking on the column header.\n" msgstr "" -"Se selecionado, as macros de string v?o ser expandidas e nenhum registro " -"@string{} ser? escrito." +"

...que voc? pode alterar que campos ser?o apresentados na Vis?o\n" +"de Lista ao clicar com o bot?o direito sobre o cabe?alho das colunas.\n" -#: translators/bibtexexporter.cpp:209 -msgid "Use URL package" -msgstr "Utilizar o pacote URL" - -#: translators/bibtexexporter.cpp:211 -msgid "If checked, any URL fields will be wrapped in a \\url declaration." +#: tips.cpp:16 +msgid "" +"

...that you can add, edit, or modify the fields in the collection using\n" +"the Field Editor. The arrow buttons below the field list can be used to " +"change the\n" +"position of the field in the list, which affects the placement in the entry\n" +"editor.

\n" msgstr "" -"Se selecionado, qualquer campo URL ser? transformado em uma declara??o " -"\\url." +"

...que voc? pode adicionar, editar, ou modificar os campos da cole??o " +"usando\n" +"o Editor de Campos. Os bot?es com setas sob a lista de campos permitem " +"modificar\n" +"a posi??o do campo na lista, o que afetar? sua posi??o no editor de " +"registro.

\n" -#: translators/bibtexexporter.cpp:214 -msgid "Skip entries with empty citation keys" -msgstr "Ignorar os registros com chaves de cita??o vazias" - -#: translators/bibtexexporter.cpp:216 -msgid "If checked, any entries without a bibtex citation key will be skipped." +#: tips.cpp:23 +msgid "" +"

...that if you want to filter by a Checkbox field, a value of\n" +"\"true\" should be used. If you'd like to filter to\n" +"show only the science fiction books which you've not read, for\n" +"example, check the Match all of the\n" +"following button, set the first rule to have \"Genre\"\n" +"\"contains\" \"Science Fiction\" (no quotes) and the second rule to\n" +"have \"Read\" \"does not contain\" \"true\" (no quotes).

\n" msgstr "" -"Se selecionado, qualquer registro sem uma chave de cita??o do BibTeX ser? " -"ignorado." +"

...que se voc? quiser filtrar a partir de um campo do tipo Marcador,\n" +"um valor \"verdadeiro\" deve ser usado. Se quiser, por exemplo, mostrar\n" +"apenas os livros de fic??o cient?fica que ainda n?o leu, marque o " +"bot?o\n" +"Verificar todas as regras seguintes, ajuste a primeira regra\n" +"para \"G?nero\" cont?m\" \"Fic??o cient?fica\" (sem aspas) e a segunda " +"regra\n" +"para: \"Lido\" \"N?o cont?m\" \"Verdadeiro\" (sem aspas).

\n" -#: translators/bibtexexporter.cpp:220 -msgid "Bibtex quotation style:" -msgstr "Estilo das cita??es do BibTeX:" - -#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:229 -#: translators/bibtexexporter.cpp:260 -msgid "Braces" -msgstr "Colchetes" - -#: translators/bibtexexporter.cpp:223 translators/bibtexexporter.cpp:231 -msgid "Quotes" -msgstr "Aspas" - -#: translators/bibtexexporter.cpp:224 +#: tips.cpp:33 msgid "" -"The quotation style used when exporting bibtex. All field values will " -"be escaped with either braces or quotation marks." +"

...that if a non-word character is used in the Quick Filter, the text is\n" +"interpreted as a regular expression.

\n" +"

To show only books which are by Weber or Bujold, for example, then\n" +"type \"weber|bujold\" (no quotes) in the filter box.

\n" msgstr "" -"Estilo de cita??o utilizado para arquivos no formato BibTeX. Os " -"valores de todos os campos ser?o envolvidos por colchetes ou aspas." +"

...que se um caractere n?o alfab?tico for utilizado no Filtro R?pido, " +"o\n" +"o texto ? interpretado como uma express?o regular.

\n" +"

Para mostrar somente os livros de Weber ou Bujold, por exemplo,\n" +"escreva \"weber|bujold\" (sem aspas) no campo do filtro.

\n" -#: translators/tellicozipexporter.cpp:35 -msgid "Tellico Zip File" -msgstr "Arquivo Zip Tellico" - -#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:173 -msgid "CSV Options" -msgstr "Op??es CSV" - -#: translators/csvimporter.cpp:181 -msgid "Select the type of collection being imported." -msgstr "Selecionar o tipo de cole??o a importar." - -#: translators/csvimporter.cpp:187 -msgid "&First row contains field titles" -msgstr "A &primeira linha cont?m os t?tulos dos campos" - -#: translators/csvimporter.cpp:188 -msgid "If checked, the first row is used as field titles." +#: tips.cpp:40 +msgid "" +"

...that you can edit more than one entry at a time, by holding down\n" +"the Shift or Ctrl key and selecting multiple entries.

\n" msgstr "" -"Se selecionado, a primeira linha ser? utilizada para o nome dos campos." +"

...que voc? pode editar mais de um registro de cada vez, segurando\n" +"a tecla Shift ou Ctrl e selecionando m?ltiplos registros.

\n" -#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:192 -msgid "Delimiter" -msgstr "Separador" - -#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:195 +#: tips.cpp:45 msgid "" -"In addition to a comma, other characters may be used as a delimiter, " -"separating each value in the file." +"

...that you can convert an existing book collection to a bibliography,\n" +"which can then be exported to bibtex or Bibtexml format.

\n" msgstr "" -"Al?m da v?rgula, outros caracteres podem ser utilizados para delimitar " -"cada valor no arquivo." +"

...que voc? pode converter uma cole??o de livros em bibliografia,\n" +"que pode ent?o ser exportada em formato BibTeX ou BibTeXML.

\n" -#: translators/csvimporter.cpp:200 -msgid "&Comma" -msgstr "&V?rgula" - -#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:202 -msgid "Use a comma as the delimiter." -msgstr "Utilizar a v?rgula como separador." - -#: translators/csvimporter.cpp:206 -msgid "&Semicolon" -msgstr "&Ponto e v?rgula" - -#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:207 -msgid "Use a semi-colon as the delimiter." -msgstr "Utilizar o ponto e v?rgula como separador." - -#: translators/csvimporter.cpp:211 -msgid "Ta&b" -msgstr "Ta&bula??o" - -#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:212 -msgid "Use a tab as the delimiter." -msgstr "Utilizar a tabula??o como separador." - -#: translators/csvimporter.cpp:216 -msgid "Ot&her:" -msgstr "Out&ro" - -#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:217 -msgid "Use a custom string as the delimiter." -msgstr "Utilizar um outro caractere como separador." - -#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:223 -msgid "A custom string, such as a colon, may be used as a delimiter." +#: tips.cpp:50 +msgid "" +"

...that you can add, edit, and delete string macros for " +"bibliographies.

\n" msgstr "" -"Um caractere qualquer, como os dois pontos, pode ser utilizado como " -"separador." +"

...que voc? pode adicionar, editar e apagar linhas de macros\n" +"para bibliografias.

\n" -#: translators/csvimporter.cpp:240 -msgid "The table shows up to the first five lines of the CSV file." -msgstr "A tabela mostra as cinco primeiras linhas do arquivo CSV." - -#: translators/csvimporter.cpp:247 +#: tips.cpp:54 msgid "" -"Set each column to correspond to a field in the collection by choosing a " -"column, selecting the field, then clicking the Assign Field " -"button." +"

...that if more than one field is formatted as a name, then an " +"additional\n" +"group named \"People\" is added to the collection, allowing authors and " +"editors\n" +"to be sorted or printed together, for example.

\n" msgstr "" -" Marque cada coluna para corresponder a um campo na cole??o escolhendo " -"uma coluna, selecionando o campo e clicando no bot?o Associar Campo " +"

...que se mais de um campo for formatado como nome, ent?o um grupo\n" +"adicional chamado \"Pessoas\" ? adicionado ? cole??o, permitindo que " +"autores e editores\n" +"sejam classificados ou impressos juntos, por exemplo.

\n" -#: translators/csvimporter.cpp:249 -msgid "Co&lumn:" -msgstr "Co&luna:" - -#: translators/csvimporter.cpp:258 -msgid "&Data field in this column:" -msgstr "Campo de &dados nesta coluna:" - -#: translators/csvimporter.cpp:266 -msgid "&Assign Field" -msgstr "&Associar Campo" - -#: translators/csvimporter.cpp:298 +#: tips.cpp:60 msgid "" -"At least one column must be assigned to a field. Only assigned columns will " -"be imported." +"

...that you can modify the appearance of the printed output by modifying\n" +"the tellico-printing.xsl file. The file generates HTML, and the " +"CSS\n" +"within the stylesheet governs things like the font, the margins, etc.

\n" msgstr "" +"

...que voc? pode modificar a apar?ncia da impress?o modificando o " +"arquivo\n" +"tellico-printing.xsl. O arquivo produz HTML, e o c?digo CSS na " +"p?gina\n" +" de estilo determina par?metros visuais como fontes, margens, etc.

\n" -#: translators/tellicoimporter.cpp:149 -msgid "It is from a future version of Tellico." -msgstr "Isto ? para uma futura vers?o do Tellico." - -#: translators/tellicoimporter.cpp:156 +#: tips.cpp:66 msgid "" -"Tellico is converting the file to a more recent document format. Information " -"loss may occur if an older version of Tellico is used to read this file in " -"the future." +"

...that you can import using any generic XSL stylesheet which\n" +"outputs a valid Tellico XML file.

\n" msgstr "" -"Tellico est? convertendo o arquivo para um formato mais recente. Pode haver " -"perda de informa??es se este arquivo for lido no futuro por uma vers?o " -"antiga do Tellico." +"

...que voc? pode importar dados usando uma folha de estilo XSL gen?rica " +"que\n" +"seja capaz de produzir um arquivo XML do Tellico v?lido.

\n" -#: translators/bibtexhandler.cpp:244 translators/risimporter.cpp:263 -#: translators/risimporter.cpp:267 translators/tellicoimporter.cpp:332 -msgid "Unknown" -msgstr "Desconhecido" - -#: translators/tellicoimporter.cpp:710 -msgid "The file is empty." -msgstr "O arquivo est? vazio." - -#: translators/tellicoimporter.cpp:728 -msgid "The file contains no collection data." -msgstr "O arquivo n?o cont?m dados de cole??o." - -#: translators/tellicoimporter.cpp:872 -msgid "Unread Books" -msgstr "Livros N?o Lidos" - -#: translators/tellicoimporter.cpp:882 -msgid "Old Movies" -msgstr "Filmes Antigos" - -#: translators/tellicoimporter.cpp:900 -msgid "80's Music" -msgstr "M?sica dos anos 80" - -#: translators/tellicoimporter.cpp:912 -msgid "Favorites" -msgstr "Favoritos" - -#: translators/risimporter.cpp:265 -msgid "PDF" -msgstr "PDF" - -#: translators/audiofileimporter.cpp:65 -msgid "Scanning audio files..." -msgstr "Procurando arquivos de ?udio..." - -#: translators/audiofileimporter.cpp:299 -msgid "Audio File Options" -msgstr "Op??es de Arquivo de ?udio" - -#: translators/audiofileimporter.cpp:301 -msgid "Recursive &folder search" -msgstr "Pesquisa recursiva de &pastas" - -#: translators/audiofileimporter.cpp:302 -msgid "If checked, folders are recursively searched for audio files." +#: tips.cpp:71 +msgid "

...that double-clicking an entry item opens the Entry Editor.

\n" msgstr "" -"Se selecionado, as pastas s?o varridas recursivamente para procurar " -"arquivos de ?udio." +"

...que um duplo clique sobre um registro permite abrir o editor de " +"Registros.

\n" -#: translators/audiofileimporter.cpp:306 -msgid "&Include file location" -msgstr "&Incluir localiza??o do arquivo" - -#: translators/audiofileimporter.cpp:307 -msgid "If checked, the file names for each track are added to the entries." +#: tips.cpp:75 +msgid "" +"

...that you can add HTML tags to any Paragraph field for formatting, such " +"as\n" +"<b>bold</b> or <i>italic</i>.

\n" msgstr "" -"Se selecionado, os nomes dos arquivos de cada faixa ser?o adicionados aos " -"registros." +"

...que voc? pode adicionar marcas HTML para formatar qualquer campo de " +"tipo Par?grafo, tais como\n" +"<b>bold</b> ou <i>italic</i>.

\n" -#: translators/csvexporter.cpp:40 -msgid "CSV" -msgstr "CSV" - -#: translators/csvexporter.cpp:112 -msgid "Include field titles as column headers" -msgstr "Incluir os nomes dos campos como cabe?alho das colunas" - -#: translators/csvexporter.cpp:114 -msgid "If checked, a header row will be added with the field titles." +#: tips.cpp:80 +msgid "" +"

...that in the Detailed View, you can press a letter on the\n" +"keyboard to skip to the next entry that starts with that letter.

\n" msgstr "" -"Se selecionada, uma linha de cabe?alho ser? adicionada com o nome dos " -"campos." +"

...que na Vis?o Detalhada, voc? pode pressionar uma letra do teclado " +"para ir diretamente ao pr?ximo registro que come?a por esta letra.

\n" -#: translators/csvexporter.cpp:124 -msgid "Comma" -msgstr "V?rgula" +#: xslt.cpp:2 +msgid "" +"_: Album XSL Template\n" +"Album" +msgstr "?lbum" -#: translators/csvexporter.cpp:130 -msgid "Semicolon" -msgstr "Ponto e v?rgula" +#: xslt.cpp:3 +msgid "This template is meant for music collections only." +msgstr "Este modelo ? apenas para cole??es de m?sica" -#: translators/csvexporter.cpp:135 -msgid "Tab" -msgstr "Aba" +#: xslt.cpp:5 +msgid "Total:" +msgstr "Total:" -#: translators/csvexporter.cpp:140 -msgid "Other" -msgstr "Outro" +#: xslt.cpp:7 +msgid "" +"_: Fancy XSL Template\n" +"Fancy" +msgstr "Sofisticado" -#: translators/pilotdbexporter.cpp:43 -msgid "PilotDB" -msgstr "PilotDB" +#: xslt.cpp:9 +msgid "" +"_: Default XSL Template\n" +"Default" +msgstr "Padr?o" -#: translators/pilotdbexporter.cpp:47 -msgid "*.pdb|Pilot Database Files(*.pdb)" -msgstr "*.pdb|Arquivos Pilot Database (*.pdb)" +#: xslt.cpp:11 +msgid "" +"_: Compact XSL Template\n" +"Compact" +msgstr "Compacto" -#: translators/pilotdbexporter.cpp:210 -msgid "PilotDB Options" -msgstr "Op??es do PilotDB" - -#: translators/pilotdbexporter.cpp:213 translators/pilotdbexporter.cpp:215 -msgid "Set PDA backup flag for database" -msgstr "Marcar a op??o PDA backup para a base de dados" - -#: translators/onixexporter.cpp:62 -msgid "ONIX Archive" -msgstr "Arquivo ONIX" - -#: translators/onixexporter.cpp:66 -msgid "*.zip|Zip Files (*.zip)" -msgstr "*.zip|Arquivos Zip (*.zip)" - -#: translators/onixexporter.cpp:175 -msgid "ONIX Archive Options" -msgstr "Op??es de Arquivo ONIX" - -#: translators/onixexporter.cpp:178 -msgid "Include images in archive" -msgstr "Incluir as imagens no arquivo" - -#: translators/onixexporter.cpp:180 +#: xslt.cpp:13 msgid "" -"If checked, the images in the document will be included in the zipped ONIX " -"archive." -msgstr "" -"Se selecionado, as imagens do documento ser?o inclu?das no arquivo zipado " -"ONIX." +"_: Video XSL Template\n" +"Video" +msgstr "V?deo" -#: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:137 -msgid "Tellico was unable to access the CD-ROM device - %1." -msgstr "" -"Tellico n?o p?de acessar o dispositivo de CD-ROM - %1." +#: xslt.cpp:14 xslt.cpp:43 +msgid "This template is meant for video collections only." +msgstr "Este modelo ? apenas para cole??es de v?deo" -#: translators/freedbimporter.cpp:163 -msgid "Select CDDB Entry" -msgstr "Seleciona Registro CDDB" - -#: translators/freedbimporter.cpp:164 -msgid "Select a CDDB entry:" -msgstr "Selecione um registro do CDDB:" - -#: translators/freedbimporter.cpp:187 -msgid "No records were found to match the CD." -msgstr "Nenhum registro correspondente ao CD foi encontrado." - -#: translators/freedbimporter.cpp:205 -msgid "Tellico was unable to complete the CD lookup." -msgstr "" -"Tellico n?o p?de completar a pesquisa das informa??es do CD." - -#: translators/freedbimporter.cpp:428 -msgid "Various" -msgstr "V?rios" - -#: translators/freedbimporter.cpp:447 -msgid "Audio CD Options" -msgstr "Op??es de CD de ?udio" - -#: translators/freedbimporter.cpp:451 -msgid "Read data from CD-ROM device" -msgstr "Ler dados do dispositivo de CD-ROM" - -#: translators/freedbimporter.cpp:454 -msgid "Select or input the CD-ROM device location." -msgstr "Selecione ou informe a localiza??o do dispositivo de CD-ROM." - -#: translators/freedbimporter.cpp:460 -msgid "Read all CDDB cache files only" -msgstr "Ler apenas os arquivos de cache do CDDB" - -#: translators/freedbimporter.cpp:461 +#: xslt.cpp:16 msgid "" -"Read data recursively from all the CDDB cache files contained in the default " -"cache folders." -msgstr "" -"Ler recursivamente os dados de todos os arquivos de cache do CDDB contidos " -"nas pastas de cache padr?o." +"_: Group Summary XSL Template\n" +"Group Summary" +msgstr "Resumo de Grupos" -#: translators/xsltimporter.cpp:45 translators/xsltimporter.cpp:51 -msgid "A valid XSLT file is needed to import the file." -msgstr "Um arquivo XSLT v?lido ? necess?rio para importar o arquivo." +#: xslt.cpp:17 +msgid ": Group Summary" +msgstr ": Resumo de Grupos" -#: translators/xsltexporter.cpp:69 translators/xsltimporter.cpp:79 -msgid "XSLT Options" -msgstr "Op??es de XSLT" +#: xslt.cpp:18 +msgid "Total number of fields:" +msgstr "N?mero total de campos:" -#: translators/xsltexporter.cpp:74 translators/xsltimporter.cpp:82 -msgid "XSLT file:" -msgstr "Arquivo XSLT:" +#: xslt.cpp:19 +msgid "Total number of entries:" +msgstr "N?mero total de registros:" -#: translators/xsltexporter.cpp:37 -msgid "XSLT" -msgstr "XSLT" +#: xslt.cpp:20 xslt.cpp:32 xslt.cpp:46 +msgid "Generated by Tellico" +msgstr "Gerado por Tellico" -#: translators/xsltexporter.cpp:76 -msgid "Choose the XSLT file used to transform the Tellico XML data." -msgstr "Escolher o arquivo XSLT para transformar os dados XML do Tellico." +#: xslt.cpp:21 +msgid "Distinct values: " +msgstr "Valores Distintos:" -#: translators/alexandriaimporter.cpp:178 -msgid "Alexandria Options" -msgstr "Op??es do Alexandria" - -#: translators/alexandriaimporter.cpp:179 -msgid "&Library:" -msgstr "&Biblioteca:" - -#: translators/htmlexporter.cpp:83 -msgid "HTML" -msgstr "HTML" - -#: translators/htmlexporter.cpp:318 -msgid "(grouped by %1)" -msgstr "(Agrupados por %1)" - -#: translators/htmlexporter.cpp:463 -msgid "HTML Options" -msgstr "Op??es HTML" - -#: translators/htmlexporter.cpp:466 -msgid "Print field headers" -msgstr "Imprimir os cabe?alhos dos campos" - -#: translators/htmlexporter.cpp:471 -msgid "Group the entries" -msgstr "Agrupar os registros" - -#: translators/htmlexporter.cpp:476 -msgid "Export individual entry files" -msgstr "Exporta arquivos de registros isolados" - -#: translators/htmlexporter.cpp:477 -msgid "If checked, individual files will be created for each entry." -msgstr "" -"Se selecionado, ser?o criados arquivos individuais para cada registro." - -#: translators/gcfilmsimporter.cpp:85 -msgid "The file is not a valid GCfilms data file." -msgstr "O arquivo n?o ? um arquivo de dados GCfilms v?lido" - -#: translators/filelistingimporter.cpp:62 -msgid "Scanning files..." -msgstr "Varrendo arquivos..." - -#: translators/filelistingimporter.cpp:196 -msgid "File Listing Options" -msgstr "Op??es de Listagem de Arquivo" - -#: translators/filelistingimporter.cpp:198 -msgid "Recursive folder search" -msgstr "Procura recursiva de pastas" - -#: translators/filelistingimporter.cpp:199 -msgid "If checked, folders are recursively searched for all files." -msgstr "" -"Se selecionado, as pastas s?o varridas recursivamente para procurar todos " -"os arquivos." - -#: translators/filelistingimporter.cpp:203 -msgid "Generate file previews" -msgstr "Gerar pr?-visualiza??es dos arquivos" - -#: translators/filelistingimporter.cpp:204 +#: xslt.cpp:23 msgid "" -"If checked, previews of the file contents are generated, which can slow down " -"the folder listing." -msgstr "" -"Se selecionado, ser?o geradas pr?-visualiza??es do conte?do dos " -"arquivos, o que pode causar lentid?o na listagem das pastas." +"_: Image List XSL Template\n" +"Image List" +msgstr "Lista de Imagens" -#: entryview.cpp:168 -msgid "Tellico is unable to locate the default entry stylesheet." -msgstr "" -"Tellico n?o p?de encontrar a folha de estilo padr?o para os registros." - -#: core/tellico_config.cpp:118 +#: xslt.cpp:25 msgid "" -"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to," -"up,with" -msgstr "um,uma,e,em,de,o,a " +"_: Loan View XSL Template\n" +"Loan View" +msgstr "Vis?o de Empr?stimos" -#: core/tellico_config.cpp:121 -msgid "the" -msgstr "o,a,os,as " +#: xslt.cpp:27 xslt.cpp:29 +msgid "Loan Date" +msgstr "Data de Empr?stimo" -#: core/tellico_config.cpp:124 -msgid "jr.,jr,iii,iv" -msgstr "jr.,jr,iii,iv " +#: xslt.cpp:28 xslt.cpp:31 +msgid "Note" +msgstr "Observa??o" -#: core/tellico_config.cpp:127 -msgid "de,van,der,van der,von" -msgstr "de,o,a " +#: xslt.cpp:30 +msgid "Due Date" +msgstr "Data para Devolu??o" -#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49 -msgid "Data Source Properties" -msgstr "Propriedades da Fonte de Dados" - -#: fetcherconfigdialog.cpp:77 -msgid "&Source name: " -msgstr "Nome da &fonte: " - -#: fetcherconfigdialog.cpp:79 +#: xslt.cpp:34 msgid "" -"The name identifies the data source and should be unique and informative." -msgstr "O nome identifica a fonte de dados, devendo ser ?nico e informativo." +"_: Group View XSL Template\n" +"Group View" +msgstr "Vis?o de Grupos" -#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94 -msgid "Source &type: " -msgstr "&Tipo de fonte: " - -#: fetcherconfigdialog.cpp:97 -msgid "Tellico supports several different data sources." -msgstr "Tellico suporta v?rias fontes de dados diferentes." - -#: fetcherconfigdialog.cpp:111 -msgid "Updating from source should overwrite user data" -msgstr "" -"A atualiza??o a partir de uma fonte sobrescrever? dados preenchidos pelo " -"usu?rio" - -#: fetcherconfigdialog.cpp:114 -msgid "If checked, updating entries will overwrite any existing information." -msgstr "" -"Se selecionado, a atualiza??o dos registros sobrescrever? toda " -"informa??o existente." - -#: cite/lyxpipe.cpp:47 -msgid "Tellico is unable to write to the server pipe at %1." -msgstr "" -"Tellico n?o conseguiu escrever para o 'pipe' do servidor em " -"%1." - -#: cite/openoffice.cpp:80 -msgid "Connecting to OpenOffice.org..." -msgstr "Conectando ao OpenOffice.org..." - -#: cite/openoffice.cpp:163 cite/openoffice.cpp:183 -msgid "OpenOffice.org Connection" -msgstr "Conex?o ao OpenOffice.org" - -#: cite/openoffice.cpp:177 +#: xslt.cpp:36 msgid "" -"Tellico was unable to connect to OpenOffice.org. Please verify the " -"connection settings below, and that OpenOffice.org Writer is currently " -"running." -msgstr "" -"Tellico n?o conseguiu se conectar ao OpenOffice.org. Por favor verifique as " -"op??es de conex?o abaixo e verifique se o OpenOffice.org Writer est? " -"rodando." +"_: Title Listing (Horizontal) XSL Template\n" +"Title Listing (Horizontal)" +msgstr "Listagem de T?tulos (Horizontal)" -#: cite/openoffice.cpp:188 -msgid "Pipe" -msgstr "Pipe" - -#: cite/openoffice.cpp:190 -msgid "TCP/IP" -msgstr "TCP/IP" - -#: rc.cpp:2 -msgid "&New" -msgstr "&Novo" - -#: rc.cpp:5 -msgid "&Collection" -msgstr "&Cole??o" - -#: rc.cpp:8 -msgid "Collection Toolbar" -msgstr "Barra de Ferramentas de Cole??o" - -#: entryupdater.cpp:82 -msgid "Updating %1..." -msgstr "Carregando %1..." - -#: entryupdater.cpp:84 -msgid "Updating entries..." -msgstr "Atualizando registros..." - -#: entryupdater.cpp:86 -msgid "Update Entries" -msgstr "Atualizar Registros" - -#: entryupdater.cpp:100 -msgid "Updating %1..." -msgstr "Atualizando %1..." - -#: entryupdater.cpp:210 -msgid "Select Match" -msgstr "Selecionar Correspond?ncia" - -#: entryupdater.cpp:218 +#: xslt.cpp:38 msgid "" -"%1 returned multiple results which could match %2, the " -"entry currently in the collection. Please select the correct match." -msgstr "" -"%1 foram retornados m?ltiplos resultados que correspondem a " -"%2, que ? o registro corrente na cole??o. Por favor selecione o " -"resultado desejado." +"_: Title Listing (Vertical) XSL Template\n" +"Title Listing (Vertical)" +msgstr "Listagem de T?tulos (Vertical)" -#: newstuff/dialog.cpp:93 -msgid "Get Hot New Stuff" -msgstr "Novidades Quentes" - -#: newstuff/dialog.cpp:113 -msgid "Version" -msgstr "Vers?o" - -#: newstuff/dialog.cpp:115 -msgid "Downloads" -msgstr "Downloads" - -#: newstuff/dialog.cpp:116 -msgid "Release Date" -msgstr "Data de Lan?amento" - -#: newstuff/dialog.cpp:120 +#: xslt.cpp:40 msgid "" -"This is a list of all the items available for download. Previously installed " -"items have a checkmark icon, while items with new version available have an " -"update icon" -msgstr "" -"Essa ? uma lista de todos os itens dispon?veis para download. Itens " -"previamente instalados s?o mostrados com um tique, enquanto itens que " -"tenham novas vers?es dispon?veis tem um ?cone de atualiza??o." +"_: Column View XSL Template\n" +"Column View" +msgstr "Vis?o de Colunas" -#: newstuff/dialog.cpp:136 -msgid "The name and license of the selected item" -msgstr "O nome e a licen?a do item selecionado" - -#: newstuff/dialog.cpp:139 -msgid "The author of the selected item" -msgstr "O autor do item selecionado" - -#: newstuff/dialog.cpp:141 newstuff/dialog.cpp:395 -msgid "Install" -msgstr "Instalar" - -#: newstuff/dialog.cpp:160 -msgid "Download and install the selected template." -msgstr "Baixa e instala o modelo selecionado." - -#: newstuff/dialog.cpp:163 +#: xslt.cpp:42 msgid "" -"Download and install the selected script. Some scripts may need to be " -"configured after being installed." -msgstr "" -"Baixa e instala o script selecionado. Alguns scripts podem precisar ser " -"configurados ap?s a instala??o." +"_: Tri-Column XSL Template\n" +"Tri-Column" +msgstr "Tripla Coluna" -#: newstuff/dialog.cpp:193 -msgid "A description of the selected item is shown here." -msgstr "Uma descri??o do item selecionado ? mostrada aqui." +#: xslt.cpp:44 +msgid "Search" +msgstr "Procura" -#: newstuff/dialog.cpp:223 -msgid "Downloading information..." -msgstr "Baixando informa??es..." +#: z3950.cpp:4 +msgid "The British Library" +msgstr "A Biblioteca Brit?nica" -#: newstuff/dialog.cpp:395 -msgid "" -"_: Update Stuff\n" -"Update" -msgstr "Atualiza??o" +#: z3950.cpp:6 +msgid "Sudoc (France)" +msgstr "Sudoc (Fran?a)" -#: newstuff/dialog.cpp:412 -msgid "Installing item..." -msgstr "Instalando item..." +#: z3950.cpp:8 +msgid "BIBSYS (Norway)" +msgstr "BIBSYS (Noruega)" -#~ msgid "Stamps" -#~ msgstr "Selos" +#: z3950.cpp:10 +msgid "Italian National Library" +msgstr "Biblioteca Nacional Italiana" -#~ msgid "Coins" -#~ msgstr "Moedas" +#: z3950.cpp:12 +msgid "Portuguese National Library" +msgstr "Biblioteca Nacional Portuguesa" -#~ msgid "Books" -#~ msgstr "Livros" +#: z3950.cpp:14 +msgid "National Library of Poland" +msgstr "Biblioteca Nacional da Pol?nia" -#~ msgid "Wines" -#~ msgstr "Vinhos" +#: z3950.cpp:16 +msgid "National Library of Canada" +msgstr "Biblioteca Nacional do Canad?" -#~ msgid "Comics" -#~ msgstr "Revistas em Quadrinhos" +#: z3950.cpp:18 +msgid "Israel Union List" +msgstr "Lista Unida de Israel" -#~ msgid "Videos" -#~ msgstr "V?deos" +#: z3950.cpp:20 +msgid "National Library of Australia" +msgstr "Biblioteca Nacional da Austr?lia" -#~ msgid "Games" -#~ msgstr "Jogos" +#: scripts.cpp:2 +msgid "Dark Horse Comics" +msgstr "Quadrinhos Dark Horse" -#~ msgid "Cards" -#~ msgstr "Cart?es" +#: scripts.cpp:4 +msgid "Allocine.fr" +msgstr "Allocine.fr" -#~ msgid "Entries" -#~ msgstr "Registros" +#: scripts.cpp:6 +msgid "Spanish Ministry of Culture" +msgstr "Minist?rio da Cultura da Espanha" -#~ msgid "Albums" -#~ msgstr "?lbuns" - -#, fuzzy -#~ msgid "BoardGames" -#~ msgstr "Jogos" From noreply at forge.novell.com Tue Jan 2 07:55:19 2007 From: noreply at forge.novell.com (Novell Forge SVN) Date: Thu Oct 25 03:58:11 2007 Subject: [Tellico-commits] r1373 - in trunk: . src Message-ID: <20070102145519.1BB3F1999DC@chardis.provo.novell.com> Author: robby Date: 2007-01-02 07:55:12 -0700 (Tue, 02 Jan 2007) New Revision: 1373 Modified: trunk/ trunk/src/mainwindow.cpp Log: r2586@homebase: robby | 2007-01-02 18:42:57 -0800 for now, require an env var to be set showing user knows its broken Property changes on: trunk ___________________________________________________________________ Name: svk:merge - c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2585 + c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/ooo:901 c1fdb448-dafa-0310-86d0-a6278eb7fd6f:/local/tellico/trunk:2586 Modified: trunk/src/mainwindow.cpp =================================================================== --- trunk/src/mainwindow.cpp 2007-01-02 14:54:54 UTC (rev 1372) +++ trunk/src/mainwindow.cpp 2007-01-02 14:55:12 UTC (rev 1373) @@ -88,6 +88,8 @@ #include #include +#include + namespace { static const int MAIN_WINDOW_MIN_WIDTH = 600; //static const int PRINTED_PAGE_OVERLAP = 0; @@ -115,6 +117,12 @@ m_initialized(false), m_newDocument(true) { + char* val = ::getenv("YES_I_KNOW_TELLICO_IS_