[pan2/testing: 77/279] added multi log entries for multi uploads
- From: Heinrich MÃller <henmull src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan2/testing: 77/279] added multi log entries for multi uploads
- Date: Sat, 3 Dec 2011 22:29:45 +0000 (UTC)
commit a5dac50498a0a5e74358a819af675dacf37b5e14
Author: Heinrich Mueller <sphemuel stud informatik uni-erlangen de>
Date: Wed Jun 1 23:21:27 2011 +0200
added multi log entries for multi uploads
pan/data/Makefile.am | 2 +
pan/general/log.cc | 13 ++---
pan/general/log.h | 16 ++----
pan/gui/log-ui.cc | 123 ++++++++++++++++++++++++++--------------------
pan/gui/post-ui.cc | 36 ++++++++++---
pan/gui/post-ui.h | 1 +
pan/gui/score-add-ui.cc | 14 +++---
pan/tasks/task-upload.cc | 68 ++++++++++----------------
pan/tasks/task-upload.h | 3 +
9 files changed, 147 insertions(+), 129 deletions(-)
---
diff --git a/pan/data/Makefile.am b/pan/data/Makefile.am
index 7c0f654..977d063 100644
--- a/pan/data/Makefile.am
+++ b/pan/data/Makefile.am
@@ -7,6 +7,7 @@ noinst_LIBRARIES = libdata.a
libdata_a_SOURCES = \
article.cc \
article-cache.cc \
+ encode-cache.cc \
data.cc \
parts.cc \
xref.cc
@@ -14,6 +15,7 @@ libdata_a_SOURCES = \
noinst_HEADERS = \
article.h \
article-cache.h \
+ encode-cache.h \
data.h \
defgroup.h \
parts.h \
diff --git a/pan/general/log.cc b/pan/general/log.cc
index e4b9fec..a0f5840 100644
--- a/pan/general/log.cc
+++ b/pan/general/log.cc
@@ -64,12 +64,12 @@ void
Log :: add_entry(Entry& e, std::deque<Entry>& list)
{
_entries.resize (_entries.size() + 1);
- Entry& tmp (_entries.back());
- tmp.date = e.date;
- tmp.severity = e.severity;
- tmp.message = e.message;
- tmp.list = list;
- fire_entry_added (tmp);
+ Entry& a (_entries.back());
+ a.date = time(NULL);
+ a.severity = e.severity;
+ a.message = e.message;
+ a.messages = list;
+ fire_entry_added (a);
}
void
@@ -81,7 +81,6 @@ Log :: add (Severity severity, const char * msg)
e.severity = severity;
e.message = msg;
fire_entry_added (e);
- //std::cerr << "log entry: [" << msg << ']' << std::endl;
}
void
diff --git a/pan/general/log.h b/pan/general/log.h
index 1ba04fe..0a34983 100644
--- a/pan/general/log.h
+++ b/pan/general/log.h
@@ -39,6 +39,8 @@ namespace pan
PAN_SEVERITY_URGENT = (1<<10)
};
+
+
/**
* A log message specifying the message's text, severity, and time.
* @see Log
@@ -47,12 +49,13 @@ namespace pan
struct Entry {
time_t date;
Severity severity;
+ std::deque<Entry> messages;
std::string message;
- std::deque<Entry> list;
Entry() {}
- Entry(std::deque<Entry>& d) : list(d) {}
};
+ void add_entry(Entry& e, std::deque<Entry>& list);
+
/** Interface class for objects that listen to a Log's events */
struct Listener {
Listener () {}
@@ -67,15 +70,6 @@ namespace pan
void add (Severity, const char *);
void add_va (Severity, const char *, ...);
const entries_t& get_entries () const { return _entries; }
- void append_entries(entries_t& entries)
- {
- for (entries_t::iterator it = entries.begin(); it != entries.end(); ++it)
- {
- _entries.resize(entries.size()+1);
- _entries.push_back(*it);
- }
- }
- void add_entry(Entry& e, std::deque<Entry>& list);
void clear ();
void add_listener (Listener* l) { _listeners.insert(l); }
void remove_listener (Listener* l) { _listeners.erase(l); }
diff --git a/pan/gui/log-ui.cc b/pan/gui/log-ui.cc
index 219094f..ccee55e 100644
--- a/pan/gui/log-ui.cc
+++ b/pan/gui/log-ui.cc
@@ -35,13 +35,13 @@ using namespace pan;
namespace
{
- enum { COL_SEVERITY, COL_DATE, COL_MESSAGE, N_COLS };
+ enum { COL_HIDDEN, COL_SEVERITY, COL_DATE, COL_MESSAGE, N_COLS };
struct MyLogListener: private Log::Listener
{
- GtkListStore * myStore;
+ GtkTreeStore * myStore;
- MyLogListener (GtkListStore * store): myStore(store) {
+ MyLogListener (GtkTreeStore * store): myStore(store) {
Log::get().add_listener (this);
}
@@ -51,15 +51,16 @@ namespace
virtual void on_log_entry_added (const Log::Entry& e) {
GtkTreeIter iter;
- gtk_list_store_prepend (myStore, &iter);
- gtk_list_store_set (myStore, &iter,
+ gtk_tree_store_prepend (myStore, &iter, NULL);
+ gtk_tree_store_set (myStore, &iter,
+ COL_HIDDEN, "",
COL_SEVERITY, (e.severity & Log::PAN_SEVERITY_ERROR),
COL_DATE, (unsigned long)e.date,
COL_MESSAGE, &e, -1);
}
virtual void on_log_cleared () {
- gtk_list_store_clear (myStore);
+ gtk_tree_store_clear (myStore);
}
};
@@ -120,63 +121,39 @@ namespace
}
}
-void
-pan :: do_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
-{
- GtkWidget * w = treeview;
- GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(w));
- GtkTreeIter iter ;
- GtkTreePath * path;
- gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview),
- (gint)event->x, (gint)event->y,
- &path, NULL, NULL, NULL);
- gtk_tree_model_get_iter(model,&iter,path);
- Log::Entry* e;
- gtk_tree_model_get (model, &iter, COL_MESSAGE, &e, -1);
- if (!e->list.empty())
- {
-
- std::cerr<<"multi entry.\n";
-
- GtkTextBuffer * tb;
- std::string tmp (to_string(e->list));
- int len = tmp.length();
- gtk_text_buffer_set_text(tb, to_string(e->list).c_str(), len);
- GtkWidget * w = gtk_text_view_new_with_buffer(tb);
-
- gtk_widget_show_all(w);
- }
-}
-
-gboolean
-pan :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
-{
- if (event->type == GDK_BUTTON_PRESS && event->button == 3)
- {
- do_popup_menu (treeview, event, userdata);
- return true;
- }
- return false;
-}
-
namespace
{
- GtkListStore*
+ GtkTreeStore*
create_model ()
{
- GtkListStore * store = gtk_list_store_new (N_COLS,
+ GtkTreeStore * store = gtk_tree_store_new (N_COLS,
+ G_TYPE_STRING,
G_TYPE_BOOLEAN, // true==error, false==info
G_TYPE_ULONG, // date
G_TYPE_POINTER); // message
const Log::entries_t& entries (Log::get().get_entries());
foreach_const (Log::entries_t, entries, it) {
- GtkTreeIter iter;
- gtk_list_store_prepend (store, &iter);
- gtk_list_store_set (store, &iter,
+ GtkTreeIter top, child, tmp;
+ gtk_tree_store_prepend (store, &top, 0);
+ gtk_tree_store_set (store, &top,
+ COL_HIDDEN, "",
COL_SEVERITY, (it->severity & Log::PAN_SEVERITY_ERROR),
COL_DATE, (unsigned long)it->date,
COL_MESSAGE, &*it, -1);
+ if (!it->messages.empty())
+ {
+ std::cerr<<"multi\n";
+ foreach_const (Log::entries_t, it->messages, lit)
+ {
+ gtk_tree_store_prepend (store, &child, &top );
+ gtk_tree_store_set (store, &child,
+ COL_HIDDEN, "",
+ COL_SEVERITY, (lit->severity & Log::PAN_SEVERITY_ERROR),
+ COL_DATE, (unsigned long)lit->date,
+ COL_MESSAGE, &*lit, -1);
+ }
+ }
}
return store;
@@ -228,6 +205,35 @@ namespace
}
+gboolean
+pan :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
+{
+ // single click with the right mouse button?
+ if (event->type == GDK_BUTTON_PRESS && event->button == 3)
+ {
+ GtkTreeSelection * selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+ GtkTreePath * path;
+ if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview),
+ (gint)event->x, (gint)event->y,
+ &path, NULL, NULL, NULL))
+ {
+ if (!gtk_tree_selection_path_is_selected (selection, path))
+ {
+ gtk_tree_selection_unselect_all (selection);
+ gtk_tree_selection_select_path (selection, path);
+ }
+ }
+ const bool expanded (gtk_tree_view_row_expanded (GTK_TREE_VIEW(treeview), path));
+ if (expanded)
+ gtk_tree_view_collapse_row(GTK_TREE_VIEW(treeview),path);
+ else
+ gtk_tree_view_expand_row (GTK_TREE_VIEW(treeview),path,false);
+ gtk_tree_path_free (path);
+ return true;
+ }
+ return false;
+}
+
GtkWidget*
pan :: log_dialog_new (Prefs& prefs, GtkWindow* window)
{
@@ -246,9 +252,11 @@ pan :: log_dialog_new (Prefs& prefs, GtkWindow* window)
GdkPixbuf * info_pixbuf = gtk_icon_theme_load_icon (theme, GTK_STOCK_DIALOG_INFO, 20, (GtkIconLookupFlags)0, NULL);
g_object_set_data_full (G_OBJECT(dialog), "pixbuf-info", info_pixbuf, g_object_unref);
- GtkListStore * store = create_model ();
+ GtkTreeStore * store = create_model ();
GtkWidget * view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
+ gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(view),false);
+
g_object_set_data_full (G_OBJECT(view), "listener", new MyLogListener(store), delete_my_log_listener);
GtkWidget * scroll = gtk_scrolled_window_new (0, 0);
gtk_container_set_border_width (GTK_CONTAINER(scroll), PAD_BIG);
@@ -257,10 +265,17 @@ pan :: log_dialog_new (Prefs& prefs, GtkWindow* window)
GtkCellRenderer * pixbuf_renderer = gtk_cell_renderer_pixbuf_new ();
GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new ();
- // severity
+ /* placeholder for expander */
GtkTreeViewColumn * col = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_resizable (col, false);
+ gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
+ gtk_tree_view_column_set_visible(col,false);
+ gtk_tree_view_set_expander_column(GTK_TREE_VIEW(view), col);
+
+ // severity
+ col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
- gtk_tree_view_column_set_fixed_width (col, 24);
+ gtk_tree_view_column_set_fixed_width (col, 35);
gtk_tree_view_column_set_resizable (col, false);
gtk_tree_view_column_pack_start (col, pixbuf_renderer, false);
gtk_tree_view_column_set_cell_data_func (col, pixbuf_renderer, render_severity, dialog, 0);
@@ -284,8 +299,8 @@ pan :: log_dialog_new (Prefs& prefs, GtkWindow* window)
gtk_tree_view_column_set_title (col, _("Message"));
gtk_tree_view_column_pack_start (col, text_renderer, true);
gtk_tree_view_column_set_cell_data_func (col, text_renderer, render_message, 0, 0);
-// gtk_tree_view_column_set_attributes (col, text_renderer, "text", COL_MESSAGE, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
+ gtk_tree_view_set_expander_column(GTK_TREE_VIEW(view), col);
gtk_widget_show (view);
gtk_widget_show (scroll);
diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc
index 10f6f01..af45011 100644
--- a/pan/gui/post-ui.cc
+++ b/pan/gui/post-ui.cc
@@ -190,6 +190,7 @@ namespace
void do_copy (GtkAction*, gpointer p) { g_signal_emit_by_name (get_focus(p), "copy_clipboard"); }
void do_paste (GtkAction*, gpointer p) { g_signal_emit_by_name (get_focus(p), "paste_clipboard"); }
void do_rot13 (GtkAction*, gpointer p) { static_cast<PostUI*>(p)->rot13_selection(); }
+ void do_save_upload (GtkAction*, gpointer p) { static_cast<PostUI*>(p)->rot13_selection(); }
void do_edit (GtkAction*, gpointer p) { static_cast<PostUI*>(p)->spawn_editor (); }
void do_profiles (GtkAction*, gpointer p) { static_cast<PostUI*>(p)->manage_profiles (); }
void do_send (GtkAction*, gpointer p) { static_cast<PostUI*>(p)->send_now (); }
@@ -818,7 +819,7 @@ PostUI :: maybe_post_message (GMimeMessage * message)
_queue.add_task (_post_task, Queue::TOP);
} else {
foreach_const (tasks_v, _file_queue_tasks, it)
- _queue.add_task (*it, Queue::BOTTOM);
+ _queue.add_task (*it, Queue::BOTTOM);
close_window(true); // dont wait for the upload queue
}
@@ -1635,6 +1636,14 @@ namespace
static_cast<PostUI*>(user_data)->apply_profile ();
}
+ void on_lines_spin_changed_cb (GtkComboBox* box, gpointer user_data)
+ {
+ const int res (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(box)));
+
+ static_cast<PostUI*>(user_data)->upload_ptr()->set_lpf(res);
+ }
+
+
typedef std::map <std::string, std::string> str2str_t;
struct SetMessageForeachHeaderData
@@ -2010,11 +2019,16 @@ PostUI :: create_filequeue_tab ()
gtk_box_pack_start (GTK_BOX(buttons), gtk_vseparator_new(), 0, 0, 0);
w = add_button (buttons, GTK_STOCK_DELETE, G_CALLBACK(delete_clicked_cb), this);
gtk_widget_set_tooltip_text( w, _("Delete from Queue"));
+ gtk_box_pack_start (GTK_BOX(buttons), gtk_vseparator_new(), 0, 0, 0);
+ add_button (buttons, GTK_STOCK_SELECT_ALL, 0, 0);
+ w = gtk_toggle_button_new_with_label(_("Save"));
+ gtk_box_pack_start (GTK_BOX(vbox), w, false, false, 0);
pan_box_pack_start_defaults (GTK_BOX(buttons), gtk_event_box_new());
gtk_box_pack_start (GTK_BOX(vbox), buttons, false, false, 0);
gtk_box_pack_start (GTK_BOX(vbox), gtk_hseparator_new(), false, false, 0);
+ //add filestore
list_store = gtk_list_store_new (3, G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_UINT);
w = _filequeue_store = gtk_tree_view_new_with_model (GTK_TREE_MODEL(list_store));
@@ -2129,12 +2143,13 @@ PostUI :: create_parts_tab ()
gtk_label_set_use_markup (GTK_LABEL(l), true);
gtk_misc_set_alignment (GTK_MISC(l), 0.0f, 0.5f);
gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
- ///TODO make generic!!
- g_snprintf (buf, sizeof(buf), "%d", 4000);
- l = gtk_label_new_with_mnemonic (buf);
- gtk_misc_set_alignment (GTK_MISC(l), 0.5f, 0.5f);
- gtk_widget_set_tooltip_text (l, _("The current Number of Lines per File"));
- gtk_table_attach (GTK_TABLE(t), l, 1, 2, row, row+1, fe, fill, 0, 0);
+ GtkAdjustment * a = (GtkAdjustment*)gtk_adjustment_new (5000, 1500, INT_MAX, 1.0, 1.0, 0.0);
+ w = _lines_spin = gtk_spin_button_new (a, 1.0, 0u);
+ gtk_misc_set_alignment (GTK_MISC(w), 0.5f, 0.5f);
+ gtk_widget_set_tooltip_text (w, _("The current Number of Lines per File"));
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(w), _upload_ptr->_lines_per_file);
+ gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fe, fill, 0, 0);
+ g_signal_connect (w, "changed", G_CALLBACK(on_lines_spin_changed_cb), this);
++row; // 5
g_snprintf (buf, sizeof(buf), "<b>%s:</b>", _("Parts"));
@@ -2153,7 +2168,6 @@ PostUI :: create_parts_tab ()
l = gtk_label_new (NULL);
gtk_table_attach (GTK_TABLE(t), l, 0, 2, row, row+1, fe, fill, 0, 0);
-
//7
++row;
@@ -2370,6 +2384,12 @@ void PostUI :: delete_clicked_cb (GtkButton*, PostUI* pane)
pane->remove_files ();
}
+//void PostUI :: save_clicked_cb (GtkButton*, Postui* pane)
+//{
+// pane->
+//}
+
+
void
PostUI :: update_filequeue_tab()
{
diff --git a/pan/gui/post-ui.h b/pan/gui/post-ui.h
index b064951..1df55d7 100644
--- a/pan/gui/post-ui.h
+++ b/pan/gui/post-ui.h
@@ -120,6 +120,7 @@ namespace pan
GtkWidget * _filequeue_store;
GtkWidget * _parts_store;
+ GtkWidget * _lines_spin;
GtkWidget * _to_entry;
GtkWidget * _followupto_entry;
diff --git a/pan/gui/score-add-ui.cc b/pan/gui/score-add-ui.cc
index 9584736..e2c4e0c 100644
--- a/pan/gui/score-add-ui.cc
+++ b/pan/gui/score-add-ui.cc
@@ -195,9 +195,9 @@ namespace
{ TextMatch::CONTAINS, true, N_("doesn't contain")},
{ TextMatch::IS, false, N_("is")},
{ TextMatch::IS, true, N_("isn't")},
- { TextMatch::BEGINS_WITH, false, N_("starts with")},
+ { TextMatch::BEGINS_WITH, false, N_("starts with")},
{ TextMatch::ENDS_WITH, false, N_("ends with")},
- { TextMatch::REGEX, false, N_("matches regex")},
+ { TextMatch::REGEX, false, N_("matches regex")},
};
GtkListStore * store = gtk_list_store_new (TEXT_MATCH_COLS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
@@ -319,7 +319,7 @@ namespace
GtkTreeModel * model = field_tree_model_new ();
GtkWidget * field = setme_field = value_combo_new (model);
- g_object_unref (G_OBJECT(model));
+ g_object_unref (G_OBJECT(model));
gtk_box_pack_start (GTK_BOX(h), field, false, false, 0);
g_signal_connect (field, "changed", G_CALLBACK(field_changed_cb), h);
g_object_set_data (G_OBJECT(h), "field", field);
@@ -353,7 +353,7 @@ namespace
void
ScoreAddDialog :: add_this_to_scorefile (bool do_rescore)
{
-
+
// section
bool negate (false);
int value (0);
@@ -552,12 +552,12 @@ namespace
GtkWidget * button = gtk_button_new ();
GtkWidget * label = gtk_label_new_with_mnemonic (_("Add and Re_score"));
gtk_label_set_mnemonic_widget (GTK_LABEL (label), GTK_WIDGET (button));
-
+
GtkWidget * image = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON);
GtkWidget * image2 = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_BUTTON);
GtkWidget * hbox = gtk_hbox_new (FALSE, 2);
GtkWidget * align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
-
+
gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), image2, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0);
@@ -643,7 +643,7 @@ ScoreAddDialog :: ScoreAddDialog (Data & data,
gtk_widget_show (w);
// score
- h = gtk_hbox_new (false, PAD_SMALL);
+ h = gtk_hbox_new (false, PAD_SMALL);
model = score_tree_model_new ();
w = _score_menu = value_combo_new (model);
g_object_unref (model);
diff --git a/pan/tasks/task-upload.cc b/pan/tasks/task-upload.cc
index 1f871d5..3c9db68 100644
--- a/pan/tasks/task-upload.cc
+++ b/pan/tasks/task-upload.cc
@@ -95,7 +95,8 @@ TaskUpload :: TaskUpload ( const std::string & filename,
_author(author),
_encoder(0),
_encoder_has_run (false),
- _encode_mode(enc)
+ _encode_mode(enc),
+ _lines_per_file(4000)
{
if (listener != 0)
add_listener (listener);
@@ -229,30 +230,6 @@ TaskUpload :: on_nntp_line (NNTP * nntp,
const StringView & line_in)
{}
-
-namespace
-{
- void add_err_to_groups(std::deque<Log :: Entry> _logfile, const char* buf)
- {
- _logfile.resize(_logfile.size()+1);
- Log :: Entry& e(_logfile.back());
- e.severity = Log :: PAN_SEVERITY_ERROR;
- e.date = time (NULL);
- e.message = buf;
- Log :: entry_added (e);
- }
-
- void add_info_to_groups(std::deque<Log :: Entry> _logfile, const char* buf)
- {
- _logfile.resize(_logfile.size()+1);
- Log :: Entry& e(_logfile.back());
- e.severity = Log :: PAN_SEVERITY_INFO;
- e.date = time (NULL);
- e.message = buf;
- Log :: entry_added (e);
- }
-}
-
void
TaskUpload :: on_nntp_done (NNTP * nntp,
Health health,
@@ -278,7 +255,6 @@ TaskUpload :: on_nntp_done (NNTP * nntp,
case ERR_NETWORK:
goto _end;
case ERR_COMMAND:
- _severity_final = Log::PAN_SEVERITY_URGENT;
delete_cache(it->second);
_needed.erase (it);
break;
@@ -289,43 +265,51 @@ TaskUpload :: on_nntp_done (NNTP * nntp,
case NO_POSTING:
g_snprintf(buf,sizeof(buf), _("Posting of File %s (Part %d of %d) failed: No Posts allowed by server."),
_basename.c_str(), it->second.partno, _total_parts);
- add_err_to_groups(_logfile, buf);
- _severity_final = Log::PAN_SEVERITY_URGENT;
+ tmp.message = buf;
+ tmp.severity = Log :: PAN_SEVERITY_ERROR;
+ _logfile.push_back(tmp);
+ Log::add_entry_list (tmp, _logfile);
+ std::cerr<<LINE_ID<<" "<<_logfile.size()<<std::endl;
this->stop();
break;
case POSTING_FAILED:
g_snprintf(buf,sizeof(buf), _("Posting of File %s (Part %d of %d) failed: %s"),
_basename.c_str(), it->second.partno, _total_parts, response.str);
- add_err_to_groups(_logfile, buf);
- _severity_final = Log::PAN_SEVERITY_URGENT;
+ tmp.severity = Log :: PAN_SEVERITY_ERROR;
+ tmp.message = buf;
+ _logfile.push_back(tmp);
+ std::cerr<<LINE_ID<<" "<<_logfile.size()<<std::endl;
break;
case ARTICLE_POSTED_OK:
-
- std::cerr<<"OK!\n";
-
+ tmp.severity = Log :: PAN_SEVERITY_INFO;
if (post_ok && !_needed.empty())
{
g_snprintf(buf,sizeof(buf), _("Posting of file %s (Part %d of %d) succesful: %s"),
_basename.c_str(), it->second.partno, _total_parts, response.str);
- add_info_to_groups(_logfile, buf);
- _severity_final = (Log :: Severity) (_severity_final | Log :: PAN_SEVERITY_INFO);
+ tmp.message = buf;
+ _logfile.push_back(tmp);
+ std::cerr<<LINE_ID<<" "<<_logfile.size()<<std::endl;
} else if (post_ok && _needed.empty())
{
+ g_snprintf(buf,sizeof(buf), _("Posting of file %s (Part %d of %d) succesful: %s"),
+ _basename.c_str(), it->second.partno, _total_parts, response.str);
+ tmp.message = buf;
+ _logfile.push_back(tmp);
g_snprintf(buf,sizeof(buf), _("Posting of file %s succesful: %s"),
_basename.c_str(), response.str);
- _severity_final = (Log :: Severity) (_severity_final | Log :: PAN_SEVERITY_INFO);
tmp.message = buf;
- tmp.date = time(NULL);
- tmp.severity = _severity_final;
- Log :: add_entry_list (tmp, _logfile);
+ _logfile.push_back(tmp);
+ Log::add_entry_list (tmp, _logfile);
+ std::cerr<<LINE_ID<<" "<<_logfile.size()<<std::endl;
} else
{
g_snprintf(buf,sizeof(buf), _("Posting of file %s not successful: Check the popup log!"),
_basename.c_str(), response.str);
tmp.message = buf;
- tmp.date = time(NULL);
- tmp.severity = _severity_final;
- Log :: add_entry_list (tmp, _logfile);
+ tmp.severity = Log :: PAN_SEVERITY_ERROR;
+ _logfile.push_back(tmp);
+ Log::add_entry_list (tmp, _logfile);
+ std::cerr<<LINE_ID<<" "<<_logfile.size()<<std::endl;
}
break;
case TOO_MANY_CONNECTIONS:
diff --git a/pan/tasks/task-upload.h b/pan/tasks/task-upload.h
index f8093ea..8b557dc 100644
--- a/pan/tasks/task-upload.h
+++ b/pan/tasks/task-upload.h
@@ -49,6 +49,8 @@ namespace pan
{
public:
+ void set_lpf (const int& setme ) { _lines_per_file = setme; }
+
typedef std::vector<Quark> mid_sequence_t;
struct Needed {
@@ -118,6 +120,7 @@ namespace pan
friend class NZB;
Encoder * _encoder;
bool _encoder_has_run;
+ int _lines_per_file;
std::string _filename;
std::string _basename;
TaskUpload::EncodeMode _encode_mode;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]