1
0
mirror of git://projects.qi-hardware.com/vido.git synced 2024-12-22 08:45:12 +02:00

make vido work again :)

Signed-off-by: Mirko Lindner <mirko@sharism.cc>
This commit is contained in:
Mirko Lindner 2010-01-18 13:17:26 +01:00
parent ffdd227df7
commit f6d6448cfb
6 changed files with 109 additions and 17 deletions

View File

@ -1,8 +1,8 @@
bin_PROGRAMS = vido
vido_SOURCES = main_window.cc search_dialog.cc vido.cc
vido_SOURCES = main_window.cc search_dialog.cc message_dialog.cc vido.cc
noinst_HEADERS = main_window.hh search_dialog.hh
noinst_HEADERS = main_window.hh search_dialog.hh message_dialog.hh
AM_CXXFLAGS = @CXXFLAGS@ @GTKMM_CFLAGS@ @GTKHTML_CFLAGS@

View File

@ -64,7 +64,7 @@ bool main_window::actions(int key)
bool main_window::on_my_key_press_event(GdkEventKey *Key)
{
if (Key->keyval == gdk_keyval_from_name("Control_L"))
if (Key->keyval == gdk_keyval_from_name("Control_R"))
{
ctrl_state = 1;
}
@ -82,7 +82,7 @@ bool main_window::on_my_key_press_event(GdkEventKey *Key)
bool main_window::on_my_key_release_event(GdkEventKey *Key)
{
if (Key->keyval == gdk_keyval_from_name("Control_L"))
if (Key->keyval == gdk_keyval_from_name("Control_R"))
{
ctrl_state = 0;
}

46
src/message_dialog.cc Normal file
View File

@ -0,0 +1,46 @@
/***************************************************************************
* Copyright (C) 2009 by Mirko Lindner *
* mirko@qi-hardware.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "config.h"
#include "message_dialog.hh"
#include "vido.hh"
#include <gtkmm.h>
message_dialog::message_dialog(main_window* parent, std::string title, std::string txt)
{
Gtk::Dialog dialog(title, parent, true);
Gtk::Label label(txt);
dialog.get_vbox()->pack_start(label, true, true);
// Gtk::Entry entry;
// entry.set_text("");
// dialog.get_vbox()->pack_start(entry, true, true);
// dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
dialog.add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
dialog.show_all();
int result = dialog.run();
if (result == Gtk::RESPONSE_OK) {
} else {
}
}

35
src/message_dialog.hh Normal file
View File

@ -0,0 +1,35 @@
/***************************************************************************
* Copyright (C) 2009 by Mirko Lindner *
* mirko@qi-hardware.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef MESSAGE_DIALOG_HH
#define MESSAGE_DIALOG_HH
#include <gtkmm/dialog.h>
class main_window;
class message_dialog : public Gtk::Dialog{
public:
message_dialog(main_window* parent, std::string, std::string);
};
#endif // MESSAGE_DIALOG_HH

View File

@ -26,6 +26,7 @@
#include <string>
#include "config.h"
#include "message_dialog.hh"
#include "vido.hh"
#include "main_window.hh"
#include "search_dialog.hh"
@ -41,6 +42,7 @@ extern "C" {
std::string content;
std::string fileName;
main_window *window;
Gtk::Widget *html;
GtkWidget *html_wg;
@ -60,6 +62,11 @@ const zim::File& get_file()
return zimFile;
}
void show_message(std::string title, std::string txt)
{
message_dialog(window, title, txt);
}
// // copy article html from while loop into global variable
void set_article(const std::string& txt)
{
@ -76,24 +83,24 @@ void show_random()
zim::File m = get_file();
static unsigned int seed = static_cast<unsigned int>(time(0));
zim::size_type idx = static_cast<zim::size_type>(static_cast<double>(m.getCountArticles()) * rand_r(&seed) / RAND_MAX);
zim::Article article;
do
article = m.getArticle(idx);
//loop in case article is redirect
do
{
log_debug("random running loop");
zim::size_type idx = static_cast<zim::size_type>(static_cast<double>(m.getCountArticles()) * rand_r(&seed) / RAND_MAX);
log_debug("random index " << idx << " number of articles: " << m.getCountArticles());
article = m.getArticle(idx);
} while(article.isRedirect());
article = article.getRedirectArticle();
}while(article.isRedirect());
std::string res = article.getPage();
content = article.getPage();
log_debug("article size=" << content.size());
gtk_html_flush(GTK_HTML(html_wg));
gtk_html_load_from_string(GTK_HTML(html_wg), content.c_str(), -1);
gtk_html_load_from_string(GTK_HTML(html_wg), res.c_str(), -1);
}
// // display search dialog
@ -164,6 +171,7 @@ void set_html(const gchar *url)
// // load new data into gtkhtml widget
gtk_html_load_from_string(GTK_HTML(html_wg), content.c_str(), -1);
// window.resize(220, 140);
log_debug("term=" << term << " url=" << url);
}
else
@ -190,6 +198,7 @@ void set_search(const gchar *url)
search.search(result, term);
if(result.size() == 0)
{
show_message("Error", "The article you requested (" + term + ") was not found.");
}
else if (result.size() == 1)
{
@ -214,6 +223,7 @@ void set_search(const gchar *url)
gtk_html_flush(GTK_HTML(html_wg));
gtk_html_load_from_string(GTK_HTML(html_wg), res.c_str(), -1);
// window.resize(220, 140);
}
@ -228,7 +238,7 @@ bool on_link_clicked(GtkHTML *html, const gchar *url)
{
set_html(url);
// set_berlin(url);
// window.resize(220, 140);
return true;
}
@ -251,7 +261,7 @@ int main(int argc, char **argv)
main_window window;
window.set_title("Vido");
// window.set_border_width(0);
window.set_default_size(320, 240);
window.set_default_size(220, 240);
// window.set_resizable(0);
html_wg = gtk_html_new();

View File

@ -19,6 +19,7 @@
#ifndef VIDO_HH
#define VIDO_HH
#include <string>
#include <gtkmm.h>