Version.cpp 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086
  1. #include "Version.h"
  2. #include <Datei.h>
  3. #include <Zeit.h>
  4. // Inhalt der Version Klasse aus Version.h
  5. // Konstruktor
  6. Version::Version( Schrift *s, MSKlient *msc, RessourceBild *rb, AdminAccount *acc, Bildschirm *b )
  7. : Abschnitt( b )
  8. {
  9. fenster = 0;
  10. this->msc = msc;
  11. account = acc;
  12. schrift = s;
  13. psc = 0;
  14. Array< ServerData* > list;
  15. if( msc->getPatchServerListe( &list ) )
  16. {
  17. int anz = list.getEintragAnzahl();
  18. for( int i = 0; i < anz; i++ )
  19. {
  20. ServerData *server = list.get( i );
  21. if( !psc )
  22. {
  23. psc = new PSKlient( server->ip, server->adminPort );
  24. if( !psc->verbinden() )
  25. psc = (PSKlient*)psc->release();
  26. }
  27. delete server;
  28. }
  29. }
  30. if( !psc )
  31. WMessageBox( 0, new Text( "Warnung" ), new Text( "Es wurde kein erreichbarer Patch Server gefunden. Es kann keine neue Version des Clients veröffentlicht werden." ), MB_ICONERROR );
  32. else
  33. psc->login( acc->zName()->getText(), acc->zPasswort()->getText() );
  34. f = new Fenster();
  35. f->setStyle( Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered );
  36. f->setRFarbe( 0xFFFFFFFF );
  37. f->setRBreite( 1 );
  38. f->setTitel( "Version" );
  39. f->setTSchriftZ( s->getThis() );
  40. f->setTSFarbe( 0xFFFFFFFF );
  41. f->setTSSize( 12 );
  42. f->setTAfFarbe( 0x1000FF00 );
  43. f->setTAfStrength( -15 );
  44. f->setTRFarbe( 0xFFFFFFFF );
  45. f->setTRBreite( 1 );
  46. f->zTTextFeld()->addStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen );
  47. f->zTTextFeld()->setSize( 0, 20 );
  48. f->setSize( 700, 700 );
  49. gruppeF = new Fenster();
  50. gruppeF->setStyle( Fenster::Style::Sichtbar | Fenster::Style::Erlaubt );
  51. gruppeF->setSize( 680, 640 );
  52. gruppeF->setPosition( 10, 10 );
  53. f->addMember( gruppeF );
  54. gruppeT = new ObjTabelle();
  55. gruppeT->setStyle( ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll );
  56. gruppeT->setVertikalKlickScroll( 10 );
  57. gruppeT->setMausEreignis( _ret1ME );
  58. gruppeT->setLinienRahmenFarbe( 0xFFFFFFFF );
  59. gruppeT->setSize( 680, 600 );
  60. gruppeT->addSpalte( "Name" );
  61. gruppeT->addSpalte( "Pfad" );
  62. gruppeT->addSpalte( "Version" );
  63. gruppeT->addSpalte( "Auswahl" );
  64. gruppeT->setSpaltenBreite( 0, 285 );
  65. gruppeT->setSpaltenBreite( 1, 285 );
  66. gruppeT->setSpaltenBreite( 2, 68 );
  67. gruppeT->setSpaltenBreite( 3, 22 );
  68. gruppeT->addZeile( "Titel" );
  69. gruppeT->setZeilenHeight( 0, 20 );
  70. TextFeld *gTN = new TextFeld();
  71. gTN->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  72. gTN->setSchriftZ( s->getThis() );
  73. gTN->setSchriftFarbe( 0xFFFFFFFF );
  74. gTN->setSchriftSize( 12 );
  75. gTN->setLinienRahmenFarbe( 0xFFFFFFFF );
  76. gTN->setText( "Name" );
  77. gruppeT->setZeichnungZ( 0, 0, gTN );
  78. TextFeld *gTP = new TextFeld();
  79. gTP->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  80. gTP->setSchriftZ( s->getThis() );
  81. gTP->setSchriftFarbe( 0xFFFFFFFF );
  82. gTP->setSchriftSize( 12 );
  83. gTP->setLinienRahmenFarbe( 0xFFFFFFFF );
  84. gTP->setText( "Pfad" );
  85. gruppeT->setZeichnungZ( 1, 0, gTP );
  86. TextFeld *gTV = new TextFeld();
  87. gTV->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  88. gTV->setSchriftZ( s->getThis() );
  89. gTV->setSchriftFarbe( 0xFFFFFFFF );
  90. gTV->setSchriftSize( 12 );
  91. gTV->setLinienRahmenFarbe( 0xFFFFFFFF );
  92. gTV->setText( "Version" );
  93. gruppeT->setZeichnungZ( 2, 0, gTV );
  94. gruppeT->setMausEreignis( _ret1ME );
  95. gruppeT->setTastaturEreignis( _ret1TE );
  96. gruppeF->addMember( gruppeT );
  97. neuGruppeName = new TextFeld();
  98. neuGruppeName->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter );
  99. neuGruppeName->setSchriftZ( s->getThis() );
  100. neuGruppeName->setSchriftFarbe( 0xFFFFFFFF );
  101. neuGruppeName->setSchriftSize( 12 );
  102. neuGruppeName->setLinienRahmenBreite( 1 );
  103. neuGruppeName->setLinienRahmenFarbe( 0xFFFFFFFF );
  104. neuGruppeName->setAlphaFeldFarbe( 0x1000FF00 );
  105. neuGruppeName->setAlphaFeldStrength( -5 );
  106. neuGruppeName->setSize( 285, 20 );
  107. neuGruppeName->setPosition( 40, 610 );
  108. neuGruppeName->setMausEreignis( _ret1ME );
  109. neuGruppeName->setTastaturEreignis( _ret1TE );
  110. neuGruppeName->setText( "" );
  111. gruppeF->addMember( neuGruppeName );
  112. neuGruppePfad = new TextFeld();
  113. neuGruppePfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter );
  114. neuGruppePfad->setSchriftZ( s->getThis() );
  115. neuGruppePfad->setSchriftFarbe( 0xFFFFFFFF );
  116. neuGruppePfad->setSchriftSize( 12 );
  117. neuGruppePfad->setLinienRahmenBreite( 1 );
  118. neuGruppePfad->setLinienRahmenFarbe( 0xFFFFFFFF );
  119. neuGruppePfad->setAlphaFeldFarbe( 0x1000FF00 );
  120. neuGruppePfad->setAlphaFeldStrength( -5 );
  121. neuGruppePfad->setSize( 285, 20 );
  122. neuGruppePfad->setPosition( 330, 610 );
  123. neuGruppePfad->setMausEreignis( _ret1ME );
  124. neuGruppePfad->setTastaturEreignis( _ret1TE );
  125. neuGruppePfad->setText( "" );
  126. gruppeF->addMember( neuGruppePfad );
  127. neuGruppeK = new Knopf();
  128. neuGruppeK->setText( "" );
  129. neuGruppeK->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  130. neuGruppeK->setHintergrundBildZ( rb->get( "neu.png" ) );
  131. neuGruppeK->setPosition( 625, 610 );
  132. neuGruppeK->setSize( 20, 20 );
  133. neuGruppeK->setMausEreignisParameter( this );
  134. neuGruppeK->setMausEreignis( versionNeuGruppeKMausEreignis );
  135. gruppeF->addMember( neuGruppeK );
  136. systemF = new Fenster();
  137. systemF->setStyle( Fenster::Style::Erlaubt );
  138. systemF->setSize( 680, 640 );
  139. systemF->setPosition( 10, 10 );
  140. f->addMember( systemF );
  141. systemInit = new InitDatei();
  142. systemT = new ObjTabelle();
  143. systemT->setStyle( ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll );
  144. systemT->setVertikalKlickScroll( 10 );
  145. systemT->setMausEreignis( _ret1ME );
  146. systemT->setLinienRahmenFarbe( 0xFFFFFFFF );
  147. systemT->setSize( 680, 600 );
  148. systemT->addSpalte( "Name" );
  149. systemT->addSpalte( "Pfad" );
  150. systemT->addSpalte( "Auswahl" );
  151. systemT->setSpaltenBreite( 0, 150 );
  152. systemT->setSpaltenBreite( 1, 490 );
  153. systemT->setSpaltenBreite( 2, 22 );
  154. systemT->addZeile( "Titel" );
  155. systemT->setZeilenHeight( 0, 20 );
  156. TextFeld *sTN = new TextFeld();
  157. sTN->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  158. sTN->setSchriftZ( s->getThis() );
  159. sTN->setSchriftFarbe( 0xFFFFFFFF );
  160. sTN->setSchriftSize( 12 );
  161. sTN->setLinienRahmenFarbe( 0xFFFFFFFF );
  162. sTN->setText( "Name" );
  163. systemT->setZeichnungZ( 0, 0, sTN );
  164. TextFeld *sTP = new TextFeld();
  165. sTP->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  166. sTP->setSchriftZ( s->getThis() );
  167. sTP->setSchriftFarbe( 0xFFFFFFFF );
  168. sTP->setSchriftSize( 12 );
  169. sTP->setLinienRahmenFarbe( 0xFFFFFFFF );
  170. sTP->setText( "Pfad" );
  171. systemT->setZeichnungZ( 1, 0, sTP );
  172. systemT->setMausEreignis( _ret1ME );
  173. systemT->setTastaturEreignis( _ret1TE );
  174. systemF->addMember( systemT );
  175. neuSystemName = new TextFeld();
  176. neuSystemName->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter );
  177. neuSystemName->setSchriftZ( s->getThis() );
  178. neuSystemName->setSchriftFarbe( 0xFFFFFFFF );
  179. neuSystemName->setSchriftSize( 12 );
  180. neuSystemName->setLinienRahmenBreite( 1 );
  181. neuSystemName->setLinienRahmenFarbe( 0xFFFFFFFF );
  182. neuSystemName->setAlphaFeldFarbe( 0x1000FF00 );
  183. neuSystemName->setAlphaFeldStrength( -5 );
  184. neuSystemName->setSize( 490, 20 );
  185. neuSystemName->setPosition( 80, 610 );
  186. neuSystemName->setMausEreignis( _ret1ME );
  187. neuSystemName->setTastaturEreignis( _ret1TE );
  188. neuSystemName->setText( "" );
  189. systemF->addMember( neuSystemName );
  190. neuSystemK = new Knopf();
  191. neuSystemK->setText( "" );
  192. neuSystemK->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  193. neuSystemK->setHintergrundBildZ( rb->get( "neu.png" ) );
  194. neuSystemK->setPosition( 580, 610 );
  195. neuSystemK->setSize( 20, 20 );
  196. neuSystemK->setMausEreignisParameter( this );
  197. neuSystemK->setMausEreignis( versionNeuSystemKMausEreignis );
  198. systemF->addMember( neuSystemK );
  199. dateiF = new Fenster();
  200. dateiF->setStyle( Fenster::Style::Erlaubt );
  201. dateiF->setSize( 680, 640 );
  202. dateiF->setPosition( 10, 10 );
  203. f->addMember( dateiF );
  204. dateiT = new ObjTabelle();
  205. dateiT->setStyle( ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll );
  206. dateiT->setVertikalKlickScroll( 10 );
  207. dateiT->setMausEreignis( _ret1ME );
  208. dateiT->setLinienRahmenFarbe( 0xFFFFFFFF );
  209. dateiT->setSize( 680, 600 );
  210. dateiT->addSpalte( "Pfad" );
  211. dateiT->addSpalte( "Version" );
  212. dateiT->addSpalte( "Status" );
  213. dateiT->setSpaltenBreite( 0, 510 );
  214. dateiT->setSpaltenBreite( 1, 50 );
  215. dateiT->setSpaltenBreite( 2, 100 );
  216. dateiT->addZeile( "Titel" );
  217. dateiT->setZeilenHeight( 0, 20 );
  218. TextFeld *dTP = new TextFeld();
  219. dTP->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  220. dTP->setSchriftZ( s->getThis() );
  221. dTP->setSchriftFarbe( 0xFFFFFFFF );
  222. dTP->setSchriftSize( 12 );
  223. dTP->setLinienRahmenFarbe( 0xFFFFFFFF );
  224. dTP->setText( "Pfad" );
  225. dateiT->setZeichnungZ( 0, 0, dTP );
  226. TextFeld *dTV = new TextFeld();
  227. dTV->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  228. dTV->setSchriftZ( s->getThis() );
  229. dTV->setSchriftFarbe( 0xFFFFFFFF );
  230. dTV->setSchriftSize( 12 );
  231. dTV->setLinienRahmenFarbe( 0xFFFFFFFF );
  232. dTV->setText( "Version" );
  233. dateiT->setZeichnungZ( 1, 0, dTV );
  234. TextFeld *dTS = new TextFeld();
  235. dTS->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  236. dTS->setSchriftZ( s->getThis() );
  237. dTS->setSchriftFarbe( 0xFFFFFFFF );
  238. dTS->setSchriftSize( 12 );
  239. dTS->setLinienRahmenFarbe( 0xFFFFFFFF );
  240. dTS->setText( "Status" );
  241. dateiT->setZeichnungZ( 2, 0, dTS );
  242. dateiF->addMember( dateiT );
  243. commit = new Knopf();
  244. commit->setStyle( Knopf::Style::Normal );
  245. commit->setText( "Veröffentlichen" );
  246. commit->setSchriftZ( s->getThis() );
  247. commit->setMausEreignisParameter( this );
  248. commit->setMausEreignis( versionCommitMausEreignis );
  249. commit->setSize( 100, 20 );
  250. commit->setPosition( 290, 610 );
  251. dateiF->addMember( commit );
  252. fehlerF = new Fenster();
  253. fehlerF->setStyle( Fenster::Style::Erlaubt );
  254. fehlerF->setSize( 680, 640 );
  255. fehlerF->setPosition( 10, 10 );
  256. f->addMember( fehlerF );
  257. fehlerText = new TextFeld();
  258. fehlerText->setStyle( TextFeld::Style::Text );
  259. fehlerText->setSchriftZ( s->getThis() );
  260. fehlerText->setSchriftFarbe( 0xFFFFFFFF );
  261. fehlerText->setSchriftSize( 12 );
  262. fehlerText->setText( "" );
  263. fehlerText->setSize( 680, 650 );
  264. fehlerF->addMember( fehlerText );
  265. zurück = new Knopf();
  266. zurück->setText( "" );
  267. zurück->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  268. zurück->setHintergrundBildZ( rb->get( "zurück.png" ) );
  269. zurück->setPosition( 295, 650 );
  270. zurück->setSize( 20, 20 );
  271. zurück->setMausEreignisParameter( this );
  272. zurück->setMausEreignis( versionZurückMausEreignis );
  273. f->addMember( zurück );
  274. aktualisieren = new Knopf();
  275. aktualisieren->setText( "" );
  276. aktualisieren->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  277. aktualisieren->setHintergrundBildZ( rb->get( "neuladen.png" ) );
  278. aktualisieren->setPosition( 325, 650 );
  279. aktualisieren->setSize( 20, 20 );
  280. aktualisieren->setMausEreignisParameter( this );
  281. aktualisieren->setMausEreignis( versionAktualisierenMausEreignis );
  282. f->addMember( aktualisieren );
  283. speichern = new Knopf();
  284. speichern->setText( "" );
  285. speichern->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  286. speichern->setHintergrundBildZ( rb->get( "speichern.png" ) );
  287. speichern->setPosition( 355, 650 );
  288. speichern->setSize( 20, 20 );
  289. speichern->setMausEreignisParameter( this );
  290. speichern->setMausEreignis( versionSpeichernMausEreignis );
  291. f->addMember( speichern );
  292. weiter = new Knopf();
  293. weiter->setText( "" );
  294. weiter->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer );
  295. weiter->setHintergrundBildZ( rb->get( "weiter.png" ) );
  296. weiter->setPosition( 385, 650 );
  297. weiter->setSize( 20, 20 );
  298. weiter->setMausEreignisParameter( this );
  299. weiter->setMausEreignis( versionWeiterMausEreignis );
  300. f->addMember( weiter );
  301. sName = new Text( "" );
  302. system = 0;
  303. rb->release();
  304. ref = 1;
  305. }
  306. // Destruktor
  307. Version::~Version()
  308. {
  309. for( int i = 1; i < gruppeT->getZeilenAnzahl(); i++ )
  310. {
  311. ( (TextFeld*)gruppeT->zZeichnung( 0, i ) )->release();
  312. ( (TextFeld*)gruppeT->zZeichnung( 1, i ) )->release();
  313. ( (TextFeld*)gruppeT->zZeichnung( 2, i ) )->release();
  314. ( (KontrollKnopf*)gruppeT->zZeichnung( 3, i ) )->release();
  315. }
  316. if( gruppeT->getZeilenAnzahl() )
  317. {
  318. ( (TextFeld*)gruppeT->zZeichnung( 0, 0 ) )->release();
  319. ( (TextFeld*)gruppeT->zZeichnung( 1, 0 ) )->release();
  320. ( (TextFeld*)gruppeT->zZeichnung( 2, 0 ) )->release();
  321. }
  322. for( int i = 1; i < systemT->getZeilenAnzahl(); i++ )
  323. {
  324. ( (TextFeld*)systemT->zZeichnung( 0, i ) )->release();
  325. ( (TextFeld*)systemT->zZeichnung( 1, i ) )->release();
  326. ( (KontrollKnopf*)systemT->zZeichnung( 2, i ) )->release();
  327. }
  328. if( systemT->getZeilenAnzahl() )
  329. {
  330. ( (TextFeld*)systemT->zZeichnung( 0, 0 ) )->release();
  331. ( (TextFeld*)systemT->zZeichnung( 1, 0 ) )->release();
  332. }
  333. for( int i = 0; i < dateiT->getZeilenAnzahl(); i++ )
  334. {
  335. ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->release();
  336. ( (TextFeld*)dateiT->zZeichnung( 1, i ) )->release();
  337. ( (TextFeld*)dateiT->zZeichnung( 2, i ) )->release();
  338. }
  339. if( fenster )
  340. {
  341. fenster->removeMember( f );
  342. fenster->release();
  343. }
  344. account->release();
  345. msc->release();
  346. if( psc )
  347. psc->release();
  348. f->release();
  349. gruppeF->release();
  350. gruppeT->release();
  351. neuGruppeName->release();
  352. neuGruppePfad->release();
  353. neuGruppeK->release();
  354. systemF->release();
  355. systemInit->release();
  356. systemT->release();
  357. neuSystemName->release();
  358. neuSystemK->release();
  359. speichern->release();
  360. weiter->release();
  361. dateiF->release();
  362. dateiT->release();
  363. commit->release();
  364. aktualisieren->release();
  365. fehlerF->release();
  366. fehlerText->release();
  367. zurück->release();
  368. schrift->release();
  369. sName->release();
  370. }
  371. // privat
  372. void Version::sucheDateien( const char *pfad, RCArray< ReferenceCounting< FileInfo > > &list )
  373. {
  374. Datei *d = new Datei();
  375. d->setDatei( pfad );
  376. if( d->istOrdner() )
  377. {
  378. RCArray< Text > *liste = d->getDateiListe();
  379. int anzahl = d->getUnterdateiAnzahl();
  380. for( int i = 0; i < anzahl; i++ )
  381. {
  382. Text *p = new Text( pfad );
  383. p->append( "/" );
  384. p->append( liste->z( i )->getText() );
  385. sucheDateien( p->getText(), list );
  386. p->release();
  387. }
  388. liste->release();
  389. }
  390. d->release();
  391. Text *pf = new Text( pfad );
  392. pf->remove( systemInit->zWert( sName->getText() )->getText() );
  393. pf->remove( 0, 1 );
  394. if( !pf->getLength() )
  395. {
  396. pf->release();
  397. return;
  398. }
  399. bool gefunden = 0;
  400. int anz = list.getEintragAnzahl();
  401. for( int i = 0; i < anz; i++ )
  402. {
  403. if( pf->istGleich( list.z( i )->path ) )
  404. {
  405. gefunden = 1;
  406. break;
  407. }
  408. }
  409. if( !gefunden )
  410. {
  411. dateiT->addZeile( "0" );
  412. TextFeld *pfad = new TextFeld();
  413. pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  414. pfad->setSchriftZ( schrift->getThis() );
  415. pfad->setSchriftFarbe( 0xFFFFFFFF );
  416. pfad->setSchriftSize( 12 );
  417. pfad->setLinienRahmenFarbe( 0xFFFFFFFF );
  418. pfad->setText( pf->getText() );
  419. dateiT->setZeichnungZ( 0, dateiT->getZeilenAnzahl() - 1, pfad );
  420. TextFeld *version = new TextFeld();
  421. version->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  422. version->setSchriftZ( schrift->getThis() );
  423. version->setSchriftFarbe( 0xFFFFFFFF );
  424. version->setSchriftSize( 12 );
  425. version->setLinienRahmenFarbe( 0xFFFFFFFF );
  426. version->setText( "0" );
  427. dateiT->setZeichnungZ( 1, dateiT->getZeilenAnzahl() - 1, version );
  428. TextFeld *status = new TextFeld();
  429. status->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  430. status->setSchriftZ( schrift->getThis() );
  431. status->setSchriftFarbe( 0xFFFFFFFF );
  432. status->setSchriftSize( 12 );
  433. status->setLinienRahmenFarbe( 0xFFFFFFFF );
  434. status->setText( "Neu" );
  435. dateiT->setZeichnungZ( 2, dateiT->getZeilenAnzahl() - 1, status );
  436. }
  437. pf->release();
  438. }
  439. // nicht constant
  440. void Version::setFenster( Fenster *f )
  441. {
  442. if( fenster )
  443. fenster->release();
  444. this->f->setPosition( f->getBreite() / 2 - this->f->getBreite() / 2, f->getHeight() / 2 - this->f->getHeight() / 2 );
  445. fenster = f;
  446. }
  447. void Version::setSichtbar( bool s )
  448. {
  449. sichtbar = s;
  450. if( s )
  451. fenster->addMember( f );
  452. else
  453. fenster->removeMember( f );
  454. }
  455. bool Version::neuGruppeKMausEreignis( void *o, MausEreignis me )
  456. {
  457. if( me.id == ME_RLinks )
  458. {
  459. if( neuGruppeName->zText()->getLength() )
  460. {
  461. /*if( !pgDb->neueDateiGruppeErstellen( neuGruppeName->zText()->getText(), neuGruppePfad->zText()->getText() ) )
  462. {
  463. fehlerText->setText( "Es ist ein Fehler aufgetreten. Siehe in den Logdateien nach für nähere\nInformationen." );
  464. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  465. weiter->removeStyle( Knopf::Style::Erlaubt );
  466. zurück->addStyle( Knopf::Style::Erlaubt );
  467. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  468. speichern->removeStyle( Knopf::Style::Erlaubt );
  469. fehlerF->addStyle( Fenster::Style::Sichtbar );
  470. }
  471. else
  472. {
  473. neuGruppeName->setText( "" );
  474. neuGruppeName->setAuswahl( 0, 0 );
  475. neuGruppePfad->setText( "" );
  476. neuGruppePfad->setAuswahl( 0, 0 );
  477. aktualisierenMausEreignis( 0, me );
  478. }*/
  479. WMessageBox( 0, new Text( "Warnung" ), new Text( "Diese Funktion ist momentan nicht implementiert. Nehmen sie die Änderungen manuell in der Datenbank vor." ), MB_ICONERROR );
  480. }
  481. }
  482. return 1;
  483. }
  484. bool Version::auswahlKnopfMausEreignis( void *o, MausEreignis me )
  485. {
  486. if( !o )
  487. return 0;
  488. if( me.id == ME_RLinks )
  489. {
  490. if( gruppeF->hatStyle( Fenster::Style::Sichtbar ) )
  491. {
  492. for( int i = 1; i < gruppeT->getZeilenAnzahl(); i++ )
  493. ( (KontrollKnopf*)gruppeT->zZeichnung( 3, i ) )->removeStyle( KontrollKnopf::Style::Selected );
  494. weiter->addStyle( Knopf::Style::Erlaubt );
  495. }
  496. else if( systemF->hatStyle( Fenster::Style::Sichtbar ) )
  497. {
  498. for( int i = 1; i < systemT->getZeilenAnzahl(); i++ )
  499. ( (KontrollKnopf*)systemT->zZeichnung( 2, i ) )->removeStyle( KontrollKnopf::Style::Selected );
  500. weiter->addStyle( Knopf::Style::Erlaubt );
  501. }
  502. }
  503. return 1;
  504. }
  505. bool Version::neuSystemKMausEreignis( void *o, MausEreignis me )
  506. {
  507. if( me.id == ME_RLinks )
  508. {
  509. if( neuSystemName->zText()->getLength() )
  510. {
  511. /*if( !pgDb->neuesSystemErstellen( neuSystemName->zText()->getText() ) )
  512. {
  513. fehlerText->setText( "Es ist ein Fehler aufgetreten. Siehe in den Logdateien nach für nähere\nInformationen." );
  514. systemF->removeStyle( Fenster::Style::Sichtbar );
  515. weiter->removeStyle( Knopf::Style::Erlaubt );
  516. zurück->addStyle( Knopf::Style::Erlaubt );
  517. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  518. speichern->removeStyle( Knopf::Style::Erlaubt );
  519. fehlerF->addStyle( Fenster::Style::Sichtbar );
  520. }
  521. else
  522. {
  523. neuSystemName->setText( "" );
  524. neuSystemName->setAuswahl( 0, 0 );
  525. aktualisierenMausEreignis( 0, me );
  526. }*/
  527. WMessageBox( 0, new Text( "Warnung" ), new Text( "Diese Funktion ist momentan nicht implementiert. Nehmen sie die Änderungen manuell in der Datenbank vor." ), MB_ICONERROR );
  528. }
  529. }
  530. return 1;
  531. }
  532. bool Version::speichernMausEreignis( void *o, MausEreignis me )
  533. {
  534. if( me.id == ME_RLinks )
  535. {
  536. systemInit->removeAlle();
  537. for( int i = 1; i < systemT->getZeilenAnzahl(); i++ )
  538. {
  539. systemInit->addWert( ( (TextFeld*)systemT->zZeichnung( 0, i ) )->zText()->getText(),
  540. ( (TextFeld*)systemT->zZeichnung( 1, i ) )->zText()->getText() );
  541. systemInit->speichern();
  542. }
  543. }
  544. return 1;
  545. }
  546. bool Version::weiterMausEreignis( void *o, MausEreignis me )
  547. {
  548. if( me.id == ME_RLinks )
  549. {
  550. if( gruppeF->hatStyle( Fenster::Style::Sichtbar ) )
  551. {
  552. for( int i = 1; i < gruppeT->getZeilenAnzahl(); i++ )
  553. {
  554. if( ( (KontrollKnopf*)gruppeT->zZeichnung( 3, i ) )->hatStyle( KontrollKnopf::Style::Selected ) )
  555. {
  556. gruppe = TextZuInt( gruppeT->zZeilenName( i )->getText(), 10 );
  557. Text *pfad = new Text( "data/" );
  558. pfad->append( ( (TextFeld*)gruppeT->zZeichnung( 0, i ) )->getText() );
  559. pfad->append( ".ini" );
  560. systemInit->setPfad( pfad );
  561. systemInit->removeAlle();
  562. systemInit->laden();
  563. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  564. systemF->addStyle( Fenster::Style::Sichtbar );
  565. speichern->addStyle( Knopf::Style::Erlaubt );
  566. aktualisieren->addStyle( Knopf::Style::Erlaubt );
  567. weiter->removeStyle( Knopf::Style::Erlaubt );
  568. zurück->addStyle( Knopf::Style::Erlaubt );
  569. aktualisierenMausEreignis( 0, me );
  570. return 1;
  571. }
  572. }
  573. }
  574. else if( systemF->hatStyle( Fenster::Style::Sichtbar ) )
  575. {
  576. for( int i = 1; i < systemT->getZeilenAnzahl(); i++ )
  577. {
  578. if( ( (KontrollKnopf*)systemT->zZeichnung( 2, i ) )->hatStyle( KontrollKnopf::Style::Selected ) )
  579. {
  580. sName->setText( ( (TextFeld*)systemT->zZeichnung( 0, i ) )->zText()->getText() );
  581. system = TextZuInt( systemT->zZeilenName( i )->getText(), 10 );
  582. systemF->removeStyle( Fenster::Style::Sichtbar );
  583. speichern->removeStyle( Knopf::Style::Erlaubt );
  584. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  585. weiter->removeStyle( Knopf::Style::Erlaubt );
  586. zurück->addStyle( Knopf::Style::Erlaubt );
  587. if( !systemInit->wertExistiert( sName->getText() ) )
  588. {
  589. fehlerText->setText( "Der Pfad wurde für dieses System noch nicht gesetzt." );
  590. fehlerF->addStyle( Fenster::Style::Sichtbar );
  591. return 1;
  592. }
  593. if( !DateiExistiert( systemInit->getWert( sName->getText() ) ) || !DateiIstVerzeichnis( systemInit->getWert( sName->getText() ) ) )
  594. {
  595. fehlerText->setText( "Unter dem angegebenem Pfad wurde keine Datei gefunden." );
  596. fehlerF->addStyle( Fenster::Style::Sichtbar );
  597. return 1;
  598. }
  599. aktualisieren->addStyle( Knopf::Style::Erlaubt );
  600. dateiF->addStyle( Fenster::Style::Sichtbar );
  601. aktualisierenMausEreignis( 0, me );
  602. return 1;
  603. }
  604. }
  605. }
  606. }
  607. return 1;
  608. }
  609. bool Version::commitMausEreignis( void *o, MausEreignis me )
  610. {
  611. if( me.id == ME_RLinks )
  612. {
  613. /*if( !pgDb->adminHatRecht( account->getId(), Admin_Recht::LTCUpdate ) )
  614. {
  615. dateiF->removeStyle( Fenster::Style::Sichtbar );
  616. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  617. fehlerText->setText( "Du hast keine Berechtigung für diesen Vorgang." );
  618. fehlerF->addStyle( Fenster::Style::Sichtbar );
  619. zurück->addStyle( Knopf::Style::Erlaubt );
  620. return 1;
  621. }
  622. if( pgDb->sindPatchServerOnline() )
  623. {
  624. dateiF->removeStyle( Fenster::Style::Sichtbar );
  625. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  626. fehlerText->setText( "Es müssen zunächst alle Patchserver herunterfahren." );
  627. fehlerF->addStyle( Fenster::Style::Sichtbar );
  628. zurück->addStyle( Knopf::Style::Erlaubt );
  629. return 1;
  630. }*/
  631. aktualisierenMausEreignis( 0, me );
  632. bool gU = 0;
  633. for( int i = 1; i < dateiT->getZeilenAnzahl(); i++ )
  634. {
  635. if( ( (TextFeld*)dateiT->zZeichnung( 2, i ) )->zText()->istGleich( "Veraltet" ) )
  636. { // datei ist Veraltet
  637. Text *pfad = new Text( systemInit->zWert( sName->getText() )->getText() );
  638. pfad->append( "/" );
  639. pfad->append( ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->zText()->getText() );
  640. Datei *d = new Datei();
  641. d->setDatei( pfad );
  642. Zeit *zeit = d->getLastChange();
  643. if( !psc || !psc->updateFile( ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->zText()->getText(), zeit, system, gruppe ) )
  644. {
  645. dateiF->removeStyle( Fenster::Style::Sichtbar );
  646. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  647. if( !psc )
  648. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  649. else
  650. fehlerText->setText( psc->getLetzterFehler() );
  651. fehlerF->addStyle( Fenster::Style::Sichtbar );
  652. zurück->addStyle( Knopf::Style::Erlaubt );
  653. if( zeit )
  654. zeit->release();
  655. d->release();
  656. return 1;
  657. }
  658. if( zeit )
  659. zeit->release();
  660. d->release();
  661. gU = 1;
  662. }
  663. else if( ( (TextFeld*)dateiT->zZeichnung( 2, i ) )->zText()->istGleich( "Gelöscht" ) )
  664. { // datei ist Gelöscht
  665. if( !psc || !psc->updateFile( ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->zText()->getText(), 0, system, gruppe ) )
  666. {
  667. dateiF->removeStyle( Fenster::Style::Sichtbar );
  668. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  669. if( !psc )
  670. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  671. else
  672. fehlerText->setText( psc->getLetzterFehler() );
  673. fehlerF->addStyle( Fenster::Style::Sichtbar );
  674. zurück->addStyle( Knopf::Style::Erlaubt );
  675. return 1;
  676. }
  677. gU = 1;
  678. }
  679. else if( ( (TextFeld*)dateiT->zZeichnung( 2, i ) )->zText()->istGleich( "Neu" ) )
  680. { // datei ist Neu
  681. Text *pfad = new Text( systemInit->zWert( sName->getText() )->getText() );
  682. pfad->append( "/" );
  683. pfad->append( ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->zText()->getText() );
  684. Datei *d = new Datei();
  685. d->setDatei( pfad );
  686. Zeit *zeit = d->getLastChange();
  687. if( !psc || !psc->updateFile( ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->zText()->getText(), zeit, system, gruppe ) )
  688. {
  689. dateiF->removeStyle( Fenster::Style::Sichtbar );
  690. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  691. if( !psc )
  692. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  693. else
  694. fehlerText->setText( psc->getLetzterFehler() );
  695. fehlerF->addStyle( Fenster::Style::Sichtbar );
  696. zurück->addStyle( Knopf::Style::Erlaubt );
  697. if( zeit )
  698. zeit->release();
  699. d->release();
  700. return 1;
  701. }
  702. if( zeit )
  703. zeit->release();
  704. d->release();
  705. gU = 1;
  706. }
  707. }
  708. if( gU )
  709. {
  710. if( !psc || !psc->dateiGruppeUpdate( gruppe ) )
  711. {
  712. dateiF->removeStyle( Fenster::Style::Sichtbar );
  713. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  714. if( !psc )
  715. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  716. else
  717. fehlerText->setText( psc->getLetzterFehler() );
  718. fehlerF->addStyle( Fenster::Style::Sichtbar );
  719. zurück->addStyle( Knopf::Style::Erlaubt );
  720. return 1;
  721. }
  722. }
  723. aktualisierenMausEreignis( 0, me );
  724. }
  725. return 1;
  726. }
  727. bool Version::aktualisierenMausEreignis( void *o, MausEreignis me )
  728. {
  729. if( me.id == ME_RLinks )
  730. {
  731. if( gruppeF->hatStyle( Fenster::Style::Sichtbar ) )
  732. {
  733. if( !psc )
  734. {
  735. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  736. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  737. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  738. fehlerF->addStyle( Fenster::Style::Sichtbar );
  739. zurück->addStyle( Knopf::Style::Erlaubt );
  740. return 1;
  741. }
  742. for( int i = 1; i < gruppeT->getZeilenAnzahl(); )
  743. {
  744. ( (TextFeld*)gruppeT->zZeichnung( 0, i ) )->release();
  745. ( (TextFeld*)gruppeT->zZeichnung( 1, i ) )->release();
  746. ( (TextFeld*)gruppeT->zZeichnung( 2, i ) )->release();
  747. ( (KontrollKnopf*)gruppeT->zZeichnung( 3, i ) )->release();
  748. gruppeT->removeZeile( i );
  749. }
  750. Array< FileGroupInfo* > list;
  751. psc->getFileGroupInfoList( &list );
  752. int anz = list.getEintragAnzahl();
  753. for( int i = 0; i < anz; i++ )
  754. {
  755. FileGroupInfo *fileGroup = list.get( i );
  756. Text *zeile = new Text( "" );
  757. zeile->append( fileGroup->id );
  758. gruppeT->addZeile( i + 1, zeile );
  759. TextFeld *name = new TextFeld();
  760. name->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  761. name->setSchriftZ( schrift->getThis() );
  762. name->setSchriftFarbe( 0xFFFFFFFF );
  763. name->setSchriftSize( 12 );
  764. name->setLinienRahmenFarbe( 0xFFFFFFFF );
  765. name->setText( fileGroup->name );
  766. gruppeT->setZeichnungZ( 0, i + 1, name );
  767. TextFeld *pfad = new TextFeld();
  768. pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  769. pfad->setSchriftZ( schrift->getThis() );
  770. pfad->setSchriftFarbe( 0xFFFFFFFF );
  771. pfad->setSchriftSize( 12 );
  772. pfad->setLinienRahmenFarbe( 0xFFFFFFFF );
  773. pfad->setText( fileGroup->path );
  774. gruppeT->setZeichnungZ( 1, i + 1, pfad );
  775. TextFeld *version = new TextFeld();
  776. version->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  777. version->setSchriftZ( schrift->getThis() );
  778. version->setSchriftFarbe( 0xFFFFFFFF );
  779. version->setSchriftSize( 12 );
  780. version->setLinienRahmenFarbe( 0xFFFFFFFF );
  781. version->setText( Text( fileGroup->version ) );
  782. gruppeT->setZeichnungZ( 2, i + 1, version );
  783. KontrollKnopf *auswahl = new KontrollKnopf();
  784. auswahl->setStyle( KontrollKnopf::Style::Sichtbar | KontrollKnopf::Style::Erlaubt | KontrollKnopf::Style::KlickBuffer | KontrollKnopf::Style::Rahmen );
  785. auswahl->loadData( "data/bilder/icons.ltdb" );
  786. auswahl->setMausEreignisParameter( this );
  787. auswahl->setMausEreignis( versionAuswahlKnopfMausEreignis );
  788. auswahl->setLinienRahmenFarbe( 0xFFFFFFFF );
  789. gruppeT->setZeichnungZ( 3, i + 1, auswahl );
  790. delete fileGroup;
  791. }
  792. }
  793. else if( systemF->hatStyle( Fenster::Style::Sichtbar ) )
  794. {
  795. if( !psc )
  796. {
  797. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  798. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  799. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  800. fehlerF->addStyle( Fenster::Style::Sichtbar );
  801. zurück->addStyle( Knopf::Style::Erlaubt );
  802. return 1;
  803. }
  804. for( int i = 1; i < systemT->getZeilenAnzahl(); )
  805. {
  806. ( (TextFeld*)systemT->zZeichnung( 0, i ) )->release();
  807. ( (TextFeld*)systemT->zZeichnung( 1, i ) )->release();
  808. ( (KontrollKnopf*)systemT->zZeichnung( 2, i ) )->release();
  809. systemT->removeZeile( i );
  810. }
  811. RCArray< ReferenceCounting< std::pair< int, Text > > > list;
  812. psc->getSystemInfoList( &list );
  813. int anz = list.getEintragAnzahl();
  814. for( int i = 0; i < anz; i++ )
  815. {
  816. ReferenceCounting< std::pair< int, Text > > *system = list.z( i );
  817. Text *zeile = new Text( "" );
  818. zeile->append( system->first );
  819. systemT->addZeile( i + 1, zeile );
  820. TextFeld *name = new TextFeld();
  821. name->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  822. name->setSchriftZ( schrift->getThis() );
  823. name->setSchriftFarbe( 0xFFFFFFFF );
  824. name->setSchriftSize( 12 );
  825. name->setLinienRahmenFarbe( 0xFFFFFFFF );
  826. name->setText( system->second );
  827. systemT->setZeichnungZ( 0, i + 1, name );
  828. TextFeld *pfad = new TextFeld();
  829. pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  830. pfad->setSchriftZ( schrift->getThis() );
  831. pfad->setText( "" );
  832. if( systemInit->wertExistiert( system->second ) )
  833. pfad->setText( systemInit->zWert( (char*)system->second )->getText() );
  834. pfad->setSchriftFarbe( 0xFFFFFFFF );
  835. pfad->setSchriftSize( 12 );
  836. pfad->setLinienRahmenFarbe( 0xFFFFFFFF );
  837. systemT->setZeichnungZ( 1, i + 1, pfad );
  838. KontrollKnopf *auswahl = new KontrollKnopf();
  839. auswahl->setStyle( KontrollKnopf::Style::Sichtbar | KontrollKnopf::Style::Erlaubt | KontrollKnopf::Style::KlickBuffer | KontrollKnopf::Style::Rahmen );
  840. auswahl->loadData( "data/bilder/icons.ltdb" );
  841. auswahl->setMausEreignisParameter( this );
  842. auswahl->setMausEreignis( versionAuswahlKnopfMausEreignis );
  843. auswahl->setLinienRahmenFarbe( 0xFFFFFFFF );
  844. systemT->setZeichnungZ( 2, i + 1, auswahl );
  845. }
  846. }
  847. else if( dateiF->hatStyle( Fenster::Style::Sichtbar ) )
  848. {
  849. if( !psc )
  850. {
  851. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  852. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  853. fehlerText->setText( "Es wurde kein erreichbarer Patch Server gefunden." );
  854. fehlerF->addStyle( Fenster::Style::Sichtbar );
  855. zurück->addStyle( Knopf::Style::Erlaubt );
  856. return 1;
  857. }
  858. for( int i = 1; i < dateiT->getZeilenAnzahl(); )
  859. {
  860. ( (TextFeld*)dateiT->zZeichnung( 0, i ) )->release();
  861. ( (TextFeld*)dateiT->zZeichnung( 1, i ) )->release();
  862. ( (TextFeld*)dateiT->zZeichnung( 2, i ) )->release();
  863. dateiT->removeZeile( i );
  864. }
  865. RCArray< ReferenceCounting< FileInfo > > list;
  866. psc->getFileInfoList( system, gruppe, &list );
  867. int anz = list.getEintragAnzahl();
  868. for( int i = 0; i < anz; i++ )
  869. {
  870. ReferenceCounting< FileInfo > *info = list.z( i );
  871. Text *zeile = new Text( "" );
  872. zeile->append( info->id );
  873. dateiT->addZeile( i + 1, zeile );
  874. TextFeld *pfad = new TextFeld();
  875. pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter );
  876. pfad->setSchriftZ( schrift->getThis() );
  877. pfad->setSchriftFarbe( 0xFFFFFFFF );
  878. pfad->setSchriftSize( 12 );
  879. pfad->setLinienRahmenFarbe( 0xFFFFFFFF );
  880. pfad->setText( info->path );
  881. dateiT->setZeichnungZ( 0, i + 1, pfad );
  882. TextFeld *version = new TextFeld();
  883. version->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  884. version->setSchriftZ( schrift->getThis() );
  885. version->setSchriftFarbe( 0xFFFFFFFF );
  886. version->setSchriftSize( 12 );
  887. version->setLinienRahmenFarbe( 0xFFFFFFFF );
  888. version->setText( Text( info->version ) );
  889. dateiT->setZeichnungZ( 1, i + 1, version );
  890. TextFeld *status = new TextFeld();
  891. status->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center );
  892. status->setSchriftZ( schrift->getThis() );
  893. status->setSchriftSize( 12 );
  894. status->setLinienRahmenFarbe( 0xFFFFFFFF );
  895. status->setText( "Aktuell" );
  896. status->setSchriftFarbe( 0xFF00FF00 );
  897. Text *pf = new Text( systemInit->zWert( sName->getText() )->getText() );
  898. if( pf->getText()[ pf->getLength() - 1 ] != '/' )
  899. pf->append( "/" );
  900. pf->append( (char*)info->path );
  901. if( !DateiExistiert( pf->getThis() ) )
  902. {
  903. status->setText( "Gelöscht" );
  904. status->setSchriftFarbe( 0xFFFF0000 );
  905. }
  906. else
  907. {
  908. Datei *d = new Datei();
  909. d->setDatei( pf->getText() );
  910. if( !d->istOrdner() )
  911. {
  912. Zeit *lä = d->getLastChange();
  913. if( !lä->istGleich( "y-m-d h:i:s", info->time ) )
  914. {
  915. status->setText( "Veraltet" );
  916. status->setSchriftFarbe( 0xFFFFFF00 );
  917. }
  918. lä->release();
  919. }
  920. d->release();
  921. }
  922. pf->release();
  923. dateiT->setZeichnungZ( 2, i + 1, status );
  924. }
  925. sucheDateien( systemInit->zWert( sName->getText() )->getText(), list );
  926. }
  927. }
  928. return 1;
  929. }
  930. bool Version::zurückMausEreignis( void *o, MausEreignis me )
  931. {
  932. if( me.id == ME_RLinks )
  933. {
  934. if( fehlerF->hatStyle( Fenster::Style::Sichtbar ) )
  935. {
  936. fehlerF->removeStyle( Fenster::Style::Sichtbar );
  937. dateiF->removeStyle( Fenster::Style::Sichtbar );
  938. systemF->removeStyle( Fenster::Style::Sichtbar );
  939. zurück->removeStyle( Knopf::Style::Erlaubt );
  940. speichern->removeStyle( Knopf::Style::Erlaubt );
  941. weiter->removeStyle( Knopf::Style::Erlaubt );
  942. aktualisieren->addStyle( Knopf::Style::Erlaubt );
  943. gruppeF->addStyle( Fenster::Style::Sichtbar );
  944. aktualisierenMausEreignis( 0, me );
  945. }
  946. else if( dateiF->hatStyle( Fenster::Style::Sichtbar ) )
  947. {
  948. fehlerF->removeStyle( Fenster::Style::Sichtbar );
  949. dateiF->removeStyle( Fenster::Style::Sichtbar );
  950. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  951. weiter->removeStyle( Knopf::Style::Erlaubt );
  952. zurück->addStyle( Knopf::Style::Erlaubt );
  953. speichern->addStyle( Knopf::Style::Erlaubt );
  954. aktualisieren->addStyle( Knopf::Style::Erlaubt );
  955. systemF->addStyle( Fenster::Style::Sichtbar );
  956. aktualisierenMausEreignis( 0, me );
  957. }
  958. else if( systemF->hatStyle( Fenster::Style::Sichtbar ) )
  959. {
  960. fehlerF->removeStyle( Fenster::Style::Sichtbar );
  961. dateiF->removeStyle( Fenster::Style::Sichtbar );
  962. systemF->removeStyle( Fenster::Style::Sichtbar );
  963. zurück->removeStyle( Knopf::Style::Erlaubt );
  964. speichern->removeStyle( Knopf::Style::Erlaubt );
  965. weiter->removeStyle( Knopf::Style::Erlaubt );
  966. aktualisieren->addStyle( Knopf::Style::Erlaubt );
  967. gruppeF->addStyle( Fenster::Style::Sichtbar );
  968. aktualisierenMausEreignis( 0, me );
  969. }
  970. }
  971. return 1;
  972. }
  973. // constant
  974. InitDatei *Version::getSystemInit() const
  975. {
  976. return systemInit->getThis();
  977. }
  978. // Reference Counting
  979. Abschnitt *Version::getThis()
  980. {
  981. ref++;
  982. return this;
  983. }
  984. Abschnitt *Version::release()
  985. {
  986. ref--;
  987. if( !ref )
  988. delete this;
  989. return 0;
  990. }
  991. // Ereignisse
  992. bool versionNeuGruppeKMausEreignis( void *p, void *o, MausEreignis me )
  993. {
  994. if( !p )
  995. return 0;
  996. return ( (Version*)p )->neuGruppeKMausEreignis( o, me );
  997. }
  998. bool versionAuswahlKnopfMausEreignis( void *p, void *o, MausEreignis me )
  999. {
  1000. if( !p )
  1001. return 0;
  1002. return ( (Version*)p )->auswahlKnopfMausEreignis( o, me );
  1003. }
  1004. bool versionNeuSystemKMausEreignis( void *p, void *o, MausEreignis me )
  1005. {
  1006. if( !p )
  1007. return 0;
  1008. return ( (Version*)p )->neuSystemKMausEreignis( o, me );
  1009. }
  1010. bool versionSpeichernMausEreignis( void *p, void *o, MausEreignis me )
  1011. {
  1012. if( !p )
  1013. return 0;
  1014. return ( (Version*)p )->speichernMausEreignis( o, me );
  1015. }
  1016. bool versionWeiterMausEreignis( void *p, void *o, MausEreignis me )
  1017. {
  1018. if( !p )
  1019. return 0;
  1020. return ( (Version*)p )->weiterMausEreignis( o, me );
  1021. }
  1022. bool versionCommitMausEreignis( void *p, void *o, MausEreignis me )
  1023. {
  1024. if( !p )
  1025. return 0;
  1026. return ( (Version*)p )->commitMausEreignis( o, me );
  1027. }
  1028. bool versionAktualisierenMausEreignis( void *p, void *o, MausEreignis me )
  1029. {
  1030. if( !p )
  1031. return 0;
  1032. return ( (Version*)p )->aktualisierenMausEreignis( o, me );
  1033. }
  1034. bool versionZurückMausEreignis( void *p, void *o, MausEreignis me )
  1035. {
  1036. if( !p )
  1037. return 0;
  1038. return ( (Version*)p )->zurückMausEreignis( o, me );
  1039. }