Version.cpp 37 KB

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