aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/src-cpp/framework-OSInterface-template.cpp
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2018-01-13 12:45:09 -0800
committerKen Moore <ken@ixsystems.com>2018-01-13 12:45:09 -0800
commit91e8877b9fe79f01518f89653a9dc157a79a2e83 (patch)
tree9fe6f1fc242086224f79354833607da930f06796 /src-qt5/src-cpp/framework-OSInterface-template.cpp
parentAdd an additional OS-specific network device type parser. (diff)
downloadlumina-91e8877b9fe79f01518f89653a9dc157a79a2e83.tar.gz
lumina-91e8877b9fe79f01518f89653a9dc157a79a2e83.tar.bz2
lumina-91e8877b9fe79f01518f89653a9dc157a79a2e83.zip
Another large checkpoint commit for Lumina 2:
* Integrate the new window geometry manager class * Get the new OSInterface framework tied in * Start getting the various system monitoring solutions tied into the OSInterface
Diffstat (limited to 'src-qt5/src-cpp/framework-OSInterface-template.cpp')
-rw-r--r--src-qt5/src-cpp/framework-OSInterface-template.cpp73
1 files changed, 11 insertions, 62 deletions
diff --git a/src-qt5/src-cpp/framework-OSInterface-template.cpp b/src-qt5/src-cpp/framework-OSInterface-template.cpp
index a1553857..7655acb3 100644
--- a/src-qt5/src-cpp/framework-OSInterface-template.cpp
+++ b/src-qt5/src-cpp/framework-OSInterface-template.cpp
@@ -11,7 +11,8 @@
//Start/stop interface watchers/notifications
void OSInterface::start(){
setupMediaWatcher(); //will create/connect the filesystem watcher automatically
- setupNetworkManager();
+ setupNetworkManager(); //will create/connect the network monitor automatically
+
}
void OSInterface::stop(){
@@ -35,34 +36,16 @@ int OSInterface::volume(){ return -1; }
void OSInterface::setVolume(int){}
// = Network Information =
-bool OSInterface::networkAvailable(){
- if(INFO.contains("netaccess/available")){ return INFO.value("netaccess/available").toBool(); }
- return false;
-}
-
-QString OSInterface::networkType(){
- if(INFO.contains("netaccess/type")){ return INFO.value("netaccess/type").toString(); } //"wifi", "wired", or "cell"
- return "";
-}
-
QString OSInterface::networkTypeFromDeviceName(QString name){
//Return options: wifi, wired, cell, cell-2G, cell-3G, cell-4G
return "";
}
-float OSInterface::networkStrength(){ return -1; } //percentage. ("wired" type should always be 100%)
-
-QString OSInterface::networkHostname(){
- return QHostInfo::localHostName();
+float OSInterface::networkStrength(){
+ //QString device = INFO.value("netaccess/devicename");
+ return -1; //percentage. ("wired" type should always be 100%)
}
-QHostAddress OSInterface::networkAddress(){
- QString addr;
- if(INFO.contains("netaccess/address")){ addr = INFO.value("netaccess/address").toString(); }
- return QHostAddress(addr);
-}
-// = Network Modification =
-
// = Media Shortcuts =
QStringList OSInterface::mediaDirectories(){ return QStringList() << "/media"; } //directory where XDG shortcuts are placed for interacting with media (local/remote)
QStringList OSInterface::mediaShortcuts(){ return autoHandledMediaFiles(); } //List of currently-available XDG shortcut file paths
@@ -101,55 +84,21 @@ int OSInterface::fileSystemPercentage(QString dir){ return -1; } //percentage of
QString OSInterface::fileSystemCapacity(QString dir){ return QString(); } //human-readable form - total capacity
// = OS-Specific Utilities =
-bool OSInterface::hasControlPanel(){ return false; }
QString OSInterface::controlPanelShortcut(){ return QString(); } //relative *.desktop shortcut name (Example: "some_utility.desktop")
-bool OSInterface::hasAudioMixer(){ return false; }
QString OSInterface::audioMixerShortcut(){ return QString(); } //relative *.desktop shortcut name (Example: "some_utility.desktop")
-bool OSInterface::hasAppStore(){ return false; }
QString OSInterface::appStoreShortcut(){ return QString(); } //relative *.desktop shortcut name (Example: "some_utility.desktop")
+QString OSInterface::networkManagerUtility(){ return QString(); } //relative *.desktop shortcut name (Example: "some_utility.desktop")
-//FileSystemWatcher slots
-void OSInterface::watcherFileChanged(QString){}
-void OSInterface::watcherDirChanged(QString dir){
- if(handleMediaDirChange(dir)){ return; }
+//FileSystemWatcher slots (optional - re-implement only if needed/used by this OS)
+void OSInterface::watcherFileChanged(QString){} //any additional parsing for files that are watched
+void OSInterface::watcherDirChanged(QString dir){ //any additional parsing for watched directories
+ if(handleMediaDirChange(dir)){ return; } //auto-handled media directories
}
-//IO Device slots
+//IO Device slots (optional - implement only if needed/used by this OS)
void OSInterface::iodeviceReadyRead(){}
void OSInterface::iodeviceAboutToClose(){}
-//NetworkAccessManager slots
-void OSInterface::netAccessChanged(QNetworkAccessManager::NetworkAccessibility stat){
- INFO.insert("netaccess/available", stat== QNetworkAccessManager::Accessible);
- //Update all the other network status info at the same time
- QNetworkConfiguration active = netman->activeConfiguration();
- //Type of connection
- QString type;
- switch(active.bearerTypeFamily()){
- case QNetworkConfiguration::BearerEthernet: type="wired"; break;
- case QNetworkConfiguration::BearerWLAN: type="wifi"; break;
- case QNetworkConfiguration::Bearer2G: type="cell-2G"; break;
- case QNetworkConfiguration::Bearer3G: type="cell-3G"; break;
- case QNetworkConfiguration::Bearer4G: type="cell-4G"; break;
- default: type=networkTypeFromDeviceName(active.name()); //could not be auto-determined - run the OS-specific routine
- }
- INFO.insert("netaccess/type", type);
- //qDebug() << "Detected Device Status:" << active.identifier() << type << stat;
- QNetworkInterface iface = QNetworkInterface::interfaceFromName(active.name());
- //qDebug() << " - Configuration: Name:" << active.name() << active.bearerTypeName() << active.identifier();
- //qDebug() << " - Interface: MAC Address:" << iface.hardwareAddress() << "Name:" << iface.name() << iface.humanReadableName() << iface.isValid();
- QList<QNetworkAddressEntry> addressList = iface.addressEntries();
- QStringList address;
- //NOTE: There are often 2 addresses, IPv4 and IPv6
- for(int i=0; i<addressList.length(); i++){
- address << addressList[i].ip().toString();
- }
- //qDebug() << " - IP Address:" << address;
- //qDebug() << " - Hostname:" << networkHostname();
- INFO.insert("netaccess/address", address.join(", "));
- emit networkStatusChanged();
-}
-
void OSInterface::netRequestFinished(QNetworkReply*){}
void OSInterface::netSslErrors(QNetworkReply*, const QList<QSslError>&){}
void OSInterface::timerUpdate(){}
bgstack15