summaryrefslogtreecommitdiffstats
path: root/tdenetworkmanager
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-11-29 21:25:12 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-11-29 21:25:12 -0600
commit3a8c5774204188dd71e96a0cab02ad32d6a24931 (patch)
tree46458de2d59a3d48768990787b34d15716626114 /tdenetworkmanager
parent851d4cc245f3ddbb9833f4fa9c56e03775dcc7b8 (diff)
downloadtdenetworkmanager-3a8c5774204188dd71e96a0cab02ad32d6a24931.tar.gz
tdenetworkmanager-3a8c5774204188dd71e96a0cab02ad32d6a24931.zip
Add movie cache
Diffstat (limited to 'tdenetworkmanager')
-rw-r--r--tdenetworkmanager/src/devicetraycomponent.cpp2
-rw-r--r--tdenetworkmanager/src/tdenetman-tray.cpp41
-rw-r--r--tdenetworkmanager/src/tdenetman-tray.h6
3 files changed, 37 insertions, 12 deletions
diff --git a/tdenetworkmanager/src/devicetraycomponent.cpp b/tdenetworkmanager/src/devicetraycomponent.cpp
index b6bd898..7679a36 100644
--- a/tdenetworkmanager/src/devicetraycomponent.cpp
+++ b/tdenetworkmanager/src/devicetraycomponent.cpp
@@ -176,7 +176,7 @@ TQMovie DeviceTrayComponent::movieForState(TDENetworkConnectionStatus::TDENetwor
if (moviePath != "") {
if (m_tray) {
if (m_tray->m_movieCache.contains(moviePath)) {
- return m_tray->m_movieCache[moviePath];
+ return TQMovie(m_tray->m_movieCache[moviePath]);
}
}
if (m_tray) {
diff --git a/tdenetworkmanager/src/tdenetman-tray.cpp b/tdenetworkmanager/src/tdenetman-tray.cpp
index 47514a4..06c7e4d 100644
--- a/tdenetworkmanager/src/tdenetman-tray.cpp
+++ b/tdenetworkmanager/src/tdenetman-tray.cpp
@@ -56,6 +56,7 @@
#include <tqlabel.h>
#include <tqapplication.h>
#include <tqdialog.h>
+#include <tqfile.h>
#include "devicetraycomponent.h"
#include "tdenetman-tray.h"
@@ -857,22 +858,24 @@ void Tray::updateTrayIcon(TDENetworkConnectionStatus::TDENetworkConnectionStatus
|| (current_vpn_state & TDENetworkGlobalManagerFlags::VPNConfiguringProtocols)
|| (current_vpn_state & TDENetworkGlobalManagerFlags::VPNVerifyingProtocols)) {
int frame = -1;
- if (movie())
+ if (movie()) {
frame = movie()->frameNumber();
+ }
// set the movie
if ((current_vpn_state & TDENetworkGlobalManagerFlags::VPNEstablishingLink)
|| (current_vpn_state & TDENetworkGlobalManagerFlags::VPNNeedAuthorization)) {
- setMovie(TQMovie(KGlobal::iconLoader()->moviePath("nm_stage02_connecting_vpn", KIcon::Panel)));
+ setMovie(TQMovie(m_movieCache["nm_stage02_connecting_vpn"]));
}
if ((current_vpn_state & TDENetworkGlobalManagerFlags::VPNConfiguringProtocols)
|| (current_vpn_state & TDENetworkGlobalManagerFlags::VPNVerifyingProtocols)) {
- setMovie(TQMovie(KGlobal::iconLoader()->moviePath("nm_stage03_connecting_vpn", KIcon::Panel)));
+ setMovie(TQMovie(m_movieCache["nm_stage03_connecting_vpn"]));
}
// start at the same frame as the movie before
- if (frame > 0)
+ if (frame > 0) {
movie()->step(frame);
+ }
// start the animation
movie()->unpause();
@@ -985,6 +988,21 @@ TQMovie Tray::movieForName(TQString moviePath)
}
}
+TQByteArray Tray::movieFileData(TQString movieName) {
+ TQByteArray ret;
+ TQString fileName = KGlobal::iconLoader()->moviePath(movieName, KIcon::Panel, width());
+ if (fileName != "") {
+ TQFile file(fileName);
+ if (file.exists()) {
+ if (file.open(IO_ReadOnly)) {
+ ret = file.readAll();
+ file.close();
+ }
+ }
+ }
+ return ret;
+}
+
void Tray::updateGraphicsCache() {
m_pixmapCache["tdenetworkmanager"] = pixmapForName("tdenetworkmanager");
m_pixmapCache["tdenetworkmanager_disabled"] = pixmapForName("tdenetworkmanager_disabled");
@@ -997,12 +1015,15 @@ void Tray::updateGraphicsCache() {
m_pixmapCache["nm_signal_75"] = pixmapForName("nm_signal_75");
m_pixmapCache["nm_signal_100"] = pixmapForName("nm_signal_100");
- // FIXME
- // TQMovie objects are explicitly shared
- // A cache cannot be implemented until these objects support deep copy!
-// m_movieCache["nm_stage01_connecting"] = movieForName("nm_stage01_connecting");
-// m_movieCache["nm_stage02_connecting"] = movieForName("nm_stage02_connecting");
-// m_movieCache["nm_stage03_connecting"] = movieForName("nm_stage03_connecting");
+ m_movieCache["nm_stage01_connecting"] = movieFileData("nm_stage01_connecting");
+ m_movieCache["nm_stage02_connecting"] = movieFileData("nm_stage02_connecting");
+ m_movieCache["nm_stage03_connecting"] = movieFileData("nm_stage03_connecting");
+ m_movieCache["nm_stage02_connecting_vpn"] = movieFileData("nm_stage02_connecting_vpn");
+ m_movieCache["nm_stage03_connecting_vpn"] = movieFileData("nm_stage03_connecting_vpn");
+}
+
+void Tray::resizeEvent(TQResizeEvent *) {
+ updateGraphicsCache();
}
Tray::Tray() : KSystemTray()
diff --git a/tdenetworkmanager/src/tdenetman-tray.h b/tdenetworkmanager/src/tdenetman-tray.h
index b6a4643..438b36f 100644
--- a/tdenetworkmanager/src/tdenetman-tray.h
+++ b/tdenetworkmanager/src/tdenetman-tray.h
@@ -109,6 +109,9 @@ class Tray : public KSystemTray
void trayUiChanged();
void slotEditNotifications();
+ protected:
+ void resizeEvent(TQResizeEvent *);
+
private slots:
void slotGenericDeviceAdded(TDEGenericDevice*);
void slotGenericDeviceRemoved(TDEGenericDevice*);
@@ -116,13 +119,14 @@ class Tray : public KSystemTray
void slotVPNEventHandler(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
private:
+ TQByteArray movieFileData(TQString movieName);
TQMovie movieForName(TQString moviePath);
TQPixmap pixmapForName(TQString pixmapPath);
void updateGraphicsCache();
public:
- TQMap<TQString, TQMovie> m_movieCache;
+ TQMap<TQString, TQByteArray> m_movieCache;
TQMap<TQString, TQPixmap> m_pixmapCache;
private: