Esempio n. 1
0
void gToxFileRecv::resume() {
    if (m_state != PAUSED) {
        return;
    }
    m_state = RECVING;
    if (m_file.file_size == m_position) {
        cancel();

        std::clog << "Friend " << m_file.nr <<
                     " File " << m_file.file_number <<
                     " " << m_position << "/" << m_file.file_size << std::endl;

        observer_notify(ToxEvent(EventFileProgress{
                                     this,
                                     m_file.nr,
                                     m_file.kind,
                                     m_file.file_number,
                                     m_position,
                                     m_file.file_size
                                 }));

        if (m_file.kind == TOX_FILE_KIND_AVATAR) {
            WidgetAvatar::set_avatar(observable(),
                                     m_path,
                                     WidgetAvatar::get_avatar(m_path, true));
        }

        return;
    }
    tox().file_control(m_file.nr, m_file.file_number, TOX_FILE_CONTROL_RESUME);
}
Esempio n. 2
0
void WidgetChatBubble::add_filerecv(Toxmm::EventFileRecv file) {
    auto msg_time = Glib::DateTime::create_now_utc();

    // remove seconds
    msg_time = Glib::DateTime::create_utc(msg_time.get_year(),
                                          msg_time.get_month(),
                                          msg_time.get_day_of_month(),
                                          msg_time.get_hour(),
                                          msg_time.get_minute(),
                                          0);

    bool display_time = true;

    if (m_last_timestamp != 0) {
        auto old_time = Glib::DateTime::create_now_utc(m_last_timestamp);
        // remove seconds
        old_time = Glib::DateTime::create_utc(old_time.get_year(),
                                              old_time.get_month(),
                                              old_time.get_day_of_month(),
                                              old_time.get_hour(),
                                              old_time.get_minute(),
                                              0);
        // check
        display_time = !(msg_time.compare(old_time) == 0);
    }

    // create a new row
    auto msg  = Gtk::manage(WidgetChatFileRecv::create(observable(), file));
    auto time = Gtk::manage(new Gtk::Label());
    m_last_timestamp = msg_time.to_unix();

    // get local time
    msg_time = Glib::DateTime::create_now_local(m_last_timestamp);

    time->set_text(msg_time.format("%R"));

    // add to grid
    if (m_side == RIGHT) {
        rows.emplace_back(m_grid, m_row_count, *msg, *time);
    } else {
        rows.emplace_back(m_grid, m_row_count, *time, *msg);
    }
    m_row_count += 1;

    // styling
    time->set_halign(Gtk::ALIGN_CENTER);
    time->set_valign(Gtk::ALIGN_START);
    time->get_style_context()->add_class("bubble_chat_line_time");

    msg->set_halign(Gtk::ALIGN_START);
    msg->set_valign(Gtk::ALIGN_CENTER);

    msg->show_all();
    time->show_all();
    time->set_no_show_all();
    if (!display_time) {
        time->hide();
    }
}
Esempio n. 3
0
void Simple::generateObservables(vpz::AtomicModel& model,
                                 vpz::Observables& observables)
{
    std::string observableName((fmt("obs_DE_%1%") % model.getName()).str());

    if (observables.exist(observableName)) {
        vpz::Observable& observable(observables.get(observableName));

        if (not observable.exist(mNameValue.getVariableName())) {
            observable.add(mNameValue.getVariableName());
        }
    } else {
        vpz::Observable observable(observableName);

        observable.add(mNameValue.getVariableName());
        observables.add(observable);
    }
    if (model.observables().empty()) {
        model.setObservables(observableName);
    }
}
Esempio n. 4
0
void Adjustable::detach(DimensionName d, Observer* o) {
    observable(d)->detach(o);
}
Esempio n. 5
0
void Adjustable::notify_all() const {
    for (DimensionName d = 0; d < CoordinateSpace::dimensions; d++) {
	observable(d)->notify();
    }
}
Esempio n. 6
0
void Adjustable::notify(DimensionName d) const {
    observable(d)->notify();
}