[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r3940: Message log no longer has resize thingy. Status bar api appe (in vidalia/branches/extension-api/src/vidalia: . MessageLogPlugin)



Author: tyree731
Date: 2009-07-06 16:45:37 -0400 (Mon, 06 Jul 2009)
New Revision: 3940

Modified:
   vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
   vidalia/branches/extension-api/src/vidalia/MainWindow.h
   vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp
   vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.h
   vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.ui
Log:
Message log no longer has resize thingy. Status bar api appears to be working.


Modified: vidalia/branches/extension-api/src/vidalia/MainWindow.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MainWindow.cpp	2009-07-06 20:16:32 UTC (rev 3939)
+++ vidalia/branches/extension-api/src/vidalia/MainWindow.cpp	2009-07-06 20:45:37 UTC (rev 3940)
@@ -599,6 +599,9 @@
 void
 MainWindow::createStatusBar()
 {
+  /* Set the current status widget to empty */
+  _currentStatusWidget = 0;
+
   /* Create the status bar */
   _statusBar = new QStatusBar(this);
   _statusBar->setMaximumHeight(20);
@@ -1284,6 +1287,8 @@
   }
 }
 
+/** If a panel has a statusbar widget, replace the current status widget with 
+ * it. */
 void
 MainWindow::updateStatusControl(int index)
 {
@@ -1291,7 +1296,13 @@
     (ui.tabMainPanel->widget(index));
   if (selectedPanel) {
     QWidget* statusWidget = selectedPanel->statusWidget();
-    /* Do something! */
+    if (statusWidget) {
+      if (_currentStatusWidget) {
+	_statusBar->removeWidget(_currentStatusWidget);
+      }
+      _statusBar->addWidget(statusWidget);
+      _currentStatusWidget = statusWidget;
+    }
   }
 }
 

Modified: vidalia/branches/extension-api/src/vidalia/MainWindow.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MainWindow.h	2009-07-06 20:16:32 UTC (rev 3939)
+++ vidalia/branches/extension-api/src/vidalia/MainWindow.h	2009-07-06 20:45:37 UTC (rev 3940)
@@ -281,6 +281,7 @@
   QLabel *_lblStartupProgress;
   QLabel *_lblTorStatusImg;
   QLabel *_lblTorStatus;
+  QWidget *_currentStatusWidget;
 
   /** Defines the actions for the tray menu */
   QAction* _controlPanelAct;

Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp	2009-07-06 20:16:32 UTC (rev 3939)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.cpp	2009-07-06 20:45:37 UTC (rev 3940)
@@ -55,7 +55,8 @@
  * \param flags Any desired window creation flags. 
  */
 MessageLog::MessageLog(MessageLogPlugin *parent)
-: VidaliaPanel(parent)
+: VidaliaPanel(parent),
+  _statusWidget(new QLabel("",this))
 {
   /* Invoke Qt Designer generated QObject setup routine */
   ui.setupUi(this);
@@ -97,6 +98,12 @@
   return QIcon(":/images/32x32/format-justify-fill.png");
 }
 
+QWidget*
+MessageLog::statusWidget() const
+{
+  return _statusWidget;
+}
+
 /** Binds events (signals) to actions (slots). */
 void
 MessageLog::createActions()
@@ -418,10 +425,10 @@
    
     /* This is a workaround to force Qt to update the statusbar text (if any
      * is currently displayed) to reflect the new message added. */
-    QString currStatusTip = ui.statusbar->currentMessage();
+    QString currStatusTip = _statusWidget->text();
     if (!currStatusTip.isEmpty()) {
       currStatusTip = ui.lstMessages->statusTip();
-      ui.statusbar->showMessage(currStatusTip);
+      _statusWidget->setText(currStatusTip);
     }
     
     /* If we're saving log messages to a file, go ahead and do that now */

Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.h
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.h	2009-07-06 20:16:32 UTC (rev 3939)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.h	2009-07-06 20:45:37 UTC (rev 3940)
@@ -45,6 +45,8 @@
   QString tabLabel() const;
   /** Hook for Vidalia API to display text in the Message Log Panel's tab. */
   QIcon tabIcon() const;
+  /** Hook for Vidalia API to update status bar with message log status' */
+  QWidget* statusWidget() const;
   
 protected:
   /** Called to deliver custom event types */
@@ -98,6 +100,8 @@
   bool _enableLogging;  
   /* The log file used to store log messages. */
   LogFile _logFile;
+  /* Statusbar widget for the display of statusbar messages */
+  QLabel* _statusWidget;
 
   /** Qt Designer generatated QObject **/
   Ui::MessageLog ui;

Modified: vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.ui
===================================================================
--- vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.ui	2009-07-06 20:16:32 UTC (rev 3939)
+++ vidalia/branches/extension-api/src/vidalia/MessageLogPlugin/MessageLog.ui	2009-07-06 20:45:37 UTC (rev 3940)
@@ -409,16 +409,6 @@
     </item>
    </layout>
   </widget>
-  <widget class="QStatusBar" name="statusbar" >
-   <property name="geometry" >
-    <rect>
-     <x>0</x>
-     <y>603</y>
-     <width>698</width>
-     <height>22</height>
-    </rect>
-   </property>
-  </widget>
   <widget class="QToolBar" name="toolBar" >
    <property name="contextMenuPolicy" >
     <enum>Qt::NoContextMenu</enum>
@@ -605,22 +595,6 @@
  </resources>
  <connections>
   <connection>
-   <sender>actionClose</sender>
-   <signal>triggered()</signal>
-   <receiver>MessageLog</receiver>
-   <slot>close()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>-1</x>
-     <y>-1</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>407</x>
-     <y>378</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
    <sender>actionClear</sender>
    <signal>triggered()</signal>
    <receiver>lstMessages</receiver>