From 2e2ba31a55cd6e2a583e5c584ebf4f68bf7226aa Mon Sep 17 00:00:00 2001 From: adelcastillo Date: Mon, 2 Nov 2009 22:13:34 +0000 Subject: [PATCH] Barra de direcciones completada. git-svn-id: https://opengnsys.es/svn/trunk@475 a21b9725-9963-47de-94b9-378ad31fedc9 --- CMakeLists.txt | 2 ++ mainwindow.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++------ mainwindow.h | 7 ++++++ 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0648bdb..c2f6677 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,8 @@ add_executable(browser ${browser_SRCS}) target_link_libraries(browser qtermwidget ${QT_QTWEBKIT_LIBRARIES} ) +# set(CMAKE_CXX_FLAGS "-static") + foreach(QT ${QT_LIBRARIES}) message("${QT}") endforeach(QT) diff --git a/mainwindow.cpp b/mainwindow.cpp index c528f94..0162305 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include "qtermwidget.h" @@ -36,7 +37,7 @@ MainWindow::MainWindow(QWidget *parent) // Output output->setReadOnly(true); - // Dock + // Button Dock QDockWidget* dock=new QDockWidget(); dock->setAllowedAreas(Qt::BottomDockWidgetArea); QWidget* dummy=new QWidget(); @@ -46,7 +47,9 @@ MainWindow::MainWindow(QWidget *parent) // TabWidget tabs=new QTabWidget(dock); QPushButton *button=new QPushButton(tr("&New Term")); + button->setFocusPolicy(Qt::TabFocus); tabs->setCornerWidget(button); + tabs->setFocusPolicy(Qt::NoFocus); tabs->addTab(output,tr("Output")); slotCreateTerminal(); @@ -57,6 +60,22 @@ MainWindow::MainWindow(QWidget *parent) // Y el dock al mainwindow addDockWidget(Qt::BottomDockWidgetArea,dock); + // Top Dock + dock=new QDockWidget(); + dock->setAllowedAreas(Qt::TopDockWidgetArea); + QWidget* dummy2=new QWidget(); + dummy2->setMaximumHeight(0); + dock->setTitleBarWidget(dummy2); + + // WebBar + webBar=new QLineEdit(dock); + + // WebBar al dock + dock->setWidget(webBar); + + // dock al mainwindow + addDockWidget(Qt::TopDockWidgetArea,dock); + // Status bar QStatusBar* st=statusBar(); st->setSizeGripEnabled(false); @@ -67,15 +86,13 @@ MainWindow::MainWindow(QWidget *parent) web->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); // Web signals - connect(web->page(),SIGNAL(linkClicked(const QUrl&)),this, + connect(web,SIGNAL(linkClicked(const QUrl&)),this, SLOT(slotLinkHandle(const QUrl&))); connect(web,SIGNAL(loadStarted()),this,SLOT(slotWebLoadStarted())); connect(web,SIGNAL(loadFinished(bool)),this,SLOT(slotWebLoadFinished(bool))); connect(web,SIGNAL(loadProgress(int)),this,SLOT(slotWebLoadProgress(int))); - - QStringList arguments=QCoreApplication::arguments(); - web->load(QUrl(arguments[1])); - + connect(web,SIGNAL(urlChanged(const QUrl&)),this, + SLOT(slotUrlChanged(const QUrl&))); // Process signals connect(process,SIGNAL(started()),this,SLOT(slotProcessStarted())); @@ -89,7 +106,9 @@ MainWindow::MainWindow(QWidget *parent) connect(process,SIGNAL(readyReadStandardError()), this,SLOT(slotProcessErrorOutput())); + // Dock signals connect(button,SIGNAL(clicked()),this,SLOT(slotCreateTerminal())); + connect(webBar,SIGNAL(returnPressed()),this,SLOT(slotWebBarReturnPressed())); if(!readEnvironmentValues()) output->insertPlainText(tr("Any environment variable/s didn't be setted\n")); @@ -107,6 +126,10 @@ MainWindow::MainWindow(QWidget *parent) else logstream=new QTextStream(logfile); } + + QStringList arguments=QCoreApplication::arguments(); + webBar->setText(arguments[1]); + web->load(QUrl(arguments[1])); } MainWindow::~MainWindow() @@ -201,6 +224,13 @@ void MainWindow::slotWebLoadFinished(bool ok) } } + +void MainWindow::slotUrlChanged(const QUrl &url) +{ + webBar->setText(url.toString()); + qDebug()<<"Change"<setTerminalFont(font); + console->setFocusPolicy(Qt::StrongFocus); //console->setColorScheme(COLOR_SCHEME_BLACK_ON_LIGHT_YELLOW); console->setScrollBarPosition(QTermWidget::ScrollBarRight); ++numberTerminal; + connect(console,SIGNAL(finished()),this,SLOT(slotDeleteTerminal())); + QString name=tr("Term ")+QString::number(numberTerminal); tabs->addTab(console,name); } +void MainWindow::slotDeleteTerminal() +{ + QWidget *widget = qobject_cast(sender()); + Q_ASSERT(widget); + tabs->removeTab(tabs->indexOf(widget)); +} + +void MainWindow::slotWebBarReturnPressed() +{ + QUrl url(webBar->text()); + if(url.isValid()) + slotLinkHandle(url); +} + int MainWindow::readEnvironmentValues() { // The return value diff --git a/mainwindow.h b/mainwindow.h index 650aec3..9f4a14d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -21,6 +21,7 @@ class QFile; class QTextStream; class QTermWidget; class QProgressBar; +class QLineEdit; class MainWindow : public QMainWindow { @@ -46,6 +47,11 @@ class MainWindow : public QMainWindow // Funcion para crear terminales void slotCreateTerminal(); + void slotDeleteTerminal(); + + // Funcion para el webar + void slotWebBarReturnPressed(); + void slotUrlChanged(const QUrl &url); //Functions protected: @@ -57,6 +63,7 @@ class MainWindow : public QMainWindow QTextEdit *output; QProgressBar *progressBar; QTabWidget *tabs; + QLineEdit *webBar; QProcess *process;