00001 #include <QDateTime>
00002 #include <QLabel>
00003 #include <QMessageBox>
00004 #include <QDialog>
00005 #include <QFileDialog>
00006
00007 #include "GUIMainWindow.h"
00008 #include "exeptions.h"
00009
00010 GUIMainWindow::GUIMainWindow (QWidget * parent = 0, Qt::WFlags flags = 0) : QWidget (parent)
00011 {
00012 QTextCodec::setCodecForCStrings( QTextCodec::codecForName("Windows-1250") );
00013 QTextCodec::setCodecForTr( QTextCodec::codecForName("Windows-1250"));
00014
00015 is_connect = false;
00016 Settings = new GUISettings(this);
00017
00018 if(Settings->getOpacityEnabled())
00019 {
00020 this->setAutoFillBackground(false);
00021 this->setAttribute(Qt::WA_NoSystemBackground, false);
00022 this->setWindowOpacity(Settings->getOpacity());
00023 }
00024
00025 QVBoxLayout *vbox = new QVBoxLayout;
00026 vbox->setSpacing(0);
00027 QVBoxLayout *vboxul = new QVBoxLayout;
00028 vboxul->setSpacing(0);
00029 QHBoxLayout *hbox = new QHBoxLayout;
00030 QVBoxLayout *main = new QVBoxLayout;
00031 main->setMargin(1);
00032
00033 TextToolBar = new QToolBar("Format", this);
00034 TextToolBar->setMaximumHeight(32);
00035
00036 ChatTextInput = new GUIChatTextInput(this, TextToolBar,Settings->getFontColor());
00037 ChatTextInput->setMaximumHeight(100);
00038 ChatTextInput->setEnabled(false);
00039
00040 TabList = new GUITabList(this, Settings->getBroadcast(), Settings->getFontColorSystemMsg().name(),
00041
00042 Settings->getFontColorSystemUserMsg().name(), Settings->getBackgroundColor().name());
00043
00044 TabList->publicChat()->chat->printSysMsg(tr("Witamy w programie lanChat"));
00045 TabList->publicChat()->chat->printSysMsg(tr("Wciśnij połącz aby rozpocząć rozmowę"));
00046
00047 UserList = new GuiActiveUserList(this);
00048 UserList->setMaximumWidth(150);
00049 UserList->setEnabled(false);
00050
00051 this->setApperance();
00052 connect(Settings, SIGNAL(settingsChanged()),this,SLOT(setApperance()));
00053
00054 MainToolBar = new QToolBar("Podstawowy", this);
00055 MainToolBar->setMaximumHeight(32);
00056
00057 createMainToolBar(MainToolBar);
00058
00059 MainToolBar->setFocus();
00060
00061 vbox->addWidget(TabList);
00062 vbox->addWidget(TextToolBar);
00063 vbox->addWidget(ChatTextInput);
00064 vboxul->addSpacing(22);
00065 vboxul->addWidget(UserList);
00066 hbox->addLayout(vbox);
00067 hbox->addLayout(vboxul);
00068
00069 main->addWidget(MainToolBar);
00070 main->addLayout(hbox);
00071
00072 setLayout(main);
00073 this->setWindowTitle("AvaLANche Chat =)");
00074 this->setWindowIcon(QIcon("icon/Chat/chat.png"));
00075 TextToolBar->setEnabled(false);
00076
00077
00078 connect (UserList, SIGNAL(signalPrivateChat(QHostAddress &)),this,SLOT(privateChat (QHostAddress &)));
00079
00080
00081 connect (&comm, SIGNAL(fileRequest (QHostAddress , QString , quint32 )), this, SLOT(incomingFile(QHostAddress , QString , quint32 )));
00082
00083
00084 connect (UserList, SIGNAL(signalSendFile(QHostAddress &)),this,SLOT(sendFile (QHostAddress &)));
00085
00086
00087 connect (&comm, SIGNAL(acceptSendFile (QHostAddress, QString)), this, SLOT(acceptSendFile (QHostAddress, QString)));
00088
00089
00090 connect (&comm, SIGNAL(refuseSendFile (QHostAddress , QString)), this, SLOT(refuseSendFile (QHostAddress, QString )));
00091
00092
00093 connect (&comm, SIGNAL(transferEnd (QHostAddress, bool)), this, SLOT(transferEnd (QHostAddress, bool)));
00094
00095
00096 connect (&comm, SIGNAL(fileProgress (int)), this, SLOT(fileProgress (int)));
00097
00098
00099 connect(&incoming_file_window, SIGNAL(signalCancelFileDownload()), this, SLOT(cancelFileTransfer()));
00100
00101
00102 connect(&outcomming_file_window, SIGNAL(signalCancelFileUpload()), this, SLOT(cancelFileTransfer()));
00103
00104
00105 connect (UserList, SIGNAL(signalCheckIp (QHostAddress &)),this,SLOT(checkIp (QHostAddress &)));
00106
00107
00108 connect (UserList, SIGNAL(signalCheckPing (QHostAddress &)),this,SLOT(checkPing (QHostAddress &)));
00109
00110
00111 connect (ChatTextInput, SIGNAL(sendRequest ()),this,SLOT(sendMsg()));
00112
00113
00114 connect (UserList, SIGNAL(disconectChatUserExists()),this,SLOT(disconnectChat()));
00115
00116 connect (&comm, SIGNAL(newUser(QHostAddress, QString)), this->UserList, SLOT(addUser(QHostAddress, QString)));
00117 connect (&comm, SIGNAL(newUser(QHostAddress, QString)), this, SLOT(setUserOnline(QHostAddress, QString)));
00118 connect (&comm, SIGNAL(leaveUser(QHostAddress)), this->UserList, SLOT(delUser(QHostAddress)));
00119 connect (&comm, SIGNAL(leaveUser(QHostAddress)), this->TabList, SLOT(setUnactiveUser(QHostAddress)));
00120 connect (&comm, SIGNAL(recvPMsg(QHostAddress, QString)), this, SLOT(recvPMsg(QHostAddress,QString)));
00121 connect (&comm, SIGNAL(recvBMsg(QHostAddress, QString)), this, SLOT(recvBMsg(QHostAddress, QString)));
00122 connect (&comm, SIGNAL(pong(QHostAddress, qint32)), this, SLOT(pong(QHostAddress, qint32)));
00123 connect (&comm, SIGNAL(connected()), this, SLOT(connected()));
00124 connect (&comm, SIGNAL(unableConnect()), this, SLOT(unableConnect()));
00125 connect (&comm, SIGNAL(invalidNick()), this, SLOT(invalidNick()));
00126
00127 connect (TabList,SIGNAL(tabCanNotBeClose()),this,SLOT(tabCanNotBeClose()));
00128 connect (TabList,SIGNAL(tabCanBeClose()),this,SLOT(tabCanBeClose()));
00129 connect (TabList,SIGNAL(isOnline()),this,SLOT(isOnline()));
00130 connect (TabList,SIGNAL(isNotOnline()),this,SLOT(isNotOnline()));
00131 connect (TabList,SIGNAL(setDisableInputText()),ChatTextInput, SLOT(setEnabled(false)));
00132 }
00133
00134 void GUIMainWindow::privateChat (QHostAddress &host)
00135 {
00136 TabList->addTab(host,UserList->returnNameUser(host),true,"icon/Chat/user.png");
00137 }
00138
00139 void GUIMainWindow::sendFile (QHostAddress &host)
00140 {
00141
00142 if(!(incoming_file_window.isActive()) && !(outcomming_file_window.isActive()) )
00143 {
00144
00145 is_file_outcoming = 1;
00146 QString file("");
00147 file.append( outcomming_file_window.choseFille());
00148
00149 if( file != "")
00150 {
00151 QString msg;
00152 msg.append(tr("wysyłam plik do usera <b>"));
00153 msg.append(UserList->returnNameUser(host));
00154 msg.append("</b> o scieżce: <u>");
00155 msg.append(file);
00156 msg.append("</u>");
00157 TabList->getActiveTab()->chat->printSysMsg(msg);
00158 try
00159 {
00160
00161 outcomming_file_window.setActive(1);
00162
00163 comm.sendFile (host, file);
00164 }
00165 catch(Exeptions & wyjatek)
00166 {
00167 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00168 }
00169 }
00170 else
00171 {
00172
00173 QString msg(tr("Rezygnacja z wysłania pliku"));
00174 TabList->getActiveTab()->chat->printSysMsg(msg);
00175
00176 outcomming_file_window.setActive(0);
00177 }
00178 }
00179 }
00180
00181 void GUIMainWindow::acceptSendFile (QHostAddress host, QString file)
00182 {
00183 outcomming_file_window.setActive(1);
00184 QString nick= UserList->returnNameUser(host);
00185 outcomming_file_window.showTransfer(nick, file);
00186 TabList->publicChat()->chat->printSysMsg(tr("Użytkownik zakceptował połączenie"));
00187 }
00188
00189 void GUIMainWindow::refuseSendFile (QHostAddress host, QString file)
00190 {
00191 QString msg;
00192 msg.append(tr(" Użytkownik <b>"));
00193 msg.append(this->UserList->returnNameUser(host));
00194 msg.append(tr("</b> odmówił przyjęcia pliku: <u>"));
00195 msg.append(file);
00196 msg.append("</u>");
00197
00198 QMessageBox::warning(this,QString(tr("Niepowodzenie w przesyłaniu pliku")),msg);
00199 outcomming_file_window.setActive(0);
00200 }
00201
00202 void GUIMainWindow::checkIp (QHostAddress &host)
00203 {
00204 QString msg;
00205 msg.append(tr("użytkownik: <b>"));
00206 msg.append(this->UserList->returnNameUser(host));
00207 msg.append(tr("</b> posiada IP: <u>"));
00208 msg.append(host.toString());
00209 msg.append("</u>");
00210 TabList->getActiveTab()->chat->printUserMsg(msg);
00211 }
00212
00213 void GUIMainWindow::checkPing (QHostAddress &host)
00214 {
00215 TabList->getActiveTab()->chat->printUserMsg(tr("Sprawdzam ping do użytkownika <b>") + userName(host) + "</b>");
00216 try
00217 {
00218 comm.checkPing(host);
00219 }
00220 catch(Exeptions & wyjatek)
00221 {
00222 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00223 }
00224 }
00225
00226 void GUIMainWindow::pong(QHostAddress ip, qint32 time)
00227 {
00228 QString msg;
00229 msg.append(tr("ping do użytkownika <b>"));
00230 msg.append(this->UserList->returnNameUser(ip));
00231 if (time == -1)
00232 {
00233 msg.append(" </b> <u> ");
00234 msg.append(tr("użytkownik nie odpowiada !!"));
00235 msg.append(" </u>");
00236 }
00237 else
00238 {
00239 msg.append(tr("</b> wynosi: <u>"));
00240 msg.append(QString::number(time)+tr("msek"));
00241 msg.append("</u>");
00242 }
00243 TabList->getActiveTab()->chat->printUserMsg(msg);
00244 }
00245
00246 void GUIMainWindow::invalidNick()
00247 {
00248 QMessageBox::warning(this,QString(tr("Wyjątek:")),tr("Nick jest już zajęty, zmnień nick!!"));
00249 disconnectChat();
00250 }
00251
00252 void GUIMainWindow::recvPMsg (QHostAddress host, QString msg)
00253 {
00254 int tab_is_create = TabList->isCreate(host);
00255 int current_index = TabList->currentIndex();
00256 QString mesage, user_name;
00257 user_name = this->userName(host);
00258
00259 mesage.append(this->time());
00260 mesage.append(" <b> ");
00261 mesage.append(user_name);
00262 mesage.append("</b> ");
00263 mesage.append(msg);
00264 mesage.append("<br>");
00265 if(!tab_is_create)
00266 {
00267 TabList->addTab(host,user_name,true,"icon/Chat/chat.png");
00268 TabList->setTabTextColor(TabList->currentIndex());
00269 TabList->setTabIcon(TabList->currentIndex(),QIcon("icon/Chat/chat.png"));
00270 TabList->getActiveTab()->chat->append(mesage);
00271 TabList->setCurrentIndex(current_index);
00272 }
00273 else
00274 {
00275 if(TabList->getTabNumber(host) != TabList->currentIndex())
00276 {
00277 TabList->setTabTextColor(tab_is_create);
00278 TabList->setTabIcon(tab_is_create,QIcon("icon/Chat/chat.png"));
00279 }
00280 TabList->tab(tab_is_create)->chat->append(mesage);
00281 }
00282 }
00283
00284 void GUIMainWindow::connectChat ()
00285 {
00286 TabList->publicChat()->chat->printSysMsg(tr("Trwa próba połączenia..."));
00287 try
00288 {
00289 connect_buton->setEnabled(false);
00290 comm.welcome (Settings->getNick(), Settings->getBroadcast(),Settings->getPort());
00291 }
00292 catch(Exeptions & wyjatek)
00293 {
00294 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00295 }
00296 }
00297
00298 void GUIMainWindow::connected()
00299 {
00300 TabList->publicChat()->chat->printSysMsg(tr("Program połączony"));
00301 disconnect(connect_buton, SIGNAL(triggered()), this, SLOT(connectChat()));
00302 connect_buton->setToolTip(tr("Rozłącz"));
00303 connect_buton->setIcon(QIcon("icon/MainToolBar/disconnect.png"));
00304 connect(connect_buton, SIGNAL(triggered()), this, SLOT(disconnectChat()));
00305
00306 UserList->setEnabled(true);
00307 connect_buton->setEnabled(true);
00308 TextToolBar->setEnabled(true);
00309 ChatTextInput->setEnabled(true);
00310
00311 is_connect = true;
00312
00313 UserList->setMyNick(Settings->getNick());
00314 outcomming_file_window.setDir(Settings->getFileStoragePath());
00315 incoming_file_window.setDir(Settings->getFileStoragePath());
00316 }
00317
00318 void GUIMainWindow::unableConnect()
00319 {
00320 TabList->publicChat()->chat->printSysMsg(tr("Nie udało sie połączyć"));
00321 connect_buton->setEnabled(true);
00322
00323 QMessageBox::warning(this,QString("Błąd"),
00324
00325 tr("Próba połączenia zakończona <b>niepowodzeniem</b><br> Sprawdź:<br>- czy adress broadcast jest poprawny<br>"
00326 "- ustawienia zapory ogniowej<br>"
00327 "- czy komputer jest podpięty do sieci"
00328 "- czy połączenie sieciowe jest włączone"));
00329 }
00330
00331 void GUIMainWindow::disconnectChat ()
00332 {
00333 TabList->publicChat()->chat->printSysMsg(tr("Program rozłączony"));
00334 disconnect(connect_buton, SIGNAL(triggered()), this, SLOT(disconnectChat()));
00335 connect_buton->setToolTip(tr("Połącz"));
00336 connect_buton->setIcon(QIcon("icon/MainToolBar/connect.png"));
00337 connect(connect_buton, SIGNAL(triggered()), this, SLOT(connectChat()));
00338 try
00339 {
00340 comm.bye ();
00341 }
00342 catch(Exeptions & wyjatek)
00343 {
00344 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00345 }
00346 UserList->clearAllUsers();
00347 UserList->setEnabled(false);
00348 TextToolBar->setEnabled(false);
00349 ChatTextInput->setEnabled(false);
00350 TabList->closeAllPrivChat();
00351
00352 is_connect = false;
00353 }
00354
00355 void GUIMainWindow::recvBMsg (QHostAddress host, QString msg)
00356 {
00357 QString message;
00358 message.append(this->time());
00359 message.append("<b> ");
00360 message.append(userName(host));
00361 message.append("</b><br>");
00362 message.append(msg);
00363
00364 TabList->publicChat()->chat->append(message);
00365 TabList->setTabTextColor(0);
00366 TabList->setTabIcon(0,QIcon("icon/Chat/chat.png"));
00367 }
00368
00369 void GUIMainWindow::sendMsg()
00370 {
00371 if(this->ChatTextInput->toPlainText().size())
00372 {
00373 if((is_connect == true) && (TabList->getActiveTab()->getOnline() == true))
00374 {
00375 QString msg;
00376 msg.append(this->time());
00377 msg.append("<b>");
00378 msg.append(" ");
00379 msg.append(Settings->getNick());
00380 msg.append(" </b><br>");
00381 msg.append("</td></tr><tr><td>");
00382 msg.append(this->ChatTextInput->toHtml());
00383
00384 TabList->getActiveTab()->chat->printChatText(msg);
00385 if(TabList->getActiveTab()->getIp() == Settings->getBroadcast())
00386 {
00387 try
00388 {
00389 comm.sendBMsg (this->ChatTextInput->toHtml());
00390 }
00391 catch(Exeptions & wyjatek)
00392 {
00393 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00394 }
00395 }
00396 else
00397 {
00398 try
00399 {
00400 comm.sendPMsg (TabList->getActiveTab()->getIp(), this->ChatTextInput->toHtml());
00401 }
00402 catch(Exeptions & wyjatek)
00403 {
00404 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00405 }
00406 }
00407 }
00408 this->ChatTextInput->clear ();
00409 }
00410
00411 }
00412
00413 void GUIMainWindow::createMainToolBar(QToolBar *tool_bar)
00414 {
00415 QAction *a;
00416
00417 connect_buton = new QAction(QIcon("icon/MainToolBar/connect.png"), tr("Polacz"),tool_bar);
00418 connect(connect_buton, SIGNAL(triggered()), this, SLOT(connectChat()));
00419 tool_bar->addAction(connect_buton);
00420
00421
00422 a= new QAction(QIcon("icon/MainToolBar/configure.png"), tr("Ustawienia"),tool_bar);
00423 connect(a, SIGNAL(triggered()), this, SLOT(configureChat()));
00424 tool_bar->addAction(a);
00425
00426
00427 a= new QAction(QIcon("icon/MainToolBar/clear.png"), tr("Czyść okno wiadomości"),tool_bar);
00428 connect(a, SIGNAL(triggered()),this, SLOT(clearActiveChatPage()));
00429 tool_bar->addAction(a);
00430
00431
00432 close_active_tab_buton= new QAction(QIcon("icon/MainToolBar/close_page_active.png"), tr("Zamknij zakładkę"),tool_bar);
00433
00434 connect(close_active_tab_buton, SIGNAL(triggered()), TabList, SLOT(closeActiveTab()));
00435
00436 tool_bar->addAction(close_active_tab_buton);
00437
00438 close_active_tab_buton->setEnabled(false);
00439 tool_bar->addSeparator();
00440 a= new QAction(QIcon("icon/MainToolBar/help.png"), tr("O programie"),tool_bar);
00441 a->setShortcut(Qt::Key_F1);
00442 connect(a, SIGNAL(triggered()),this, SLOT(about()));
00443 tool_bar->addAction(a);
00444
00445 }
00446
00447 void GUIMainWindow::about()
00448 {
00449 QDialog aboutProgram;
00450 aboutProgram.setWindowOpacity(0.95);
00451 aboutProgram.setWindowTitle("lanChat ver. 1.0");
00452
00453 QPalette pal = aboutProgram.palette();
00454 pal.setColor(QPalette::Window, Qt::white);
00455 aboutProgram.setPalette(pal);
00456
00457 QString about;
00458 about.append("<TABLE>");
00459 about.append("<TR><TD><h3>Autorzy:</h3></TD></TR>");
00460 about.append("<TR><TD></TD></TR>");
00461 about.append("<TR><TD><b>GJMP:</b></TD><TD> <font color=#0055FF>gjmp@o2.pl </font><br></TD></TR>");
00462 about.append("<TR><TD><b>luik:</b></TD><TD> <font color=#0055FF>luik@bielawa.info </font><br></TD></TR>");
00463 about.append("<TR><TD><b>n0rn:</b></TD><TD> <font color=#0055FF>n0rn@tlen.pl </font><br></TD></TR>");
00464 about.append("<TR><TD><b>PeBek:</b></TD><TD> <font color=#0055FF>pebek.tux@gmail.com </font><br></TD></TR>");
00465 about.append("<TR><TD><b>PKW:</b></TD><TD> <font color=#0055FF>pkw@vitea.pl </font><br></TD></TR>");
00466 about.append("</TABLE>");
00467 about.append("<TABLE>");
00468 about.append("<TR><TD><h3> Strona internetowa </h3></TD></TR>");
00469 about.append("<TR><TD><font color=#0055FF><a>http://avalanche-chat.sourceforge.net<a></font></TD></TR>");
00470 about.append("</TABLE>");
00471
00472 QHBoxLayout *main = new QHBoxLayout;
00473
00474 QVBoxLayout *picture = new QVBoxLayout;
00475 QPixmap *logo = new QPixmap("icon/logoMini.png");
00476 QLabel *pixmapLabel = new QLabel;
00477 pixmapLabel->setPixmap(*logo);
00478 QLabel *authors = new QLabel;
00479 authors->setText(about);
00480
00481 picture->addWidget(pixmapLabel);
00482 picture->addStretch(1);
00483 main->addLayout(picture);
00484 main->addWidget(authors);
00485 aboutProgram.setLayout(main);
00486
00487 aboutProgram.exec();
00488
00489 }
00490
00491
00492
00493
00494
00495
00496 void GUIMainWindow::cancelFileTransfer()
00497
00498 {
00499
00500 try
00501 {
00502 if(is_file_outcoming)
00503 {
00504 comm.cancelTranfer ();
00505 outcomming_file_window.setActive(0);
00506 }
00507 else
00508 {
00509 comm.cancelTranfer ();
00510 incoming_file_window.setActive(0);
00511 }
00512 }
00513 catch(Exeptions & wyjatek)
00514 {
00515 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00516 }
00517 TabList->getActiveTab()->chat->printSysMsg(tr(" <b>Przerwano transfer plików</b>"));
00518 }
00519
00520 void GUIMainWindow::incomingFile(QHostAddress host, QString file, quint32 size)
00521 {
00522
00523 if(!(incoming_file_window.isActive()) && !(outcomming_file_window.isActive()) )
00524 {
00525
00526 is_file_outcoming = 0;
00527 QString nick(this->UserList->returnNameUser(host));
00528 if( incoming_file_window.showWindowQuestion(nick, file) )
00529 {
00530
00531 incoming_file_window.setActive(1);
00532 QString file_to_save("");
00533 file_to_save.append( incoming_file_window.saveFille(file));
00534
00535 if( file_to_save != "")
00536 {
00537
00538 try
00539 {
00540
00541 comm.acceptFileRequest (host, file_to_save);
00542 }
00543 catch(Exeptions & wyjatek)
00544 {
00545 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00546 }
00547
00548 TabList->getActiveTab()->chat->append(tr("Zapisuje plik jako: <b>"));
00549 TabList->getActiveTab()->chat->append(file_to_save);
00550 incoming_file_window.showTransfer(nick, file_to_save);
00551 }
00552 else
00553 {
00554 TabList->getActiveTab()->chat->printSysMsg(tr("Odmowa przyjęcia pliku"));
00555 try
00556 {
00557
00558 comm.refuseFileRequest (host);
00559
00560 incoming_file_window.setActive(0);
00561 }
00562 catch(Exeptions & wyjatek)
00563 {
00564 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00565 }
00566 }
00567 }
00568 else
00569 {
00570 TabList->getActiveTab()->chat->printSysMsg(tr("Odmowa przyjęcia pliku"));
00571 try
00572 {
00573
00574 comm.refuseFileRequest (host);
00575
00576 incoming_file_window.setActive(0);
00577 }
00578 catch(Exeptions & wyjatek)
00579 {
00580 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00581 }
00582 }
00583 }
00584 }
00585
00586
00587
00588 void GUIMainWindow::transferEnd (QHostAddress host, bool czy_ok)
00589
00590 {
00591 if(is_file_outcoming)
00592 {
00593 outcomming_file_window.upgradeTransfer(100);
00594 outcomming_file_window.setActive(0);
00595 }
00596 else
00597 {
00598 incoming_file_window.upgradeTransfer(100);
00599 incoming_file_window.setActive(0);
00600 }
00601 if(czy_ok)
00602 {
00603 TabList->getActiveTab()->chat->printSysMsg(tr("Transfer pliku zakończył się powodzeniem"));
00604 }
00605 else
00606 {
00607 TabList->getActiveTab()->chat->printSysMsg(tr("Transfer pliku zakończył się <b> NIEPOWODZENIEM </b>"));
00608 }
00609 }
00610
00611 void GUIMainWindow::fileProgress (int procent)
00612 {
00613 if(is_file_outcoming)
00614 {
00615 outcomming_file_window.upgradeTransfer(procent);
00616 }
00617 else
00618 {
00619 incoming_file_window.upgradeTransfer(procent);
00620 }
00621 }
00622
00623 void GUIMainWindow::configureChat()
00624 {
00625 Settings->exec();
00626 }
00627
00628 void GUIMainWindow::tabCanNotBeClose()
00629 {
00630 close_active_tab_buton->setEnabled(false);
00631 }
00632
00633 void GUIMainWindow::tabCanBeClose()
00634 {
00635 close_active_tab_buton->setEnabled(true);
00636 }
00637
00638 void GUIMainWindow::isOnline()
00639 {
00640 if(is_connect)
00641 ChatTextInput->setEnabled(true);
00642 }
00643
00644 void GUIMainWindow::isNotOnline()
00645 {
00646 ChatTextInput->setEnabled(false);
00647 }
00648
00649 void GUIMainWindow::setUserOnline(QHostAddress host, QString msg)
00650 {
00651 if(TabList->isCreate(host))
00652 {
00653 TabList->tab(TabList->getTabNumber(host))->setOnline(true);
00654 TabList->setTabIcon(TabList->getTabNumber(host),QIcon("icon/Chat/user.png"));
00655 TabList->setTabTextColor(TabList->getTabNumber(host), Qt::black);
00656 if(TabList->getTabNumber(host) == TabList->currentIndex())
00657 {
00658 ChatTextInput->setEnabled(true);
00659 }
00660 }
00661 }
00662
00663 QString GUIMainWindow::time()
00664 {
00665 QString msg;
00666 msg.append("<font color=\"blue\">");
00667 msg.append(QTime::currentTime().toString());
00668 msg.append("</font>");
00669 return msg;
00670 }
00671
00672 QString GUIMainWindow::userName(QHostAddress host)
00673 {
00674 QString user_name;
00675 if((user_name = this->UserList->returnNameUser(host)) != "")
00676 {
00677 return user_name;
00678 }
00679 else
00680 {
00681 return host.toString();
00682 }
00683 }
00684
00685 void GUIMainWindow::clearActiveChatPage()
00686 {
00687 TabList->getActiveTab()->chat->clear();
00688 }
00689
00690 void GUIMainWindow::setApperance()
00691 {
00692 QPalette tmp;
00693 tmp = ChatTextInput->palette();
00694 tmp.setColor(QPalette::Base,Settings->getBackgroundColor());
00695 ChatTextInput->setPalette(tmp);
00696 ChatTextInput->setDefFontColor(Settings->getFontColor());
00697 ChatTextInput->setTextColor(Settings->getFontColor());
00698 tmp = UserList->palette();
00699 tmp.setColor(QPalette::Base,Settings->getBackgroundColor());
00700 tmp.setColor(QPalette::Text,Settings->getFontColor());
00701 UserList->setPalette(tmp);
00702 tmp = TabList->palette();
00703 tmp.setColor(QPalette::Base,Settings->getBackgroundColor());
00704 tmp.setColor(QPalette::Text,Settings->getFontColor());
00705 TabList->setPalette(tmp);
00706 if(Settings->getOpacityEnabled())
00707 {
00708 this->setAutoFillBackground(false);
00709 this->setAttribute(Qt::WA_NoSystemBackground, false);
00710 this->setWindowOpacity(Settings->getOpacity());
00711 }
00712 else
00713 {
00714 this->setWindowOpacity(1.0);
00715 }
00716 if(is_connect)
00717 {
00718 this->disconnectChat();
00719 this->connectChat();
00720 }
00721 }
00722
00723 void GUIMainWindow::closeEvent(QCloseEvent *e)
00724 {
00725 if(is_connect)
00726 try
00727 {
00728 comm.bye();
00729 }
00730 catch(Exeptions & wyjatek)
00731 {
00732 QMessageBox::warning(this,QString(tr("Wyjątek:")),wyjatek.getErrorMessage());
00733 }
00734 e->accept();
00735 }
00736