PrivacyDlg::PrivacyDlg(JabberAccount* acc, QWidget* parent) : KDialog(parent), acc_(acc) { QWidget * w = new QWidget (this); ui_.setupUi(w); setMainWidget (w); setAttribute(Qt::WA_DeleteOnClose); setCaption(i18n("%1: Privacy Lists", (acc->myself()->nickName() ) ) ); setButtons (KDialog::Close); ui_.lv_rules->setFocus (Qt::PopupFocusReason); PrivacyManager* manager = acc->client()->privacyManager(); connect(manager,SIGNAL(listsReceived(QString,QString,QStringList)),SLOT(updateLists(QString,QString,QStringList))); connect(manager,SIGNAL(listReceived(PrivacyList)),SLOT(refreshList(PrivacyList))); connect(manager,SIGNAL(listError()),SLOT(list_failed())); //connect(manager,SIGNAL(listNamesError()),SLOT(listNamesError())); //connect(manager,SIGNAL(listReceiveError()),SLOT(listReceiveError())); connect(ui_.cb_active,SIGNAL(activated(int)),SLOT(active_selected(int))); connect(ui_.cb_default,SIGNAL(activated(int)),SLOT(default_selected(int))); connect(ui_.cb_lists,SIGNAL(activated(int)),SLOT(list_selected(int))); connect(ui_.cb_lists,SIGNAL(currentIndexChanged(int)),SLOT(list_changed(int))); connect(manager,SIGNAL(changeActiveList_success()),SLOT(change_succeeded())); connect(manager,SIGNAL(changeActiveList_error()),SLOT(change_failed())); connect(manager,SIGNAL(changeDefaultList_success()),SLOT(change_succeeded())); connect(manager,SIGNAL(changeDefaultList_error()),SLOT(change_failed())); connect(manager,SIGNAL(changeList_success()),SLOT(changeList_succeeded())); connect(manager,SIGNAL(changeList_error()),SLOT(changeList_failed())); connect(ui_.pb_newList,SIGNAL(clicked()),SLOT(newList())); connect(ui_.pb_deleteList,SIGNAL(clicked()),SLOT(removeList())); connect(ui_.pb_add,SIGNAL(clicked()),SLOT(addRule())); connect(ui_.pb_edit,SIGNAL(clicked()),SLOT(editCurrentRule())); connect(ui_.pb_remove,SIGNAL(clicked()),SLOT(removeCurrentRule())); connect(ui_.pb_up,SIGNAL(clicked()),SLOT(moveCurrentRuleUp())); connect(ui_.pb_down,SIGNAL(clicked()),SLOT(moveCurrentRuleDown())); connect(ui_.pb_apply,SIGNAL(clicked()),SLOT(applyList())); ui_.pb_newList->setIcon(KIcon("list-add")); ui_.pb_deleteList->setIcon(KIcon("list-remove")); ui_.pb_add->setIcon(KIcon("list-add")); ui_.pb_remove->setIcon(KIcon("list-remove")); ui_.pb_up->setIcon(KIcon("arrow-up")); ui_.pb_down->setIcon(KIcon("arrow-down")); ui_.pb_edit->setIcon(KIcon("edit-rename")); ui_.pb_apply->setIcon(KIcon("dialog-ok-apply")); setWidgetsEnabled(false); // Disable all buttons ui_.pb_deleteList->setEnabled(false); setEditRuleEnabled(false); ui_.pb_add->setEnabled(false); ui_.pb_apply->setEnabled(false); // FIXME: Temporarily disabling auto-activate ui_.ck_autoActivate->hide(); manager->requestListNames(); }
PrivacyDlg::PrivacyDlg(const QString& account_name, PrivacyManager* manager, QWidget* parent) : QDialog(parent), manager_(manager) { ui_.setupUi(this); setAttribute(Qt::WA_DeleteOnClose); setWindowTitle(tr("%1: Privacy Lists").arg(account_name)); setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint); connect(manager_,SIGNAL(listsReceived(const QString&, const QString&, const QStringList&)),SLOT(updateLists(const QString&, const QString&, const QStringList&))); connect(manager_,SIGNAL(listReceived(const PrivacyList&)),SLOT(refreshList(const PrivacyList&))); connect(manager_,SIGNAL(listError()),SLOT(list_failed())); //connect(manager_,SIGNAL(listNamesError()),SLOT(listNamesError())); //connect(manager_,SIGNAL(listReceiveError()),SLOT(listReceiveError())); connect(ui_.cb_active,SIGNAL(activated(int)),SLOT(active_selected(int))); connect(ui_.cb_default,SIGNAL(activated(int)),SLOT(default_selected(int))); connect(ui_.cb_lists,SIGNAL(activated(int)),SLOT(list_selected(int))); connect(ui_.cb_lists,SIGNAL(currentIndexChanged(int)),SLOT(list_changed(int))); connect(manager_,SIGNAL(changeActiveList_success(QString)),SLOT(changeActiveList_succeeded(QString))); connect(manager_,SIGNAL(changeActiveList_error()),SLOT(change_failed())); connect(manager_,SIGNAL(changeDefaultList_success(QString)),SLOT(changeDefaultList_succeeded(QString))); connect(manager_,SIGNAL(changeDefaultList_error()),SLOT(change_failed())); connect(manager_,SIGNAL(changeList_success(QString)),SLOT(changeList_succeeded(QString))); connect(manager_,SIGNAL(changeList_error()),SLOT(changeList_failed())); connect(ui_.pb_newList,SIGNAL(clicked()),SLOT(newList())); connect(ui_.pb_deleteList,SIGNAL(clicked()),SLOT(removeList())); connect(ui_.pb_renameList,SIGNAL(clicked()),SLOT(renameList())); connect(ui_.pb_add,SIGNAL(clicked()),SLOT(addRule())); connect(ui_.pb_edit,SIGNAL(clicked()),SLOT(editCurrentRule())); connect(ui_.pb_remove,SIGNAL(clicked()),SLOT(removeCurrentRule())); connect(ui_.pb_up,SIGNAL(clicked()),SLOT(moveCurrentRuleUp())); connect(ui_.pb_down,SIGNAL(clicked()),SLOT(moveCurrentRuleDown())); connect(ui_.pb_apply,SIGNAL(clicked()),SLOT(applyList())); connect(ui_.buttonBox->button(QDialogButtonBox::Close),SIGNAL(clicked()),SLOT(close())); setWidgetsEnabled(false); // Disable all buttons ui_.pb_deleteList->setEnabled(false); setEditRuleEnabled(false); ui_.pb_add->setEnabled(false); ui_.pb_apply->setEnabled(false); // FIXME: Temporarily disabling auto-activate ui_.ck_autoActivate->hide(); manager_->requestListNames(); }
Listserver::Listserver(QObject *parent) : QObject(parent) { connect(this, SIGNAL(config(QString, QVariant)), this->parent(), SIGNAL(config(QString, QVariant))); connect(this, SIGNAL(log(QVariant)), this->parent(), SIGNAL(log(QVariant))); this->listserverSock = new QTcpSocket(this); this->timeout = config("listserver/timeout", 5).toInt(); this->reconnectDelay = config("listserver/reconnectDelay", 10).toInt(); this->listPort = config("listserver/port", 10054).toInt(); this->listservers = config("listserver/hosts", QString("list.jazzjackrabbit.com,list1.digiex.net,list2.digiex.net").split(",")).toStringList(); this->currentServer = 0; this->isListed = config("listserver/list", true).toBool(); this->instantReconnect = false; this->unexpectedDisconnect = true; connect(this->listserverSock, SIGNAL(connected()), this, SLOT(listConnected())); connect(this->listserverSock, SIGNAL(readyRead()), this, SLOT(listProcessPackets())); connect(this->listserverSock, SIGNAL(disconnected()), this, SLOT(listDisconnected())); connect(this->listserverSock, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(listError())); this->timeoutTimer = new QTimer(this); this->timeoutTimer->setInterval(this->timeout*1000); this->timeoutTimer->setSingleShot(true); connect(this->timeoutTimer, SIGNAL(timeout()), this, SLOT(listTimeout())); this->reconnectTimer = new QTimer(this); this->reconnectTimer->setInterval(this->reconnectDelay*1000); this->reconnectTimer->setSingleShot(true); connect(this->reconnectTimer, SIGNAL(timeout()), this, SLOT(listReconnect())); // old code, keep for reference, will be useful sometime in the future /*PACKET_SERVERLIST_LIST packet; packet.port = 10052; packet.servername = "AAAAAA"; packet.flags.isPrivate = true; packet.flags.gametype = 3; QByteArray bytes; QDataStream stream(&bytes, QIODevice::ReadWrite); stream << packet.port; //bytes.append(packet.servername); //bytes.append(QByteArray(33-packet.servername.length(), 0)); // padding stream << packet.flags; qDebug() << bytes.toHex();*/ }
int printError(FILE *outFile, int errorCode, int lineNum) { if (errorCode == OK) // if no errors detected return NORMAL; // if there are only warnings and warnings are disabled if (errorCode < MINOR && errorCode > WARNING && WARflag == false) return NORMAL; if (lineNumL68 >= 0) sprintf(numBuf, "Line %d ", lineNumL68); else numBuf[0] = '\0'; // ---------- display warning messages ---------- switch (errorCode) { case NUMBER_TOO_BIG: sprintf(buffer, "WARNING: Numeric constant exceeds 32 bits\n"); break; case ASCII_TOO_BIG: sprintf(buffer, "WARNING: ASCII constant exceeds 4 characters\n"); break; case INCOMPLETE: sprintf(buffer, "WARNING: Evaluation of expression could not be completed\n"); break; case FORCING_SHORT: sprintf(buffer, "WARNING: Forcing SHORT addressing disables range checking of extension word\n"); break; case ODD_ADDRESS: sprintf(buffer, "WARNING: Origin value is odd (Location counter set to next highest address)\n"); break; case END_MISSING: sprintf(buffer, "WARNING: END directive missing, starting address not set\n"); break; case ADDRESS_MISSING: sprintf(buffer, "WARNING: Address expected\n"); break; case THEN_EXPECTED: sprintf(buffer, "WARNING: THEN expected\n"); break; case DO_EXPECTED: sprintf(buffer, "WARNING: DO expected\n"); break; case FORWARD_REF: sprintf(buffer, "WARNING: Forward reference may cause 'Symbol value differs...' error\n"); break; case LABEL_TOO_LONG: sprintf(buffer, "WARNING: Label too long\n"); break; default : if (errorCode < MINOR && errorCode > WARNING) sprintf(buffer, "WARNING: No message defined\n"); } // ---------- display error messages ---------- switch (errorCode) { case SYNTAX: sprintf(buffer, "ERROR: Invalid syntax\n"); break; case UNDEFINED: sprintf(buffer, "ERROR: Undefined symbol\n"); break; case DIV_BY_ZERO: sprintf(buffer, "ERROR: Division by zero attempted\n"); break; case INV_OPCODE: sprintf(buffer, "ERROR: Invalid opcode\n"); break; case INV_SIZE_CODE: sprintf(buffer, "ERROR: Invalid size code\n"); break; case INV_ADDR_MODE: sprintf(buffer, "ERROR: Invalid addressing mode\n"); break; case MULTIPLE_DEFS: sprintf(buffer, "ERROR: Symbol defined more than once\n"); break; case NO_ENDM: sprintf(buffer, "ERROR: ENDM expected\n"); break; case TOO_MANY_ARGS: sprintf(buffer, "ERROR: Too many arguments\n"); break; case INVALID_ARG: sprintf(buffer, "ERROR: Invalid argument\n"); break; case PHASE_ERROR: sprintf(buffer, "ERROR: Symbol value differs between first and second pass\n"); break; case INV_QUICK_CONST: sprintf(buffer, "ERROR: Quick immediate data range must be 1 to 8\n"); break; case INV_MOVE_QUICK_CONST: sprintf(buffer, "ERROR: Quick immediate data range exceeds 1 byte\n"); break; case INV_VECTOR_NUM: sprintf(buffer, "ERROR: Invalid vector number\n"); break; case INV_BRANCH_DISP: sprintf(buffer, "ERROR: Branch instruction displacement is out of range or invalid\n"); break; case LABEL_REQUIRED: sprintf(buffer, "ERROR: Label required with this directive\n"); break; case INV_DISP: sprintf(buffer, "ERROR: Displacement out of range\n"); break; case INV_ABS_ADDRESS: sprintf(buffer, "ERROR: Absolute address exceeds 16 bits\n"); break; case INV_8_BIT_DATA: sprintf(buffer, "ERROR: Immediate data exceeds 8 bits\n"); break; case INV_16_BIT_DATA: sprintf(buffer, "ERROR: Immediate data exceeds 16 bits\n"); break; case NOT_REG_LIST: sprintf(buffer, "ERROR: Symbol is not a register list symbol\n"); break; case REG_LIST_SPEC: sprintf(buffer, "ERROR: Register list symbol used in an expression\n"); break; case REG_LIST_UNDEF: sprintf(buffer, "ERROR: Register list symbol not previously defined\n"); break; case INV_SHIFT_COUNT: sprintf(buffer, "ERROR: Invalid constant shift count\n"); break; case INV_OPERATOR: sprintf(buffer, "ERROR: Invalid operator\n"); break; case INV_FORWARD_REF: sprintf(buffer, "ERROR: Forward references not allowed with this directive\n"); break; case INV_LENGTH: sprintf(buffer, "ERROR: Invalid block length\n"); break; case COMMA_EXPECTED: sprintf(buffer, "ERROR: Comma expected\n"); break; case FAIL_ERROR: // user defined error //the error message has already been written to buffer break; case EXCEPTION: // an exception occurred //the error message has already been written to buffer break; case FILE_ERROR: sprintf(buffer, "ERROR: Unable to access specified file\n"); break; case MACRO_NEST: // possible recursive macro call sprintf(buffer, "ERROR: Nested Macro calls are too many levels deep\n"); break; case NO_IF: sprintf(buffer, "ERROR: No matching IF statement was found\n"); break; case NO_WHILE: sprintf(buffer, "ERROR: No matching WHILE statement was found\n"); break; case NO_REPEAT: sprintf(buffer, "ERROR: No matching REPEAT statement was found\n"); break; case NO_DBLOOP: sprintf(buffer, "ERROR: No matching DBLOOP statement was found\n"); break; case NO_FOR: sprintf(buffer, "ERROR: No matching FOR statement was found\n"); break; case ENDI_EXPECTED: sprintf(buffer, "ERROR: IF without ENDI\n"); break; case ENDW_EXPECTED: sprintf(buffer, "ERROR: WHILE without ENDW\n"); break; case ENDF_EXPECTED: sprintf(buffer, "ERROR: FOR without ENDF\n"); break; case REPEAT_EXPECTED: sprintf(buffer, "ERROR: UNTIL without REPEAT\n"); break; case DBLOOP_EXPECTED: sprintf(buffer, "ERROR: UNLESS without DBLOOP\n"); break; case LABEL_ERROR: sprintf(buffer, "ERROR: Label is not allowed\n"); break; case BAD_BITFIELD: sprintf(buffer, "ERROR: Invalid bitfield\n"); break; default : if (errorCode > MINOR) sprintf(buffer, "ERROR: No message defined\n"); } // end switch if (outFile) listError(numBuf, buffer); // add error to listing file // display error messages in edit window // if include file then display error in proper window if (includeFile[0]) { // if not NULL bool openIncFile = true; // open included file when true AnsiString incFile(includeFile); // check to see if file is already open for(int i = Main->MDIChildCount-1; i >= 0; i--) { TextStuff = (TTextStuff*)Main->MDIChildren[i]; //if(TextStuff->Project.CurrentFile == ExpandFileName(incFile)) { // if file already open if(ExpandFileName(TextStuff->Project.CurrentFile).AnsiCompareIC(ExpandFileName(incFile)) == 0) { if (TextStuff->Project.Modified) { // if it is modified if (includedFileError == false) { AnsiString asBuffer = "An Error occurred in the included file " + ExtractFileName(incFile) + ".\nThe file is currently open and has been modified." + "\nThe line numbers of errors may not be correct."; ShowMessage(asBuffer); includedFileError = true; // prevent multiple messages } } openIncFile = false; TextStuff->BringToFront(); break; } } if (openIncFile) Main->OpenFile(incFile); } //Grab the active Child Form TTextStuff *Active = (TTextStuff*)Main->ActiveMDIChild; //grab active mdi child Active->Messages->Enabled = true; //need to allow user to click errors if (Active->Messages->Height < 87) Active->Messages->Height = 87; ListItem = Active->Messages->Items->Add(); if (lineNum >= 0) sprintf(numBuf, "Line %d ", lineNum); else numBuf[0] = '\0'; ListItem->Caption = lineNum; // display line number of error buffer[strlen(buffer)-1]='\0'; // trim off '\n' ListItem->SubItems->Add(buffer); // add error message to edit window ListItem->SubItems->Add(Active->Project.CurrentFile); // display file return NORMAL; }