diff --git a/CHANGELOG b/CHANGELOG index 4ee9b3d..a484197 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,15 +1,17 @@ Ver.1.2.0: ++ [all] added icons + [gui] added suppoort of macvlan + [gui] added ability to remove profile + [gui] added support of hidden wifi network + [gui] added contextual menu to tables +* [all] small changes in the project architecture * [plasmoid] edited configuration interface Ver.1.1.0 (netctl-1.7 update): + [gui] added frequency + [plasmoid] added menu title -* [gui] changed definition if profile is enabled] * [dataengine] changed definition if profile is enabled +* [gui] changed definition if profile is enabled Ver.1.0.6: * [gui] fix error checking diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index ed3dbf6..9cd01a4 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -19,6 +19,9 @@ option (USE_QT5 "Use Qt5 instead of Qt4" ON) option (BUILD_GUI "Build GUI" ON) option (BUILD_DATAENGINE "Build data engine" ON) option (BUILD_PLASMOID "Build plasmoid" ON) +if (BUILD_PLASMOID) + set (BUILD_DATAENGINE ON) +endif () # flags if (CMAKE_COMPILER_IS_GNUCXX) @@ -30,12 +33,11 @@ else () message (STATUS "Unknown compiler") endif () -add_subdirectory (icons) - -if (BUILD_PLASMOID) - set (BUILD_DATAENGINE ON) -endif () +# resources +set (PROJECT_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/resources) +add_subdirectory (${PROJECT_RESOURCE_DIR}) +# components if (BUILD_GUI) add_subdirectory (gui) endif () diff --git a/sources/gui/CMakeLists.txt b/sources/gui/CMakeLists.txt index 78fb3cc..dca2880 100644 --- a/sources/gui/CMakeLists.txt +++ b/sources/gui/CMakeLists.txt @@ -5,7 +5,7 @@ message (STATUS "Subproject ${SUBPROJECT}") # set directories set (SUBPROJECT_BINARY_DIR bin) set (SUBPROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) -set (SUBPROJECT_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/resources) +set (SUBPROJECT_RESOURCE_DIR ${PROJECT_RESOURCE_DIR}) set (SUBPROJECT_TRANSLATION_DIR ${SUBPROJECT_RESOURCE_DIR}/translations) # executable path set (EXECUTABLE_OUTPUT_PATH ${SUBPROJECT_BINARY_DIR}) diff --git a/sources/gui/resources/resources.qrc b/sources/gui/resources/resources.qrc deleted file mode 100644 index e327f49..0000000 --- a/sources/gui/resources/resources.qrc +++ /dev/null @@ -1,6 +0,0 @@ - - - translations/english.qm - translations/russian.qm - - diff --git a/sources/gui/src/mainwindow.cpp b/sources/gui/src/mainwindow.cpp index df0a17f..76519c3 100644 --- a/sources/gui/src/mainwindow.cpp +++ b/sources/gui/src/mainwindow.cpp @@ -90,6 +90,7 @@ MainWindow::MainWindow(QWidget *parent, const bool defaultSettings, const bool d wpaCommand = new WpaSup(this, debug, configuration); createActions(); + setIconsToButtons(); updateTabs(ui->tabWidget->currentIndex()); ui->statusBar->showMessage(QApplication::translate("MainWindow", "Ready")); } @@ -158,7 +159,7 @@ void MainWindow::createActions() connect(ui->actionSettings, SIGNAL(triggered(bool)), settingsWin, SLOT(showWindow())); connect(ui->actionQuit, SIGNAL(triggered(bool)), this, SLOT(close())); - // main page events + // main tab events connect(ui->pushButton_mainRefresh, SIGNAL(clicked(bool)), this, SLOT(updateMainTab())); connect(ui->pushButton_mainRemove, SIGNAL(clicked(bool)), this, SLOT(mainTabRemoveProfile())); connect(ui->pushButton_mainEnable, SIGNAL(clicked(bool)), this, SLOT(mainTabEnableProfile())); @@ -176,7 +177,7 @@ void MainWindow::createActions() connect(ui->pushButton_profileLoad, SIGNAL(clicked(bool)), this, SLOT(profileTabLoadProfile())); connect(generalWid->connectionType, SIGNAL(currentIndexChanged(QString)), this, SLOT(profileTabChangeState(QString))); - // wifi page events + // wifi tab events connect(ui->pushButton_wifiRefresh, SIGNAL(clicked(bool)), this, SLOT(updateWifiTab())); connect(ui->pushButton_wifiStart, SIGNAL(clicked(bool)), this, SLOT(wifiTabStart())); connect(ui->tableWidget_wifi, SIGNAL(itemActivated(QTableWidgetItem *)), this, SLOT(wifiTabStart())); @@ -185,6 +186,32 @@ void MainWindow::createActions() } +void MainWindow::setIconsToButtons() +{ + // tab widget + ui->tabWidget->setTabIcon(0, QIcon(":icon")); + ui->tabWidget->setTabIcon(1, QIcon::fromTheme("document-new")); + ui->tabWidget->setTabIcon(2, QIcon(":wifi")); + + // main tab + ui->pushButton_mainRefresh->setIcon(QIcon::fromTheme("stock-refresh")); + ui->pushButton_mainRemove->setIcon(QIcon::fromTheme("edit-delete")); +// ui->pushButton_mainEnable->setIcon(QIcon("")); +// ui->pushButton_mainRestart->setIcon(QIcon("")); +// ui->pushButton_mainStart->setIcon(QIcon("")); + + // profile tab + ui->pushButton_profileClear->setIcon(QIcon::fromTheme("edit-clear")); + ui->pushButton_profileSave->setIcon(QIcon::fromTheme("document-save")); + ui->pushButton_profileLoad->setIcon(QIcon::fromTheme("document-open")); + + + // wifi tab + ui->pushButton_wifiRefresh->setIcon(QIcon::fromTheme("stock-refresh")); +// ui->pushButton_wifiStart->setIcon(QIcon("")); +} + + // window slots void MainWindow::updateTabs(const int tab) { @@ -317,12 +344,17 @@ void MainWindow::mainTabContextualMenu(const QPoint &pos) // create menu QMenu menu(this); QAction *refreshTable = menu.addAction(QApplication::translate("MainWindow", "Refresh")); + refreshTable->setIcon(QIcon::fromTheme("stock-refresh")); menu.addSeparator(); QAction *startProfile = menu.addAction(QApplication::translate("MainWindow", "Start profile")); +// startProfile->setIcon(QIcon("")); QAction *restartProfile = menu.addAction(QApplication::translate("MainWindow", "Restart profile")); +// restartProfile->setIcon(QIcon("")); QAction *enableProfile = menu.addAction(QApplication::translate("MainWindow", "Enable profile")); +// enableProfile->setIcon(QIcon("")); menu.addSeparator(); QAction *removeProfile = menu.addAction(QApplication::translate("MainWindow", "Remove profile")); + removeProfile->setIcon(QIcon::fromTheme("edit-delete")); // set text QString item = ui->tableWidget_main->item(ui->tableWidget_main->currentItem()->row(), 2)->text(); @@ -961,8 +993,10 @@ void MainWindow::wifiTabContextualMenu(const QPoint &pos) // create menu QMenu menu(this); QAction *refreshTable = menu.addAction(QApplication::translate("MainWindow", "Refresh")); + refreshTable->setIcon(QIcon::fromTheme("stock-refresh")); menu.addSeparator(); QAction *startWifi = menu.addAction(QApplication::translate("MainWindow", "Start WiFi")); +// startWifi->setIcon(QIcon("")); // set text QString item = ui->tableWidget_wifi->item(ui->tableWidget_wifi->currentItem()->row(), 1)->text(); diff --git a/sources/gui/src/mainwindow.h b/sources/gui/src/mainwindow.h index a076167..350db88 100644 --- a/sources/gui/src/mainwindow.h +++ b/sources/gui/src/mainwindow.h @@ -109,6 +109,7 @@ private: bool checkExternalApps(const QString apps); bool checkState(const QString state, const QString item); void createActions(); + void setIconsToButtons(); bool debug; // configuration QMap configuration; diff --git a/sources/gui/src/mainwindow.ui b/sources/gui/src/mainwindow.ui index c94ba33..4b82b90 100644 --- a/sources/gui/src/mainwindow.ui +++ b/sources/gui/src/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 489 - 517 + 487 + 515 @@ -203,8 +203,8 @@ 0 0 - 457 - 359 + 96 + 26 @@ -371,7 +371,7 @@ 0 0 - 489 + 487 22 @@ -386,6 +386,9 @@ + + + Settings @@ -394,6 +397,9 @@ + + + Quit diff --git a/sources/plasmoid/CMakeLists.txt b/sources/plasmoid/CMakeLists.txt index bc0a132..1c1f081 100644 --- a/sources/plasmoid/CMakeLists.txt +++ b/sources/plasmoid/CMakeLists.txt @@ -1,6 +1,8 @@ # set project name set (SUBPROJECT plasma_applet_netctl) message (STATUS "Subproject ${SUBPROJECT}") +# find resources +set (RESOURCES ${PROJECT_RESOURCE_DIR}/resources.qrc) # find required libaries find_package (KDE4 REQUIRED) @@ -23,8 +25,9 @@ file (GLOB SUBPROJECT_UI *.ui) configure_file (${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP}) # make +qt4_add_resources (QRC_SOURCES ${RESOURCES}) kde4_add_ui_files (SUBPROJECT_SOURCE ${SUBPROJECT_UI}) -kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE}) +kde4_add_plugin (${PLUGIN_NAME} ${SUBPROJECT_SOURCE} ${QRC_SOURCES}) target_link_libraries (${PLUGIN_NAME} ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS}) # install diff --git a/sources/plasmoid/netctl.cpp b/sources/plasmoid/netctl.cpp index be927d6..2dec490 100644 --- a/sources/plasmoid/netctl.cpp +++ b/sources/plasmoid/netctl.cpp @@ -184,14 +184,14 @@ QList Netctl::contextualActions() if (status) { contextMenu[QString("start")]->setText(i18n("Start another profile")); contextMenu[QString("stop")]->setVisible(true); - contextMenu[QString("stop")]->setText(i18n("Stop ") + info[QString("name")]); + contextMenu[QString("stop")]->setText(i18n("Stop %1", info[QString("name")])); contextMenu[QString("restart")]->setVisible(true); - contextMenu[QString("restart")]->setText(i18n("Restart ") + info[QString("name")]); + contextMenu[QString("restart")]->setText(i18n("Restart %1", info[QString("name")])); contextMenu[QString("enable")]->setVisible(true); if (info[QString("status")].contains(QString("enabled"))) - contextMenu[QString("enable")]->setText(i18n("Disable ") + info[QString("name")]); + contextMenu[QString("enable")]->setText(i18n("Disable %1", info[QString("name")])); else - contextMenu[QString("enable")]->setText(i18n("Enable ") + info[QString("name")]); + contextMenu[QString("enable")]->setText(i18n("Enable %1", info[QString("name")])); } else { contextMenu[QString("start")]->setText(i18n("Start profile")); @@ -222,6 +222,7 @@ void Netctl::createActions() menuActions.append(contextMenu[QString("title")]); contextMenu[QString("start")] = new QAction(i18n("Start profile"), this); +// contextMenu[QString("start")]->setIcon(QIcon("")); startProfileMenu = new QMenu(NULL); contextMenu[QString("start")]->setMenu(startProfileMenu); connect(startProfileMenu, SIGNAL(triggered(QAction *)), this, @@ -229,18 +230,22 @@ void Netctl::createActions() menuActions.append(contextMenu[QString("start")]); contextMenu[QString("stop")] = new QAction(i18n("Stop profile"), this); +// contextMenu[QString("stop")]->setIcon(QIcon("")); connect(contextMenu[QString("stop")], SIGNAL(triggered(bool)), this, SLOT(stopProfileSlot())); menuActions.append(contextMenu[QString("stop")]); contextMenu[QString("restart")] = new QAction(i18n("Restart profile"), this); +// contextMenu[QString("restart")]->setIcon(QIcon("")); connect(contextMenu[QString("restart")], SIGNAL(triggered(bool)), this, SLOT(restartProfileSlot())); menuActions.append(contextMenu[QString("restart")]); contextMenu[QString("enable")] = new QAction(i18n("Enable profile"), this); +// contextMenu[QString("enable")]->setIcon(QIcon("")); connect(contextMenu[QString("enable")], SIGNAL(triggered(bool)), this, SLOT(enableProfileSlot())); menuActions.append(contextMenu[QString("enable")]); contextMenu[QString("wifi")] = new QAction(i18n("Show WiFi menu"), this); + contextMenu[QString("wifi")]->setIcon(QIcon(":wifi")); connect(contextMenu[QString("wifi")], SIGNAL(triggered(bool)), this, SLOT(showWifi())); menuActions.append(contextMenu[QString("wifi")]); } diff --git a/sources/icons/CMakeLists.txt b/sources/resources/CMakeLists.txt similarity index 100% rename from sources/icons/CMakeLists.txt rename to sources/resources/CMakeLists.txt diff --git a/sources/icons/icon-plasmoid.png b/sources/resources/icon-plasmoid.png similarity index 100% rename from sources/icons/icon-plasmoid.png rename to sources/resources/icon-plasmoid.png diff --git a/sources/icons/icon.png b/sources/resources/icon.png similarity index 100% rename from sources/icons/icon.png rename to sources/resources/icon.png diff --git a/sources/icons/network-idle-64x64.png b/sources/resources/network-idle-64x64.png similarity index 100% rename from sources/icons/network-idle-64x64.png rename to sources/resources/network-idle-64x64.png diff --git a/sources/icons/network-offline-64x64.png b/sources/resources/network-offline-64x64.png similarity index 100% rename from sources/icons/network-offline-64x64.png rename to sources/resources/network-offline-64x64.png diff --git a/sources/resources/resources.qrc b/sources/resources/resources.qrc new file mode 100644 index 0000000..20ef7fd --- /dev/null +++ b/sources/resources/resources.qrc @@ -0,0 +1,10 @@ + + + + translations/english.qm + translations/russian.qm + + icon.png + wifi.png + + diff --git a/sources/gui/resources/translations/english.ts b/sources/resources/translations/english.ts similarity index 100% rename from sources/gui/resources/translations/english.ts rename to sources/resources/translations/english.ts diff --git a/sources/gui/resources/translations/russian.ts b/sources/resources/translations/russian.ts similarity index 100% rename from sources/gui/resources/translations/russian.ts rename to sources/resources/translations/russian.ts diff --git a/sources/resources/wifi.png b/sources/resources/wifi.png new file mode 100644 index 0000000..6f71c9f Binary files /dev/null and b/sources/resources/wifi.png differ