Changeset 3002

Show
Ignore:
Timestamp:
06/11/06 06:18:41 (3 years ago)
Author:
madcat
Message:

Experimental tray icon code.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • hydranode/hngui/Jamfile

    r2994 r3002  
    44local extrasrc ; 
    55if [ os.name ] = NT { 
    6         extrasrc = gui.rc ; 
     6        lib gdi : : <name>gdi32 ; 
     7        lib ole : : <name>ole32 ; 
     8        extrasrc = gui.rc trayicon_win.cpp gdi ; 
    79} 
    810 
    9 exe hydranode-gui : # gui layouts 
     11exe hydranode-gui :  
     12        # gui layouts 
    1013          mainlayout.ui  
    1114          transfercontent.ui searchcontent.ui librarycontent.ui 
     
    1417          pagetemplate.ui home_homeactions.ui home_homepage.ui catdialog.ui 
    1518          commentframe.ui 
     19         
    1620        # gui code 
    1721          downloadlist.cpp downloadlist.h  
     
    2933          myhydra.cpp myhydra.h 
    3034          customheader.cpp customheader.h 
     35         
    3136        # gui resources 
    32           gui.qrc $(extrasrc) 
     37          gui.qrc 
     38         
    3339        # extra sources 
    3440          ../hncgcomm/cgcomm.cpp ../hncgcomm/utils.cpp ecomm.cpp ecomm.h  
    35           filetypes.cpp 
     41          filetypes.cpp trayicon.cpp trayicon.h 
     42         
    3643        # dependancies 
    3744           /qt4//QtGui /qt4//QtNetwork /qt4//QtXml 
    3845          ../extra//boost_signals ../extra//boost_date_time 
    39          
     46           
    4047        # plugins (built-in currently due to lack of support for plugin loading) 
    4148          plugins/donkeypage.cpp plugins/donkeypage.h plugins/donkeypage_ui.ui 
     49         
     50        # platform-specific sources 
     51          $(extrasrc) 
    4252        : <include>.  
    4353          <define>QT_NO_KEYWORDS 
    4454          <variant>release:<define>QT_NO_DEBUG 
    4555          <variant>profile:<define>QT_NO_DEBUG 
     56          <toolset>msvc,<variant>debug:<linkflags>/NODEFAULTLIB:libcmtd.lib 
     57          <toolset>msvc,<variant>release:<linkflags>/NODEFAULTLIB:libcmt.lib 
    4658; 
    4759 
  • hydranode/hngui/main.cpp

    r2995 r3002  
    2626#include "librarytabs.h" 
    2727#include "ecomm.h" 
     28#include "trayicon.h" 
    2829#include <QApplication> 
    2930#include <QTextEdit> 
     
    9697} 
    9798 
    98 MainWindow::MainWindow() : m_ecomm(), m_core(), m_ui(), m_corePort(9990), 
    99 m_showTitle(true) { 
     99MainWindow::MainWindow() : m_ecomm(), m_core(), m_ui(), m_tray(), 
     100m_corePort(9990), m_showTitle(true) { 
     101        doLogDebug("Constructing UI..."); 
     102 
    100103        m_splash = new Splash(QPixmap(imgDir() + "splash.png")); 
    101104        connect( 
     
    150153 
    151154void MainWindow::initConfig() { 
     155        doLogDebug("Initializing configuration..."); 
     156 
    152157        QSettings conf(confDir() + "gui.ini", QSettings::IniFormat); 
    153158        if (!conf.contains("EnableBack")) { 
     
    167172void MainWindow::initGui() { 
    168173        initConfig(); 
     174        doLogDebug("Initializing GUI pages..."); 
    169175 
    170176        m_ui = new Ui::MainLayout; 
     
    196202        setWindowTitle("Hydranode"); 
    197203        setWindowIcon(QIcon(":/hydranode.png")); 
     204 
     205        QMenu *menu = new QMenu(this); 
     206        menu->addAction("Quit", this, SLOT(close())); 
     207        m_tray = new TrayIcon(0, "Hydranode"); 
     208        m_tray->setIcon(QPixmap("hydranode.png")); 
     209        m_tray->setPopup(menu); 
    198210 
    199211        QSettings conf(confDir() + "gui.ini", QSettings::IniFormat); 
     
    343355 
    344356void MainWindow::initData() { 
    345         qDebug("Engine connection up and running."); 
     357        doLogDebug("Initializing data..."); 
     358 
    346359        engineConnection(true); 
    347360        if (m_splash) { 
    348361                m_splash->finish(this); 
    349362        } 
     363//      if (m_tray) { 
     364//              m_tray->show(); 
     365//      } 
    350366        show(); 
    351367        if (m_splash) { 
     
    361377                ); 
    362378        } 
     379        doLogDebug("Testing for running core..."); 
    363380        QTcpSocket s(this); 
    364381        s.connectToHost(url, port); 
     
    375392                ); 
    376393        } 
     394 
     395        doLogDebug("No running core found; starting core process..."); 
    377396        m_core = new QProcess(this); 
    378397        m_core->setReadChannelMode(QProcess::MergedChannels); 
     
    428447                ); 
    429448        } 
     449        doLogDebug("Initializing core/gui communication..."); 
     450 
    430451        m_ecomm = new EngineComm; 
    431452        connect(m_ecomm, SIGNAL(connectionEstablished()), SLOT(initData())); 
     
    461482 
    462483void MainWindow::coreDied(QProcess::ProcessError err) { 
    463         qDebug("Core process died."); 
     484        doLogDebug("Core process died."); 
    464485        QString errorMsg; 
    465486        if (err == QProcess::FailedToStart) { 
     
    495516 
    496517void MainWindow::coreExited(int exitCode, QProcess::ExitStatus exitStatus) { 
     518        doLogDebug("Core process finished."); 
     519 
    497520        if (exitStatus != QProcess::NormalExit) { 
    498521                QMessageBox::critical( 
     
    510533 
    511534void MainWindow::closeEvent(QCloseEvent *e) { 
     535        doLogDebug("Received main window close event; shutting down."); 
     536 
    512537        if (m_core && m_core->state() == QProcess::Running) { 
    513538//              if (!m_splash) { 
     
    952977                        QMessageBox::NoButton 
    953978                ); 
     979                doLogDebug(std::string("CRITICAL: ") + e.what()); 
    954980                return 0; 
    955981        } else { 
  • hydranode/hngui/main.h

    r2969 r3002  
    3939class Splash; 
    4040class QToolButton; 
     41class TrayIcon; 
    4142 
    4243enum { 
     
    114115 
    115116        Splash *m_splash; 
     117        TrayIcon *m_tray; 
    116118        int            m_corePort; 
    117119        QString m_cmdLine; // command-line used for starting core process