diff options
Diffstat (limited to 'src/gui/gui.cpp')
-rw-r--r-- | src/gui/gui.cpp | 170 |
1 files changed, 84 insertions, 86 deletions
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 1399f4b..82d76e7 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -21,8 +21,6 @@ #include <iostream> #include <cstdlib> #include <qapplication.h> -//Added by qt3to4: -#include <q3mimefactory.h> #include <QFrame> #ifdef HAVE_KDE @@ -61,10 +59,8 @@ #include "im/msg_session.h" #include "qcombobox.h" -#include "q3hbox.h" #include "qlabel.h" #include "qlayout.h" -#include "q3listbox.h" #include "qmessagebox.h" #include "qpixmap.h" #include <QProcess> @@ -73,10 +69,7 @@ #include "qsizepolicy.h" #include "qstring.h" #include "qtextcodec.h" -#include "q3textedit.h" -#include "q3toolbar.h" #include "qtooltip.h" -#include "q3vbox.h" extern string user_host; extern pthread_t thread_id_main; @@ -96,17 +89,15 @@ QString str2html(const QString &s) } void setDisabledIcon(QAction *action, const QString &icon) { - QIcon i = action->iconSet(); - i.setPixmap(QPixmap(icon), - QIcon::Automatic, QIcon::Disabled); - action->setIconSet(i); + QIcon i = action->icon(); + i.addPixmap(QPixmap(icon), QIcon::Disabled); + action->setIcon(i); } void setDisabledIcon(QToolButton *toolButton, const QString &icon) { - QIcon i = toolButton->iconSet(); - i.setPixmap(QPixmap(icon), - QIcon::Automatic, QIcon::Disabled); - toolButton->setIconSet(i); + QIcon i = toolButton->icon(); + i.addPixmap(QPixmap(icon), QIcon::Disabled); + toolButton->setIcon(i); } ///////////////////////////////////////////////// @@ -134,11 +125,11 @@ void t_gui::clearLineFields(int line) { setLineFields(line); fromLabel->clear(); - QToolTip::remove(fromLabel); + fromLabel->setToolTip(QString()); toLabel->clear(); - QToolTip::remove(toLabel); + toLabel->setToolTip(QString()); subjectLabel->clear(); - QToolTip::remove(subjectLabel); + subjectLabel->setToolTip(QString()); codecLabel->clear(); photoLabel->clear(); photoLabel->hide(); @@ -147,19 +138,19 @@ void t_gui::clearLineFields(int line) { void t_gui::displayTo(const QString &s) { toLabel->setText(s); toLabel->setCursorPosition(0); - QToolTip::add(toLabel, s); + toLabel->setToolTip(s); } void t_gui::displayFrom(const QString &s) { fromLabel->setText(s); fromLabel->setCursorPosition(0); - QToolTip::add(fromLabel, s); + fromLabel->setToolTip(s); } void t_gui::displaySubject(const QString &s) { subjectLabel->setText(s); subjectLabel->setCursorPosition(0); - QToolTip::add(subjectLabel, s); + subjectLabel->setToolTip(s); } void t_gui::displayCodecInfo(int line) { @@ -204,8 +195,8 @@ void t_gui::displayPhoto(const QImage &photo) { photoLabel->hide(); } else { QPixmap pm; - pm.convertFromImage(photo.smoothScale( - photoLabel->width(), photoLabel->height(), Qt::KeepAspectRatio)); + pm.convertFromImage(photo.scaled( + QSize(photoLabel->width(), photoLabel->height()), Qt::KeepAspectRatio, Qt::SmoothTransformation)); photoLabel->setPixmap(pm); photoLabel->show(); } @@ -221,7 +212,7 @@ bool t_gui::do_invite(const string &destination, const string &display, if (mainWindow->callInvite->isEnabled()) { if (immediate) { t_user *user = phone->ref_user_profile( - mainWindow->userComboBox->currentText().ascii()); + mainWindow->userComboBox->currentText().toStdString()); t_url dst_url(expand_destination(user, destination)); if (dst_url.is_valid()) { mainWindow->do_phoneInvite(user, @@ -284,7 +275,7 @@ void t_gui::do_redirect(bool show_status, bool type_present, t_cf_type cf_type, } t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); list<t_display_url> dest_list; for (list<string>::const_iterator i = dest_strlist.begin(); @@ -346,13 +337,13 @@ void t_gui::do_dnd(bool show_status, bool toggle, bool enable) { lock(); if (phone->ref_users().size() == 1) { if (toggle) { - enable = !mainWindow->serviceDnd->isOn(); + enable = !mainWindow->serviceDnd->isChecked(); } mainWindow->srvDnd(enable); - mainWindow->serviceDnd->setOn(enable); + mainWindow->serviceDnd->setChecked(enable); } else { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); list<t_user *> l; l.push_back(user); if (toggle) { @@ -377,13 +368,13 @@ void t_gui::do_auto_answer(bool show_status, bool toggle, bool enable) { lock(); if (phone->ref_users().size() == 1) { if (toggle) { - enable = !mainWindow->serviceAutoAnswer->isOn(); + enable = !mainWindow->serviceAutoAnswer->isChecked(); } mainWindow->srvAutoAnswer(enable); - mainWindow->serviceAutoAnswer->setOn(enable); + mainWindow->serviceAutoAnswer->setChecked(enable); } else { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); list<t_user *> l; l.push_back(user); if (toggle) { @@ -410,7 +401,7 @@ void t_gui::do_bye(void) { void t_gui::do_hold(void) { lock(); - if (mainWindow->callHold->isEnabled() && !mainWindow->callHold->isOn()) { + if (mainWindow->callHold->isEnabled() && !mainWindow->callHold->isChecked()) { mainWindow->phoneHold(true); } unlock(); @@ -418,7 +409,7 @@ void t_gui::do_hold(void) { void t_gui::do_retrieve(void) { lock(); - if (mainWindow->callHold->isEnabled() && mainWindow->callHold->isOn()) { + if (mainWindow->callHold->isEnabled() && mainWindow->callHold->isChecked()) { mainWindow->phoneHold(false); } unlock(); @@ -427,12 +418,12 @@ void t_gui::do_retrieve(void) { bool t_gui::do_refer(const string &destination, t_transfer_type transfer_type, bool immediate) { lock(); if (mainWindow->callTransfer->isEnabled() && - !mainWindow->callTransfer->isOn()) + !mainWindow->callTransfer->isChecked()) { if (immediate) { t_display_url du; t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); du.url = expand_destination(user, destination); if (du.is_valid() || transfer_type == TRANSFER_OTHER_LINE) { @@ -442,7 +433,7 @@ bool t_gui::do_refer(const string &destination, t_transfer_type transfer_type, b mainWindow->phoneTransfer(destination, transfer_type); } } else if(mainWindow->callTransfer->isEnabled() && - mainWindow->callTransfer->isOn()) + mainWindow->callTransfer->isChecked()) { if (transfer_type != TRANSFER_CONSULT) { mainWindow->do_phoneTransferLine(); @@ -491,7 +482,7 @@ void t_gui::do_register(bool reg_all_profiles) { l = phone->ref_users(); } else { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); l.push_back(user); } @@ -507,7 +498,7 @@ void t_gui::do_deregister(bool dereg_all_profiles, bool dereg_all_devices) { l = phone->ref_users(); } else { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); l.push_back(user); } @@ -536,7 +527,7 @@ bool t_gui::do_options(bool dest_set, const string &destination, bool immediate) if (immediate) { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); t_url dst_url(expand_destination(user, destination)); if (dst_url.is_valid()) { @@ -561,9 +552,9 @@ void t_gui::do_line(int line) { void t_gui::do_user(const string &profile_name) { lock(); for (int i = 0; i < mainWindow->userComboBox->count(); i++) { - if (mainWindow->userComboBox->text(i) == profile_name.c_str()) + if (mainWindow->userComboBox->itemText(i) == profile_name.c_str()) { - mainWindow->userComboBox->setCurrentItem(i); + mainWindow->userComboBox->setCurrentIndex(i); } } unlock(); @@ -573,7 +564,7 @@ bool t_gui::do_message(const string &destination, const string &display, const im::t_msg &msg) { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); t_url dest_url(expand_destination(user, destination)); @@ -586,7 +577,7 @@ bool t_gui::do_message(const string &destination, const string &display, void t_gui::do_presence(t_presence_state::t_basic_state basic_state) { t_user *user = phone->ref_user_profile(mainWindow-> - userComboBox->currentText().ascii()); + userComboBox->currentText().toStdString()); phone->pub_publish_presence(user, basic_state); } @@ -636,8 +627,11 @@ t_gui::t_gui(t_phone *_phone) : t_userintf(_phone), timerUpdateMessageSessions(N { use_stdout = false; lastFileBrowsePath = DIR_HOME; + + qRegisterMetaType<t_user*>("t_user*"); + qRegisterMetaType<t_register_type>("t_register_type"); - mainWindow = new MphoneForm(0, 0, Qt::WType_TopLevel | Qt::WStyle_ContextHelp); + mainWindow = new MphoneForm; #ifdef HAVE_KDE sys_tray_popup = NULL; #endif @@ -648,7 +642,7 @@ t_gui::t_gui(t_phone *_phone) : t_userintf(_phone), timerUpdateMessageSessions(N } MEMMAN_NEW(mainWindow); - qApp->setMainWidget(mainWindow); + connect(this, SIGNAL(update_reg_status()), mainWindow, SLOT(updateRegStatus())); connect(this, SIGNAL(update_mwi()), mainWindow, SLOT(updateMwi())); connect(this, SIGNAL(update_state()), mainWindow, SLOT(updateState())); @@ -680,11 +674,11 @@ void t_gui::run(void) { // NOTE: the t_gui::lock() method cannot be used as this method // will not lock from the main thread and we are running in the // main thread (a bit of a kludge). - qApp->lock(); + //qApp->lock(); // Set configuration file name in titlebar s = PRODUCT_NAME; - mainWindow->setCaption(s); + mainWindow->setWindowTitle(s); // Set user combo box mainWindow->updateUserComboBox(); @@ -727,7 +721,7 @@ void t_gui::run(void) { // Start QApplication/KApplication if (qApp->isSessionRestored() && - sys_config->get_ui_session_id() == qApp->sessionId().ascii()) + sys_config->get_ui_session_id() == qApp->sessionId().toStdString()) { // Restore previous session restore_session_state(); @@ -745,23 +739,23 @@ void t_gui::run(void) { // line. if (!g_cmd_args.cmd_set_profile.isEmpty()) { cmdsocket::cmd_cli(string("user ") + - g_cmd_args.cmd_set_profile.ascii(), true); + g_cmd_args.cmd_set_profile.toStdString(), true); } // Execute the call command if a callto destination was specified on the // command line if (!g_cmd_args.callto_destination.isEmpty()) { - cmdsocket::cmd_call(g_cmd_args.callto_destination.ascii(), + cmdsocket::cmd_call(g_cmd_args.callto_destination.toStdString(), g_cmd_args.cmd_immediate_mode); } // Execute a CLI command if one was given on the command line if (!g_cmd_args.cli_command.isEmpty()) { - cmdsocket::cmd_cli(g_cmd_args.cli_command.ascii(), + cmdsocket::cmd_cli(g_cmd_args.cli_command.toStdString(), g_cmd_args.cmd_immediate_mode); } - qApp->unlock(); + //qApp->unlock(); // Start Qt application qApp->exec(); @@ -777,11 +771,11 @@ void t_gui::save_state(void) { lock(); sys_config->set_last_used_profile( - mainWindow->userComboBox->currentText().ascii()); + mainWindow->userComboBox->currentText().toStdString()); list<string> history; for (int i = 0; i < mainWindow->callComboBox->count(); i++) { - history.push_back(mainWindow->callComboBox->text(i).ascii()); + history.push_back(mainWindow->callComboBox->itemText(i).toStdString()); } sys_config->set_dial_history(history); @@ -846,17 +840,17 @@ void t_gui::lock(void) { // main thread. // If the Qt event loop has not been started yet, then the lock // should also be taken from the main thread. - t_userintf::lock(); - if (!t_thread::is_self(thread_id_main)) { - qApp->lock(); - } + t_userintf::lock(); + //if (!t_thread::is_self(thread_id_main)) { + // qApp->lock(); + //} } void t_gui::unlock(void) { t_userintf::lock(); - if (!t_thread::is_self(thread_id_main)) { - qApp->unlock(); - } + //if (!t_thread::is_self(thread_id_main)) { + // qApp->unlock(); + //} } string t_gui::select_network_intf(void) { @@ -870,7 +864,7 @@ string t_gui::select_network_intf(void) { "Cannot find a network interface. Twinkle will use " "127.0.0.1 as the local IP address. When you connect to " "the network you have to restart Twinkle to use the correct " - "IP address.").ascii(), + "IP address.").toStdString(), MSG_WARNING); MEMMAN_DELETE(l); @@ -883,7 +877,8 @@ string t_gui::select_network_intf(void) { ip = l->front().get_ip_addr(); } else { // There are multiple interfaces - SelectNicForm *sf = new SelectNicForm(NULL, "nic", true); + SelectNicForm *sf = new SelectNicForm(NULL); + sf->setModal(true); MEMMAN_NEW(sf); QString item; for (list<t_interface>::iterator i = l->begin(); i != l->end(); i++) { @@ -916,7 +911,8 @@ string t_gui::select_network_intf(void) { } bool t_gui::select_user_config(list<string> &config_files) { - SelectProfileForm f(0, "select user profile", true); + SelectProfileForm f(nullptr); + f.setModal(true); if (f.execForm()) { config_files = f.selectedProfiles; @@ -1582,20 +1578,20 @@ void t_gui::cb_notify_call(int line, const QString &from_party, const QString &o if (tray && !sys_tray_popup && !phone->is_line_auto_answered(line)) { QString presFromParty(""); if (!from_party.isEmpty()) { - presFromParty = dotted_truncate(from_party.ascii(), 50).c_str(); + presFromParty = dotted_truncate(from_party.toStdString(), 50).c_str(); } QString presOrganization(""); if (!organization.isEmpty()) { - presOrganization = dotted_truncate(organization.ascii(), 50).c_str(); + presOrganization = dotted_truncate(organization.toStdString(), 50).c_str(); } QString presSubject(""); if (!subject.isEmpty()) { - presSubject = dotted_truncate(subject.ascii(), 50).c_str(); + presSubject = dotted_truncate(subject.toStdString(), 50).c_str(); } QString presReferredByParty(""); if (!referred_by_party.isEmpty()) { presReferredByParty = qApp->translate("GUI", "Transferred by: %1").arg( - dotted_truncate(referred_by_party.ascii(), 40).c_str()); + dotted_truncate(referred_by_party.toStdString(), 40).c_str()); } // Create photo pixmap. If no photo is available, then use @@ -1680,8 +1676,10 @@ void t_gui::cb_notify_call(int line, const QString &from_party, const QString &o // Show main window after a few seconds if (sys_config->get_gui_auto_show_incoming()) { - autoShowTimer[line].start( - sys_config->get_gui_auto_show_timeout() * 1000, true); + + autoShowTimer[line].setSingleShot(true); + autoShowTimer[line].start( + sys_config->get_gui_auto_show_timeout() * 1000); } unlock(); @@ -2060,8 +2058,8 @@ bool t_gui::do_cb_ask_credentials(t_user *user_config, const string &realm, stri QString user(username.c_str()); QString passwd(password.c_str()); - AuthenticationForm *af = new AuthenticationForm(mainWindow, "authentication", - true); + AuthenticationForm *af = new AuthenticationForm(mainWindow); + af->setModal(true); MEMMAN_NEW(af); if (!af->exec(user_config, QString(realm.c_str()), user, passwd)) { MEMMAN_DELETE(af); @@ -2069,8 +2067,8 @@ bool t_gui::do_cb_ask_credentials(t_user *user_config, const string &realm, stri return false; } - username = user.ascii(); - password = passwd.ascii(); + username = user.toStdString(); + password = passwd.toStdString(); MEMMAN_DELETE(af); delete af; @@ -2322,7 +2320,7 @@ void t_gui::cb_nat_discovery_progress_start(int num_steps) { qApp->translate("GUI", "Abort"), 0, num_steps, mainWindow); MEMMAN_NEW(natDiscoveryProgressDialog); - natDiscoveryProgressDialog->setCaption(PRODUCT_NAME); + natDiscoveryProgressDialog->setWindowTitle(PRODUCT_NAME); natDiscoveryProgressDialog->setMinimumDuration(200); } @@ -2371,9 +2369,9 @@ void t_gui::cb_zrtp_confirm_go_clear(int line) { QString msg(qApp->translate("GUI", "The remote user on line %1 disabled the encryption.") .arg(line + 1)); if (user_config->get_zrtp_goclear_warning()) { - cb_show_msg(msg.ascii(), MSG_WARNING); + cb_show_msg(msg.toStdString(), MSG_WARNING); } else { - cb_display_msg(msg.ascii(), MSG_WARNING); + cb_display_msg(msg.toStdString(), MSG_WARNING); } action_zrtp_go_clear_ok(line); @@ -2499,7 +2497,7 @@ bool t_gui::cb_message_request(t_user *user_config, t_request *r) { // Try to decode the text QTextCodec *c = QTextCodec::codecForName(charset.c_str()); if (c) { - text = c->toUnicode(text.c_str()).ascii(); + text = c->toUnicode(text.c_str()).toStdString(); } else { log_file->write_header( "t_gui::cb_message_request", @@ -2565,7 +2563,7 @@ bool t_gui::cb_message_request(t_user *user_config, t_request *r) { if (failed_to_save_attachment) { QString s = qApp->translate("GUI", "Failed to save message attachment: %1"); s.arg(attachment_error_msg.c_str()); - session->set_error(s.ascii()); + session->set_error(s.toStdString()); } unlock(); @@ -2589,7 +2587,7 @@ void t_gui::cb_message_response(t_user *user_config, t_response *r, t_request *r if (r->code == R_202_ACCEPTED) { string s; if (r->reason == REASON_202) { - s = qApp->translate("GUI", "Accepted by network").ascii(); + s = qApp->translate("GUI", "Accepted by network").toStdString(); } else { s = r->reason; } @@ -2642,7 +2640,7 @@ void t_gui::cmd_call(const string &destination, bool immediate) { t_display_url du; t_user *user = phone->ref_user_profile( - mainWindow->userComboBox->currentText().ascii()); + mainWindow->userComboBox->currentText().toStdString()); expand_destination(user, destination, du, subject, dst_no_headers); if (!du.is_valid()) return; @@ -2670,7 +2668,7 @@ void t_gui::cmd_show(void) { } else { mainWindow->show(); mainWindow->raise(); - mainWindow->setActiveWindow(); + mainWindow->activateWindow(); } unlock(); } @@ -2931,10 +2929,10 @@ void t_gui::fill_user_combo(QComboBox *cb) { for (list<t_user *>::iterator i = user_list.begin(); i != user_list.end(); i++) { // OLD code: used display uri // cb->insertItem((*i)->get_display_uri().c_str()); - cb->insertItem((*i)->get_profile_name().c_str()); + cb->addItem((*i)->get_profile_name().c_str()); } - cb->setCurrentItem(0); + cb->setCurrentIndex(0); } QString t_gui::get_last_file_browse_path(void) const { @@ -3030,7 +3028,7 @@ string t_gui::mime2file_extension(t_media media) { const QStringList &patterns = pMime->patterns(); if (!patterns.empty()) { - extension = patterns.front().ascii(); + extension = patterns.front().toStdString(); } else { log_file->write_header("t_gui::mime2file_extension", LOG_NORMAL, LOG_DEBUG); log_file->write_raw("Cannot find file extension for mime type "); @@ -3080,6 +3078,6 @@ void t_gui::open_url_in_browser(const QString &url) { QString msg = qApp->translate("GUI", "Cannot open web browser: %1").arg(url); msg += "\n\n"; msg += qApp->translate("GUI", "Configure your web browser in the system settings."); - cb_show_msg(msg.ascii(), MSG_CRITICAL); + cb_show_msg(msg.toStdString(), MSG_CRITICAL); } } |