aboutsummaryrefslogtreecommitdiff
path: root/src-qt5
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5')
-rw-r--r--src-qt5/core-utils/lumina-config/LPlugins.cpp9
-rw-r--r--src-qt5/core-utils/lumina-config/PanelWidget.cpp36
-rw-r--r--src-qt5/core-utils/lumina-config/globals.h2
-rw-r--r--src-qt5/core-utils/lumina-config/lumina-config.pro1
-rw-r--r--src-qt5/core-utils/lumina-config/pages/getPage.h4
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_compton.cpp2
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_compton.ui7
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui256
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.cpp77
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.h36
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.ui58
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_session_options.cpp12
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_session_options.ui7
-rw-r--r--src-qt5/core-utils/lumina-config/pages/pages.pri9
-rw-r--r--src-qt5/core/libLumina/LInputDevice.cpp112
-rw-r--r--src-qt5/core/libLumina/LInputDevice.h53
-rw-r--r--src-qt5/core/libLumina/LInputDevice.pri13
-rw-r--r--src-qt5/core/libLumina/LuminaX11.cpp3
-rw-r--r--src-qt5/core/libLumina/LuminaX11.h3
-rw-r--r--src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf7
-rw-r--r--src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf14
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.cpp83
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.h3
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.ui34
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp47
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/TarBackend.h7
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/isoDialog.ui151
27 files changed, 181 insertions, 865 deletions
diff --git a/src-qt5/core-utils/lumina-config/LPlugins.cpp b/src-qt5/core-utils/lumina-config/LPlugins.cpp
index dfd490e6..089a181c 100644
--- a/src-qt5/core-utils/lumina-config/LPlugins.cpp
+++ b/src-qt5/core-utils/lumina-config/LPlugins.cpp
@@ -173,13 +173,6 @@ void LPlugins::LoadPanelPlugins(){
info.ID = "audioplayer";
info.icon = "media-playback-start";
PANEL.insert(info.ID, info);
- //JSON Menu Scripts
- info = LPI(); //clear it
- info.name = QObject::tr("Menu Script");
- info.description = QObject::tr("Run an external script to generate a user defined menu");
- info.ID = "jsonmenu";
- info.icon = "text-x-script";
- PANEL.insert(info.ID, info);
}
// DESKTOP PLUGINS
@@ -300,7 +293,7 @@ void LPlugins::LoadMenuPlugins(){
info.ID = "app";
info.icon = "application-x-desktop";
MENU.insert(info.ID, info);
- //JSON Menu Scripts
+ //Custom Apps
info = LPI(); //clear it
info.name = QObject::tr("Menu Script");
info.description = QObject::tr("Run an external script to generate a user defined menu");
diff --git a/src-qt5/core-utils/lumina-config/PanelWidget.cpp b/src-qt5/core-utils/lumina-config/PanelWidget.cpp
index d5d3d9bd..aff7bda3 100644
--- a/src-qt5/core-utils/lumina-config/PanelWidget.cpp
+++ b/src-qt5/core-utils/lumina-config/PanelWidget.cpp
@@ -9,7 +9,7 @@
#include "GetPluginDialog.h"
#include "AppDialog.h"
-#include "ScriptDialog.h"
+
PanelWidget::PanelWidget(QWidget *parent, QWidget *Main, LPlugins *Pinfo) : QWidget(parent), ui(new Ui::PanelWidget){
ui->setupUi(this);
@@ -66,18 +66,6 @@ void PanelWidget::LoadSettings(QSettings *settings, int Dnum, int Pnum){
it->setWhatsThis(plugs[i]); //make sure to preserve the entire plugin ID (is the unique version)
ui->list_plugins->addItem(it);
}
-
- }else if(pid.startsWith("jsonmenu")){
- LPI info = PINFO->panelPluginInfo( plugs[i].section("::::",0,0) );
- if(info.ID.isEmpty()){ continue; } //invalid plugin type (no longer available?)
- QString exec = plugs[i].section("::::",1,1);
- QListWidgetItem *item = new QListWidgetItem();
- item->setWhatsThis( plugs[i] );
- item->setIcon( LXDG::findIcon(plugs[i].section("::::",3,3),info.icon) );
- item->setText( plugs[i].section("::::",2,2) +" ("+info.name+")" );
- item->setToolTip( info.description );
- ui->list_plugins->addItem(item);
-
}else{
LPI info = PINFO->panelPluginInfo(pid);
if(!info.ID.isEmpty()){
@@ -192,35 +180,23 @@ void PanelWidget::on_tool_addplugin_clicked(){
dlg.exec();
if(!dlg.selected){ return; } //cancelled
QString pan = dlg.plugID; //getNewPanelPlugin();
- QListWidgetItem *it = 0;
if(pan == "applauncher"){
//Prompt for the application to add
QString app =getSysApp();
if(app.isEmpty()){ return; } //cancelled
pan.append("::"+app);
XDGDesktop desk(app);
- it = new QListWidgetItem( LXDG::findIcon(desk.icon,""), desk.name);
+ QListWidgetItem *it = new QListWidgetItem( LXDG::findIcon(desk.icon,""), desk.name);
it->setWhatsThis(pan);
-
- }else if(pan=="jsonmenu"){
- //Need to prompt for the script file, name, and icon to use
- //new ID format: "jsonmenu"::::<exec to run>::::<name>::::<icon>
- ScriptDialog SD(this);
- SD.exec();
- if(!SD.isValid()){ return; }
- LPI info = PINFO->panelPluginInfo(pan);
- it = new QListWidgetItem( LXDG::findIcon(SD.icon(),"text-x-script"), SD.name()+" ("+info.ID+")" );
- it->setWhatsThis(info.ID+"::::"+SD.command()+"::::"+SD.name()+"::::"+SD.icon());
- it->setToolTip( info.description );
+ ui->list_plugins->addItem(it);
+ ui->list_plugins->setCurrentItem(it);
+ ui->list_plugins->scrollToItem(it);
}else{
if(pan.isEmpty()){ return; } //nothing selected
//Add the new plugin to the list
LPI info = PINFO->panelPluginInfo(pan);
- it = new QListWidgetItem( LXDG::findIcon(info.icon,""), info.name);
+ QListWidgetItem *it = new QListWidgetItem( LXDG::findIcon(info.icon,""), info.name);
it->setWhatsThis(info.ID);
- }
- //Now add the new item to the list
- if(it!=0){
ui->list_plugins->addItem(it);
ui->list_plugins->setCurrentItem(it);
ui->list_plugins->scrollToItem(it);
diff --git a/src-qt5/core-utils/lumina-config/globals.h b/src-qt5/core-utils/lumina-config/globals.h
index ed7549aa..0f94785c 100644
--- a/src-qt5/core-utils/lumina-config/globals.h
+++ b/src-qt5/core-utils/lumina-config/globals.h
@@ -35,8 +35,6 @@
#include <LuminaOS.h>
#include <LuminaThemes.h>
-#include "pages/PageWidget.h"
-
#endif
//Now the global class for available system applications
diff --git a/src-qt5/core-utils/lumina-config/lumina-config.pro b/src-qt5/core-utils/lumina-config/lumina-config.pro
index 57531e69..fe5494de 100644
--- a/src-qt5/core-utils/lumina-config/lumina-config.pro
+++ b/src-qt5/core-utils/lumina-config/lumina-config.pro
@@ -15,7 +15,6 @@ include(../../core/libLumina/LDesktopUtils.pri) #includes LUtils
include(../../core/libLumina/LuminaXDG.pri)
include(../../core/libLumina/LuminaSingleApplication.pri)
include(../../core/libLumina/LuminaThemes.pri)
-include(../../core/libLumina/LInputDevice.pri)
SOURCES += main.cpp \
mainWindow.cpp \
diff --git a/src-qt5/core-utils/lumina-config/pages/getPage.h b/src-qt5/core-utils/lumina-config/pages/getPage.h
index ea0cfb00..fba3998b 100644
--- a/src-qt5/core-utils/lumina-config/pages/getPage.h
+++ b/src-qt5/core-utils/lumina-config/pages/getPage.h
@@ -38,7 +38,7 @@ static QList<PAGEINFO> KnownPages(){
list << PageInfo("interface-menu", QObject::tr("Menu"), QObject::tr("Menu Plugins"), "preferences-plugin",QObject::tr("Change what options are shown on the desktop context menu"), "interface", QStringList(), QStringList() << "desktop" << "menu" << "plugins" << "shortcuts");
list << PageInfo("session-locale", QObject::tr("Localization"), QObject::tr("Locale Settings"), "preferences-desktop-locale",QObject::tr("Change the default locale settings for this user"), "user", QStringList(), QStringList() << "user"<<"locale"<<"language"<<"translations");
list << PageInfo("session-options", QObject::tr("General Options"), QObject::tr("User Settings"), "configure",QObject::tr("Change basic user settings such as time/date formats"), "user", QStringList(), QStringList() << "user"<<"settings"<<"time"<<"date"<<"icon"<<"reset"<<"numlock"<<"clock");
- //list << PageInfo("mouse", QObject::tr("Mouse Settings"), QObject::tr("Mouse Settings"), "input-mouse",QObject::tr("Adjust mouse settings"), "user", QStringList(), QStringList() << "user"<<"speed"<<"accel"<<"mouse");
+
//Now sort the items according to the translated name
QStringList names;
for(int i=0; i<list.length(); i++){ names << list[i].name; }
@@ -66,7 +66,6 @@ static QList<PAGEINFO> KnownPages(){
#include "page_session_locale.h"
#include "page_session_options.h"
#include "page_compton.h"
-#include "page_mouse.h"
static PageWidget* GetNewPage(QString id, QWidget *parent){
//Find the page that matches this "id"
@@ -83,7 +82,6 @@ static PageWidget* GetNewPage(QString id, QWidget *parent){
else if(id=="session-locale"){ page = new page_session_locale(parent); }
else if(id=="session-options"){ page = new page_session_options(parent); }
else if(id=="compton"){ page = new page_compton(parent); }
- else if(id=="mouse"){ page = new page_mouse(parent); }
//Return the main control_panel page as the fallback/default
if(page==0){ id.clear(); page = new page_main(parent); }
page->setWhatsThis(id);
diff --git a/src-qt5/core-utils/lumina-config/pages/page_compton.cpp b/src-qt5/core-utils/lumina-config/pages/page_compton.cpp
index 8cdb2ea7..5f7cd190 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_compton.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_compton.cpp
@@ -29,7 +29,6 @@ void page_compton::SaveSettings(){
emit HasPendingChanges(false);
QSettings settings("lumina-desktop","sessionsettings");
settings.setValue("enableCompositing", !ui->check_disablecompton->isChecked());
- settings.setValue("compositingWithGpuAccelOnly", ui->check_GPUverify->isChecked());
QString set = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/compton.conf";
LUtils::writeFile(set, ui->text_file->toPlainText().split("\n"),true);
}
@@ -38,7 +37,6 @@ void page_compton::LoadSettings(int){
emit ChangePageTitle( tr("Compositor Settings") );
QSettings settings("lumina-desktop","sessionsettings");
ui->check_disablecompton->setChecked( !settings.value("enableCompositing", true).toBool() );
- ui->check_GPUverify->setChecked( settings.value("compositingWithGpuAccelOnly", true).toBool() );
QString set = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/compton.conf";
qDebug() << "Load Compton settings:" << set;
ui->text_file->setPlainText( LUtils::readFile(set).join("\n") );
diff --git a/src-qt5/core-utils/lumina-config/pages/page_compton.ui b/src-qt5/core-utils/lumina-config/pages/page_compton.ui
index 857331d6..9083a2fb 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_compton.ui
+++ b/src-qt5/core-utils/lumina-config/pages/page_compton.ui
@@ -34,13 +34,6 @@
</widget>
</item>
<item>
- <widget class="QCheckBox" name="check_GPUverify">
- <property name="text">
- <string>Only use compositing with GPU acceleration </string>
- </property>
- </widget>
- </item>
- <item>
<widget class="QPlainTextEdit" name="text_file"/>
</item>
</layout>
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
index 8440e198..ef72c4f1 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
@@ -29,138 +29,11 @@
<item>
<widget class="QTabWidget" name="tabWidget_apps">
<property name="currentIndex">
- <number>0</number>
+ <number>1</number>
</property>
<property name="movable">
<bool>false</bool>
</property>
- <widget class="QWidget" name="tab_auto">
- <attribute name="title">
- <string>Basic Settings</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_7">
- <item>
- <layout class="QGridLayout" name="gridLayout_6">
- <item row="0" column="0">
- <layout class="QFormLayout" name="formLayout_10">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::ExpandingFieldsGrow</enum>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="label_37">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Web Browser:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QToolButton" name="tool_default_webbrowser">
- <property name="text">
- <string notr="true">...</string>
- </property>
- <property name="toolButtonStyle">
- <enum>Qt::ToolButtonTextBesideIcon</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_38">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>E-Mail Client:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QToolButton" name="tool_default_email">
- <property name="text">
- <string notr="true">...</string>
- </property>
- <property name="toolButtonStyle">
- <enum>Qt::ToolButtonTextBesideIcon</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="0" column="1">
- <layout class="QFormLayout" name="formLayout_11">
- <item row="0" column="0">
- <widget class="QLabel" name="label_39">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>File Manager:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_40">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Virtual Terminal:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QToolButton" name="tool_default_filemanager">
- <property name="text">
- <string>...</string>
- </property>
- <property name="toolButtonStyle">
- <enum>Qt::ToolButtonTextBesideIcon</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QToolButton" name="tool_default_terminal">
- <property name="text">
- <string>...</string>
- </property>
- <property name="toolButtonStyle">
- <enum>Qt::ToolButtonTextBesideIcon</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer_4">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
<widget class="QWidget" name="tab_defaults">
<attribute name="title">
<string>Advanced</string>
@@ -290,6 +163,133 @@
</item>
</layout>
</widget>
+ <widget class="QWidget" name="tab_auto">
+ <attribute name="title">
+ <string>Basic Settings</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <layout class="QGridLayout" name="gridLayout_6">
+ <item row="0" column="0">
+ <layout class="QFormLayout" name="formLayout_10">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_37">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Web Browser:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QToolButton" name="tool_default_webbrowser">
+ <property name="text">
+ <string notr="true">...</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_38">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>E-Mail Client:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QToolButton" name="tool_default_email">
+ <property name="text">
+ <string notr="true">...</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <layout class="QFormLayout" name="formLayout_11">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_39">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>File Manager:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_40">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Virtual Terminal:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QToolButton" name="tool_default_filemanager">
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QToolButton" name="tool_default_terminal">
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
</widget>
</item>
</layout>
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp b/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp
deleted file mode 100644
index dbe075d7..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===========================================
-// Lumina Desktop Source Code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#include "page_mouse.h"
-#include "ui_page_mouse.h"
-#include "getPage.h"
-
-//==========
-// PUBLIC
-//==========
-page_mouse::page_mouse(QWidget *parent) : PageWidget(parent), ui(new Ui::page_mouse()){
- ui->setupUi(this);
- connect(ui->slider_accel, SIGNAL(valueChanged(int)), this, SLOT(accelChanged(int)) );
- updateIcons();
- qDebug() << "List Devices:";
- QList<LInputDevice*> devices = LInput::listDevices();
- for(int i=0; i<devices.length(); i++){
- if(!devices[i]->isPointer()){
- ::free( devices.takeAt(i));
- i--;
- }else{
- qDebug() << "Found Pointer:" << devices[i]->devNumber();
- qDebug() << " - isExtension:" << devices[i]->isExtension();
- qDebug() << " - Properties:" << devices[i]->listProperties();
- }
- }
-}
-
-page_mouse::~page_mouse(){
- for(int i=0; i<devices.length(); i++){ ::free(devices[i]); }
-}
-
-//================
-// PUBLIC SLOTS
-//================
-void page_mouse::SaveSettings(){
-
- emit HasPendingChanges(false);
-}
-
-void page_mouse::LoadSettings(int){
- emit HasPendingChanges(false);
- emit ChangePageTitle( tr("Desktop Settings") );
-
-}
-
-void page_mouse::updateIcons(){
-
-}
-
-//=================
-// PRIVATE
-//=================
-
-//=================
-// PRIVATE SLOTS
-//=================
-void page_mouse::accelChanged(int val){
- if(val<=4){
- val = 4-val;
- ui->label_accel->setText( QString("1/%1").arg(QString::number(val)) );
- QProcess::startDetached("xset mouse 1/"+QString::number(val));
- }else{
- val = val-4;
- if(val%2==0){
- val = val/2;
- ui->label_accel->setText( QString::number(val) );
- QProcess::startDetached("xset mouse "+QString::number(val));
- }else{
- ui->label_accel->setText( QString::number(val)+"/2" );
- QProcess::startDetached("xset mouse "+QString::number(val)+"/2");
- }
- }
-}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.h b/src-qt5/core-utils/lumina-config/pages/page_mouse.h
deleted file mode 100644
index 849917c5..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//===========================================
-// Lumina Desktop Source Code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#ifndef _LUMINA_CONFIG_PAGE_MOUSE_H
-#define _LUMINA_CONFIG_PAGE_MOUSE_H
-#include "../globals.h"
-#include "PageWidget.h"
-
-#include <LInputDevice.h>
-
-namespace Ui{
- class page_mouse;
-};
-
-class page_mouse : public PageWidget{
- Q_OBJECT
-public:
- page_mouse(QWidget *parent);
- ~page_mouse();
-
-public slots:
- void SaveSettings();
- void LoadSettings(int screennum);
- void updateIcons();
-
-private:
- Ui::page_mouse *ui;
- QList<LInputDevice*> devices;
-
-private slots:
- void accelChanged(int val);
-};
-#endif
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.ui b/src-qt5/core-utils/lumina-config/pages/page_mouse.ui
deleted file mode 100644
index 619e38dc..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.ui
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>page_mouse</class>
- <widget class="QWidget" name="page_mouse">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Mouse Acceleration</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QSlider" name="slider_accel">
- <property name="maximum">
- <number>20</number>
- </property>
- <property name="value">
- <number>4</number>
- </property>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="tickPosition">
- <enum>QSlider::TicksBelow</enum>
- </property>
- <property name="tickInterval">
- <number>2</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_accel">
- <property name="text">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src-qt5/core-utils/lumina-config/pages/page_session_options.cpp b/src-qt5/core-utils/lumina-config/pages/page_session_options.cpp
index 1af87cd2..333f9da8 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_session_options.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_session_options.cpp
@@ -33,7 +33,6 @@ page_session_options::page_session_options(QWidget *parent) : PageWidget(parent)
connect(ui->check_session_playloginaudio, SIGNAL(toggled(bool)), this, SLOT(settingChanged()) );
connect(ui->check_session_playlogoutaudio, SIGNAL(toggled(bool)), this, SLOT(settingChanged()) );
connect(ui->check_autoapplinks, SIGNAL(toggled(bool)), this, SLOT(settingChanged()) );
- connect(ui->check_watch_app_procs, SIGNAL(toggled(bool)), this, SLOT(settingChanged()) );
updateIcons();
}
@@ -54,14 +53,6 @@ void page_session_options::SaveSettings(){
sessionsettings.setValue("TimeFormat", ui->line_session_time->text());
sessionsettings.setValue("DateFormat", ui->line_session_date->text());
sessionsettings.setValue("DateTimeOrder", ui->combo_session_datetimeorder->currentData().toString());
-
- QString lopenWatchFile = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/nowatch";
- if(QFile::exists(lopenWatchFile) && ui->check_watch_app_procs->isChecked()){
- QFile::remove(lopenWatchFile);
- }else if(!QFile::exists(lopenWatchFile) && !ui->check_watch_app_procs->isChecked()){
- QFile file(lopenWatchFile);
- if(file.open(QIODevice::WriteOnly) ){ file.close(); } //just need to touch it to create the file
- }
emit HasPendingChanges(false);
}
@@ -80,9 +71,6 @@ void page_session_options::LoadSettings(int){
int index = ui->combo_session_datetimeorder->findData( sessionsettings.value("DateTimeOrder","timeonly").toString() );
ui->combo_session_datetimeorder->setCurrentIndex(index);
- QString lopenWatchFile = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/nowatch";
- ui->check_watch_app_procs->setChecked( !QFile::exists(lopenWatchFile) );
-
sessionLoadTimeSample();
sessionLoadDateSample();
QApplication::processEvents(); //throw away any interaction events from loading
diff --git a/src-qt5/core-utils/lumina-config/pages/page_session_options.ui b/src-qt5/core-utils/lumina-config/pages/page_session_options.ui
index 255166de..55d204ae 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_session_options.ui
+++ b/src-qt5/core-utils/lumina-config/pages/page_session_options.ui
@@ -60,13 +60,6 @@
</widget>
</item>
<item>
- <widget class="QCheckBox" name="check_watch_app_procs">
- <property name="text">
- <string>Show application crash data</string>
- </property>
- </widget>
- </item>
- <item>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QPushButton" name="push_session_setUserIcon">
diff --git a/src-qt5/core-utils/lumina-config/pages/pages.pri b/src-qt5/core-utils/lumina-config/pages/pages.pri
index b36ca7ba..b1db2860 100644
--- a/src-qt5/core-utils/lumina-config/pages/pages.pri
+++ b/src-qt5/core-utils/lumina-config/pages/pages.pri
@@ -13,8 +13,7 @@ HEADERS += $${PWD}/getPage.h \
$${PWD}/page_interface_panels.h \
$${PWD}/page_session_locale.h \
$${PWD}/page_session_options.h \
- $${PWD}/page_compton.h \
- $${PWD}/page_mouse.h
+ $${PWD}/page_compton.h
SOURCES += $${PWD}/page_main.cpp \
@@ -29,8 +28,7 @@ SOURCES += $${PWD}/page_main.cpp \
$${PWD}/page_interface_panels.cpp \
$${PWD}/page_session_locale.cpp \
$${PWD}/page_session_options.cpp \
- $${PWD}/page_compton.cpp \
- $${PWD}/page_mouse.cpp
+ $${PWD}/page_compton.cpp
FORMS += $${PWD}/page_main.ui \
@@ -45,5 +43,4 @@ FORMS += $${PWD}/page_main.ui \
$${PWD}/page_interface_panels.ui \
$${PWD}/page_session_locale.ui \
$${PWD}/page_session_options.ui \
- $${PWD}/page_compton.ui \
- $${PWD}/page_mouse.ui
+ $${PWD}/page_compton.ui
diff --git a/src-qt5/core/libLumina/LInputDevice.cpp b/src-qt5/core/libLumina/LInputDevice.cpp
deleted file mode 100644
index d141e39a..00000000
--- a/src-qt5/core/libLumina/LInputDevice.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===========================================
-// Lumina-DE source code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#include "LInputDevice.h"
-
-//Qt Library includes
-#include <QString>
-#include <QX11Info>
-#include <QDebug>
-
-//XCB Library includes
-#include <xcb/xcb.h>
-#include <xcb/xcb_atom.h>
-#include <xcb/xinput.h>
-#include <xcb/xproto.h>
-
-//===================
-// LInputDevice Class
-//===================
-// === PUBLIC ===
-LInputDevice::LInputDevice(unsigned int id, unsigned int type){
- devID = id;
- devType = type;
- //devName = name;
- getProperties(); //need to populate the name/atom correlations for properties
-}
-
-LInputDevice::~LInputDevice(){
-
-}
-
-unsigned int LInputDevice::devNumber(){
- return devID;
-}
-
-bool LInputDevice::isPointer(){
- return (devType==XCB_INPUT_DEVICE_USE_IS_X_POINTER \
- || devType==XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER);
-}
-
-bool LInputDevice::isKeyboard(){
- return (devType==XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD \
- || devType==XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD);
-}
-
-bool LInputDevice::isExtension(){
- return (devType==XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE \
- || devType==XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD \
- || devType==XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER);
-}
-
-// Property Management
-QStringList LInputDevice::listProperties(){
- return devProps.keys();
-}
-
-QVariant LInputDevice::propertyValue(QString prop){
- if(!devProps.contains(prop)){ return QVariant(); }
- //Now generate the property request
- // xcb_input_get_device_property_cookie_t cookie = xcb_input_get_device_property_unchecked( QX11Info::connection(), devProps.value(prop), \
-// XCB_ATOM_ATOM, 0, 1000, devID, NULL);
- QVariant result;
- return result;
-}
-
-// === PRIVATE ===
-void LInputDevice::getProperties(){
- devProps.clear();
- xcb_input_list_device_properties_cookie_t cookie = xcb_input_list_device_properties_unchecked(QX11Info::connection(), devID);
- xcb_input_list_device_properties_reply_t *reply = xcb_input_list_device_properties_reply(QX11Info::connection(), cookie, NULL);
- //Get the atoms
- xcb_atom_t *atoms = xcb_input_list_device_properties_atoms(reply);
- //qDebug() << "Property Response Type:" << reply->response_type; //Always seems to be "1"
- QList<xcb_get_atom_name_cookie_t> cookies;
- for(int i=0; i<reply->num_atoms; i++){ cookies << xcb_get_atom_name(QX11Info::connection(), atoms[i]); }
- for(int i=0; i<reply->num_atoms; i++){
- xcb_get_atom_name_reply_t *nr = xcb_get_atom_name_reply(QX11Info::connection(), cookies[i], NULL);
- devProps.insert(QString::fromUtf8( xcb_get_atom_name_name(nr), xcb_get_atom_name_name_length(nr) ),atoms[i] );
- ::free(nr);
- }
- //Done with data structure
- ::free(reply);
-}
-//======================
-// LInput Static Functions
-//======================
-QList<LInputDevice*> LInput::listDevices(){
- QList<LInputDevice*> devices;
- xcb_input_list_input_devices_cookie_t cookie = xcb_input_list_input_devices_unchecked(QX11Info::connection());
- xcb_input_list_input_devices_reply_t *reply = xcb_input_list_input_devices_reply(QX11Info::connection(), cookie, NULL);
- if(reply==0){ return devices; } //error - nothing returned
- //Use the iterator for going through the reply
- //qDebug() << "Create iterator";
- xcb_input_device_info_iterator_t iter = xcb_input_list_input_devices_devices_iterator(reply);
- //xcb_str_iterator_t nameiter = xcb_input_list_input_devices_names_iterator(reply);
-
- //Now step through the reply
- while(iter.data != 0 ){
- devices << new LInputDevice(iter.data->device_id, iter.data->device_use);
- //qDebug() << "Found Input Device:" << iter.data->device_id;
- //qDebug() << " - num_class_info:" << iter.data->num_class_info;
- if(iter.rem>0){ xcb_input_device_info_next(&iter); }
- else{ break; }
- }
- //Free the reply (done with it)
- ::free(reply);
- //return the information
- return devices;
-}
diff --git a/src-qt5/core/libLumina/LInputDevice.h b/src-qt5/core/libLumina/LInputDevice.h
deleted file mode 100644
index f7a4713c..00000000
--- a/src-qt5/core/libLumina/LInputDevice.h
+++ /dev/null
@@ -1,53 +0,0 @@
-//===========================================
-// Lumina-DE source code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-// This class governs all the XCB input device interactions
-// and provides simpler Qt-based functions for use elsewhere
-//===========================================
-#ifndef _LUMINA_XCB_INPUT_DEVICES_H
-#define _LUMINA_XCB_INPUT_DEVICES_H
-
-#include <QList>
-#include <QString>
-#include <QStringList>
-#include <QHash>
-#include <QVariant>
-
-#include <xcb/xproto.h>
-
-class LInputDevice{
-public:
- LInputDevice(unsigned int id, unsigned int type); //don't use this directly - use the "listDevices()" function instead
- ~LInputDevice();
-
- //Device Information
- //QString name(); //Return the name of this device
- unsigned int devNumber();
- bool isPointer();
- bool isKeyboard();
- bool isExtension();
-
- //Property Management
- QStringList listProperties();
- QVariant propertyValue(QString prop);
-
-private:
- unsigned int devID; //device ID number - assigned at class creation
- unsigned int devType; //device "use" identifier - assigned at class creation
- QHash<QString, xcb_atom_t> devProps; //Known device properties <name, atom>
-
- void getProperties();
- //QString devName; //device name - use this for cross-session management (id #'s can get changed every session)
-};
-
-//Static functions for overall management
-class LInput{
- public:
- static QList<LInputDevice*> listDevices(); //NOTE: Make sure you "free()" all the LInputDevice objects when finished
-
-};
-
-#endif
diff --git a/src-qt5/core/libLumina/LInputDevice.pri b/src-qt5/core/libLumina/LInputDevice.pri
deleted file mode 100644
index e90728ce..00000000
--- a/src-qt5/core/libLumina/LInputDevice.pri
+++ /dev/null
@@ -1,13 +0,0 @@
-
-QT *= x11extras
-
-LIBS *= -lc -lxcb -lxcb-xinput
-
-#LUtils Files
-SOURCES *= $${PWD}/LInputDevice.cpp
-HEADERS *= $${PWD}/LInputDevice.h
-
-INCLUDEPATH *= ${PWD}
-
-#include LUtils and LuminaOS
-#include(LUtils.pri)
diff --git a/src-qt5/core/libLumina/LuminaX11.cpp b/src-qt5/core/libLumina/LuminaX11.cpp
index a8016460..3708af6d 100644
--- a/src-qt5/core/libLumina/LuminaX11.cpp
+++ b/src-qt5/core/libLumina/LuminaX11.cpp
@@ -1,6 +1,6 @@
//===========================================
// Lumina-DE source code
-// Copyright (c) 2014-2016, Ken Moore
+// Copyright (c) 2014-2015, Ken Moore
// Available under the 3-clause BSD license
// See the LICENSE file for full details
//===========================================
@@ -1124,7 +1124,6 @@ void LXCB::closeSystemTray(WId trayID){
xcb_destroy_window(QX11Info::connection(), trayID);
}
-
// === SetScreenWorkArea() ===
/*void LXCB::SetScreenWorkArea(unsigned int screen, QRect rect){
//This is only useful because Fluxbox does not set the _NET_WORKAREA root atom
diff --git a/src-qt5/core/libLumina/LuminaX11.h b/src-qt5/core/libLumina/LuminaX11.h
index 2c741111..7b6cce3c 100644
--- a/src-qt5/core/libLumina/LuminaX11.h
+++ b/src-qt5/core/libLumina/LuminaX11.h
@@ -1,6 +1,6 @@
//===========================================
// Lumina-DE source code
-// Copyright (c) 2014-2016, Ken Moore
+// Copyright (c) 2014-2015, Ken Moore
// Available under the 3-clause BSD license
// See the LICENSE file for full details
//===========================================
@@ -161,6 +161,7 @@ public:
WId startSystemTray(int screen = 0); //Startup the system tray (returns window ID for tray)
void closeSystemTray(WId); //Close the system tray
+
//============
// WM Functions (directly changing/reading properties)
// - Using these directly may prevent the WM from seeing the change
diff --git a/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf b/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf
index 56ff8b84..9b819e7c 100644
--- a/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf
+++ b/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf
@@ -42,13 +42,6 @@ mime_default_unknown/*=lumina-textedit.desktop
mime_default_application/x-shellscript=lumina-textedit.desktop
mime_default_application/pdf_ifexists=pc-pdfviewer.desktop
mime_default_application/pdf_ifexists=okular.desktop
-mime_default_application/zip_ifexists=lumina-archiver.desktop
-mime_default_application/x-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-bzip-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-lrzip-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-lzma-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-xz-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-tar_ifexists=lumina-archiver.desktop
#THEME SETTINGS
theme_themefile=Glass #Name of the theme to use (disable for Lumina-Default)
diff --git a/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf b/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf
index 46d00053..4950b1a0 100644
--- a/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf
+++ b/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf
@@ -36,13 +36,13 @@ session_default_email_ifexists=trojita.desktop
mime_default_text/*_ifexists=lumina-textedit.desktop
mime_default_audio/*_ifexists=vlc.desktop
mime_default_video/*_ifexists=vlc.desktop
-mime_default_application/zip_ifexists=lumina-archiver.desktop
-mime_default_application/x-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-bzip-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-lrzip-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-lzma-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-xz-compressed-tar_ifexists=lumina-archiver.desktop
-mime_default_application/x-tar_ifexists=lumina-archiver.desktop
+mime_default_application/zip_ifexists=peazip.desktop
+mime_default_application/x-compressed-tar_ifexists=peazip.desktop
+mime_default_application/x-bzip-compressed-tar_ifexists=peazip.desktop
+mime_default_application/x-lrzip-compressed-tar_ifexists=peazip.desktop
+mime_default_application/x-lzma-compressed-tar_ifexists=peazip.desktop
+mime_default_application/x-xz-compressed-tar_ifexists=peazip.desktop
+mime_default_application/x-tar_ifexists=peazip.desktop
mime_default_unknown/*=lumina-textedit.desktop
mime_default_application/x-shellscript=lumina-textedit.desktop
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp b/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
index 9d41374c..9710045c 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
@@ -18,7 +18,7 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
this->setWindowTitle(tr("Archive Manager"));
BACKEND = new Backend(this);
connect(BACKEND, SIGNAL(ProcessStarting()), this, SLOT(ProcStarting()) );
- connect(BACKEND, SIGNAL(ProcessFinished(bool, QString)), this, SLOT(ProcFinished(bool, QString)) );
+ connect(BACKEND, SIGNAL(ProcessFinished()), this, SLOT(ProcFinished()) );
connect(BACKEND, SIGNAL(ProgressUpdate(int, QString)), this, SLOT(ProcUpdate(int, QString)) );
//Add a spacer between toolbar items
@@ -33,18 +33,16 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
connect(ui->actionAdd_File, SIGNAL(triggered()), this, SLOT(addFiles()) );
connect(ui->actionRemove_File, SIGNAL(triggered()), this, SLOT(remFiles()) );
connect(ui->actionExtract_All, SIGNAL(triggered()), this, SLOT(extractFiles()) );
- connect(ui->actionExtract_Sel, SIGNAL(triggered()), this, SLOT(extractSelection()) );
connect(ui->actionAdd_Dirs, SIGNAL(triggered()), this, SLOT(addDirs()) );
connect(ui->tree_contents, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(ViewFile(QTreeWidgetItem*)) );
ui->progressBar->setVisible(false);
ui->label_progress->setVisible(false);
- ui->label_progress_icon->setVisible(false);
ui->actionAdd_File->setEnabled(false);
ui->actionRemove_File->setEnabled(false);
ui->actionExtract_All->setEnabled(false);
ui->actionAdd_Dirs->setEnabled(false);
loadIcons();
- ui->tree_contents->setHeaderLabels( QStringList() << tr("File") << tr("MimeType") << tr("Size")+" " );
+ ui->tree_contents->setHeaderLabels( QStringList() << tr("File") << tr("MimeType") << tr("Size") << tr("Compressed")+" " );
}
MainUI::~MainUI(){
@@ -53,11 +51,7 @@ MainUI::~MainUI(){
void MainUI::LoadArguments(QStringList args){
for(int i=0; i<args.length(); i++){
- if(QFile::exists(args[i])){
- ui->label_progress->setText(tr("Opening Archive..."));
- BACKEND->loadFile(args[i]);
- break;
- }
+ if(QFile::exists(args[i])){ BACKEND->loadFile(args[i]); break;}
}
}
@@ -70,7 +64,6 @@ void MainUI::loadIcons(){
ui->actionAdd_Dirs->setIcon( LXDG::findIcon("archive-insert-directory","") );
ui->actionRemove_File->setIcon( LXDG::findIcon("archive-remove","") );
ui->actionExtract_All->setIcon( LXDG::findIcon("archive-extract","") );
- ui->actionExtract_Sel->setIcon( LXDG::findIcon("archive-extract","") );
}
//===================
@@ -79,16 +72,17 @@ void MainUI::loadIcons(){
QTreeWidgetItem* MainUI::findItem(QString path, QTreeWidgetItem *start){
if(start==0){
for(int i=0; i<ui->tree_contents->topLevelItemCount(); i++){
- if(ui->tree_contents->topLevelItem(i)->whatsThis(0) == path){ return ui->tree_contents->topLevelItem(i); }
- else if(path.startsWith(ui->tree_contents->topLevelItem(i)->whatsThis(0)+"/")){ return findItem(path, ui->tree_contents->topLevelItem(i)); }
+ QString itpath = ui->tree_contents->topLevelItem(i)->whatsThis(0);
+ if(itpath == path){ return ui->tree_contents->topLevelItem(i); }
+ else if(path.startsWith(itpath+"/")){ return findItem(path, ui->tree_contents->topLevelItem(i)); }
}
}else{
for(int i=0; i<start->childCount(); i++){
- if(start->child(i)->whatsThis(0) == path){ return start->child(i); }
- else if(path.startsWith(start->child(i)->whatsThis(0)+"/")){ return findItem(path, start->child(i)); }
+ QString itpath = start->child(i)->whatsThis(0);
+ if(itpath == path){ return start->child(i); }
+ else if(path.startsWith(itpath+"/")){ return findItem(path, start->child(i)); }
}
}
- //qDebug() << "Could not find item:" << path;
return 0; //nothing found
}
@@ -164,28 +158,24 @@ void MainUI::NewArchive(){
if(QFile::exists(file)){
if( !QFile::remove(file) ){ QMessageBox::warning(this, tr("Error"), QString(tr("Could not overwrite file:"))+"\n"+file); }
}
- ui->label_progress->setText(""); //just clear it (this action is instant)
BACKEND->loadFile(file);
}
void MainUI::OpenArchive(){
QString file = QFileDialog::getOpenFileName(this, tr("Open Archive"), QDir::homePath(), OpenFileTypes() );
if(file.isEmpty()){ return; }
- ui->label_progress->setText(tr("Opening Archive..."));
BACKEND->loadFile(file);
}
void MainUI::addFiles(){
QStringList files = QFileDialog::getOpenFileNames(this, tr("Add to Archive"), QDir::homePath() );
if(files.isEmpty()){ return; }
- ui->label_progress->setText(tr("Adding Items..."));
BACKEND->startAdd(files);
}
void MainUI::addDirs(){
QString dirs = QFileDialog::getExistingDirectory(this, tr("Add to Archive"), QDir::homePath() );
if(dirs.isEmpty()){ return; }
- ui->label_progress->setText(tr("Adding Items..."));
BACKEND->startAdd(QStringList() << dirs);
}
@@ -196,57 +186,35 @@ void MainUI::remFiles(){
items << sel[i]->whatsThis(0);
}
items.removeDuplicates();
- ui->label_progress->setText(tr("Removing Items..."));
BACKEND->startRemove(items);
}
void MainUI::extractFiles(){
QString dir = QFileDialog::getExistingDirectory(this, tr("Extract Into Directory"), QDir::homePath() );
if(dir.isEmpty()){ return; }
- ui->label_progress->setText(tr("Extracting..."));
BACKEND->startExtract(dir, true);
}
-void MainUI::extractSelection(){
- if(ui->tree_contents->currentItem()==0){ return; }
- QString sel = ui->tree_contents->currentItem()->whatsThis(0);
- QString dir = QFileDialog::getExistingDirectory(this, tr("Extract Into Directory"), QDir::homePath() );
- if(dir.isEmpty()){ return; }
- ui->label_progress->setText(tr("Extracting..."));
- BACKEND->startExtract(dir, true, sel);
-}
-
void MainUI::ViewFile(QTreeWidgetItem *it){
if(it->childCount()>0){ return; } //directory - not viewable
- ui->label_progress->setText(tr("Extracting..."));
BACKEND->startViewFile(it->whatsThis(0));
}
void MainUI::UpdateTree(){
- this->setEnabled(false);
- ui->tree_contents->setHeaderLabels( QStringList() << tr("File") << tr("MimeType") << tr("Size")+" " );
+ ui->tree_contents->setHeaderLabels( QStringList() << tr("File") << tr("MimeType") << tr("Size") << tr("Compressed")+" " );
QStringList files = BACKEND->heirarchy();
files.sort();
//Remove any entries for file no longer in the archive
bool changed = cleanItems(files);
- //qDebug() << "Found Files:" << files;
+ qDebug() << "Found Files:" << files;
for(int i=0; i<files.length(); i++){
if(0 != findItem(files[i]) ){ continue; } //already in the tree widget
QString mime = LXDG::findAppMimeForFile(files[i].section("/",-1), false); //first match only
- QTreeWidgetItem *it = new QTreeWidgetItem();
- it->setText(0, files[i].section("/",-1) );
- if(!BACKEND->isLink(files[i])){
- it->setText(1, LXDG::findAppMimeForFile(files[i].section("/",-1), false) );
- it->setText(2, LUtils::BytesToDisplaySize( BACKEND->size(files[i])) );
- }else{
- it->setText(1, QString(tr("Link To: %1")).arg(BACKEND->linkTo(files[i]) ) );
- }
+ QTreeWidgetItem *it = new QTreeWidgetItem( QStringList() << files[i].section("/",-1) << mime << LUtils::BytesToDisplaySize( BACKEND->size(files[i])) << LUtils::BytesToDisplaySize(BACKEND->csize(files[i])) );
it->setWhatsThis(0, files[i]);
if(BACKEND->isDir(files[i])){
it->setIcon(0, LXDG::findIcon("folder",""));
it->setText(1,""); //clear the mimetype
- }else if(BACKEND->isLink(files[i])){
- it->setIcon(0, LXDG::findIcon("emblem-symbolic-link","") );
}else{
it->setIcon(0, LXDG::findMimeIcon(files[i].section("/",-1)) );
}
@@ -258,23 +226,14 @@ void MainUI::UpdateTree(){
else{ parent->addChild(it); }
}else{
ui->tree_contents->addTopLevelItem(it);
- QApplication::processEvents();
}
changed = true;
}
-
+ int wid = 0;
if(changed){
- int wid = ui->tree_contents->fontMetrics().width("W")*5;
- ui->tree_contents->setColumnWidth(2, wid);
- for(int i=1; i<2; i++){ui->tree_contents->resizeColumnToContents(i); QApplication::processEvents(); wid+= ui->tree_contents->columnWidth(i); }
- //qDebug() << "Set column 0 width:" << wid << ui->tree_contents->viewport()->width();
+ for(int i=3; i>0; i--){ui->tree_contents->resizeColumnToContents(i); wid+= ui->tree_contents->columnWidth(i); }
ui->tree_contents->setColumnWidth(0, ui->tree_contents->viewport()->width()-wid);
}
- ui->tree_contents->sortItems(0, Qt::AscendingOrder); //sort by name
- ui->tree_contents->sortItems(1,Qt::AscendingOrder); //sort by mimetype (put dirs first - still organized by name)
-
- this->setEnabled(true);
- ui->tree_contents->setEnabled(true);
}
//Backend Handling
@@ -282,22 +241,17 @@ void MainUI::ProcStarting(){
ui->progressBar->setRange(0,0);
ui->progressBar->setValue(0);
ui->progressBar->setVisible(true);
- ui->label_progress->setVisible(!ui->label_progress->text().isEmpty());
- ui->label_progress_icon->setVisible(false);
+ ui->label_progress->setVisible(true);
ui->tree_contents->setEnabled(false);
ui->label_archive->setText(BACKEND->currentFile());
}
-void MainUI::ProcFinished(bool success, QString msg){
- UpdateTree();
+void MainUI::ProcFinished(){
ui->progressBar->setRange(0,0);
ui->progressBar->setValue(0);
ui->progressBar->setVisible(false);
- ui->label_progress->setText(msg);
- ui->label_progress->setVisible(!msg.isEmpty());
- ui->label_progress_icon->setVisible(!msg.isEmpty());
- if(success){ ui->label_progress_icon->setPixmap( LXDG::findIcon("task-complete","").pixmap(32,32) );}
- else{ ui->label_progress_icon->setPixmap( LXDG::findIcon("task-attention","").pixmap(32,32) );}
+ ui->label_progress->setVisible(false);
+ ui->tree_contents->setEnabled(true);
if(ui->label_archive->text()!=BACKEND->currentFile()){
ui->label_archive->setText(BACKEND->currentFile());
this->setWindowTitle(BACKEND->currentFile().section("/",-1));
@@ -311,6 +265,7 @@ void MainUI::ProcFinished(bool success, QString msg){
ui->actionRemove_File->setEnabled(canmodify && info.exists());
ui->actionExtract_All->setEnabled(info.exists());
ui->actionAdd_Dirs->setEnabled(canmodify);
+ UpdateTree();
}
void MainUI::ProcUpdate(int percent, QString txt){
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.h b/src-qt5/desktop-utils/lumina-archiver/MainUI.h
index bb462a7d..09207aa3 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.h
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.h
@@ -44,14 +44,13 @@ private slots:
void addDirs();
void remFiles();
void extractFiles();
- void extractSelection();
void ViewFile(QTreeWidgetItem *it);
void UpdateTree();
//Backend Handling
void ProcStarting();
- void ProcFinished(bool, QString);
+ void ProcFinished();
void ProcUpdate(int percent, QString txt);
};
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.ui b/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
index 1aff2e4f..8c2b2836 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
@@ -57,31 +57,6 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <widget class="QLabel" name="label_progress_icon">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- <property name="text">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
<widget class="QProgressBar" name="progressBar">
<property name="value">
<number>24</number>
@@ -93,9 +68,6 @@
<property name="text">
<string notr="true"/>
</property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
</widget>
</item>
</layout>
@@ -129,7 +101,6 @@
<addaction name="actionRemove_File"/>
<addaction name="separator"/>
<addaction name="actionExtract_All"/>
- <addaction name="actionExtract_Sel"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
@@ -212,11 +183,6 @@
<string>Add directory to archive</string>
</property>
</action>
- <action name="actionExtract_Sel">
- <property name="text">
- <string>Extract Selection</string>
- </property>
- </action>
</widget>
<resources/>
<connections/>
diff --git a/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp b/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
index 919a6813..4dee247b 100644
--- a/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
+++ b/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
@@ -32,7 +32,7 @@ void Backend::loadFile(QString path){
flags.clear();
flags << "-f" << filepath; //add the actual archive path
if(QFile::exists(path)){ startList(); }
- else{ contents.clear(); emit ProcessFinished(true, ""); }
+ else{ contents.clear(); emit ProcessFinished(); }
}
bool Backend::canModify(){
@@ -75,16 +75,6 @@ bool Backend::isDir(QString file){
return contents.value(file)[0].startsWith("d");
}
-bool Backend::isLink(QString file){
- if(!contents.contains(file)){ return false; }
- return contents.value(file)[0].startsWith("l");
-}
-
-QString Backend::linkTo(QString file){
- if(!contents.contains(file)){ return ""; }
- return contents.value(file)[2];
-}
-
//Modification routines
void Backend::startAdd(QStringList paths){
//NOTE: All the "paths" have to have the same parent directory
@@ -125,13 +115,11 @@ void Backend::startRemove(QStringList paths){
PROC.start("tar", args);
}
-void Backend::startExtract(QString path, bool overwrite, QString file){
+void Backend::startExtract(QString path, bool overwrite){
QStringList args;
args << "-x";
if(!overwrite){ args << "-k"; }
- args << flags;
- if(!file.isEmpty()){ args << "--include" << file << "--strip-components" << QString::number(file.count("/")); }
- args << "-C" << path;
+ args << flags << "-C" << path;
STARTING=true;
//qDebug() << "Starting command:" << "tar" << args;
PROC.start("tar", args);
@@ -163,23 +151,14 @@ void Backend::parseLines(QStringList lines){
QString file = info[1];
QString perms = "";
if(file.endsWith("/")){ perms = "d"; file.chop(1); }
- contents.insert(file, QStringList() << perms << "-1" <<""); //Save the [perms, size, linkto ]
+ contents.insert(file, QStringList() << perms << "-1" ); //Save the [perms, size ]
}
else if(info.length()<9){ continue; } //invalid line
//TAR Archive parsing
while(info.length()>9){ info[8] = info[8]+" "+info[9]; info.removeAt(9); } //Filename has spaces in it
QString file = info[8];
if(file.endsWith("/")){ file.chop(1); }
- QString linkto;
- //See if this file has the "link to" or "->" notation
- if(file.contains(" -> ")){ linkto = file.section(" -> ",1,-1); file = file.section(" -> ",0,0); }
- else if(file.contains(" link to ")){
- //Special case - alternate form of a link within a tar archive (not reflected in perms)
- linkto = file.section(" link to ",1,-1);
- file = file.section(" link to ",0,0);
- if(info[0].startsWith("-")){ info[0].replace(0,1,"l"); }
- }
- contents.insert(file, QStringList() << info[0] << info[4] << linkto); //Save the [perms, size, linkto ]
+ contents.insert(file, QStringList() << info[0] << info[4] ); //Save the [perms, size ]
}
}
@@ -195,19 +174,17 @@ void Backend::startList(){
// PRIVATE SLOTS
//===============
void Backend::procFinished(int retcode, QProcess::ExitStatus){
- static QString result;
processData();
- //qDebug() << "Process Finished:" << PROC.arguments() << retcode;
+ qDebug() << "Process Finished:" << PROC.arguments() << retcode;
LIST = STARTING = false;
if(PROC.arguments().contains("-tv")){
if(retcode!=0){ contents.clear(); } //could not read archive
- emit ProcessFinished(true,result);
- result.clear();
+ emit ProcessFinished();
}else{
bool needupdate = true;
QStringList args = PROC.arguments();
if(args.contains("-x") && retcode==0){
- needupdate=false;
+ needupdate=false;
if(args.contains("--include")){
//Need to find the full path to the extracted file
QString path = args.last() +"/"+ args[ args.indexOf("--include")+1].section("/",-1);
@@ -224,10 +201,8 @@ void Backend::procFinished(int retcode, QProcess::ExitStatus){
QFile::remove(tmpfilepath);
}
}
- if(args.contains("-x")){ result = tr("Extraction Finished"); }
- else if(args.contains("-c")){ result = tr("Modification Finished"); }
if(needupdate){ startList(); }
- else{ emit ProcessFinished(retcode==0, result); result.clear(); }
+ else{ emit ProcessFinished(); }
}
}
@@ -238,9 +213,7 @@ void Backend::processData(){
if(read.endsWith("\n")){ data.clear(); }
else{ data = read.section("\n",-1); read = read.section("\n",0,-2); }
QStringList lines = read.split("\n",QString::SkipEmptyParts);
- QString info;
if(LIST){ parseLines(lines); }
- else if(!lines.isEmpty()){ info = lines.last(); }
//qDebug() << lines;
- emit ProgressUpdate(-1, info);
+ emit ProgressUpdate(-1, "");
}
diff --git a/src-qt5/desktop-utils/lumina-archiver/TarBackend.h b/src-qt5/desktop-utils/lumina-archiver/TarBackend.h
index 47bc0bb6..f12aae63 100644
--- a/src-qt5/desktop-utils/lumina-archiver/TarBackend.h
+++ b/src-qt5/desktop-utils/lumina-archiver/TarBackend.h
@@ -29,17 +29,14 @@ public:
double size(QString file);
double csize(QString file);
bool isDir(QString file);
- bool isLink(QString file);
- QString linkTo(QString file);
//Modification routines
void startAdd(QStringList paths);
void startRemove(QStringList paths);
- void startExtract(QString path, bool overwrite, QString file=""); //path to dir, overwrite, optional file to extract (everything otherwise)
+ void startExtract(QString path, bool overwrite); //path to dir
void startViewFile(QString path);
- //Special process
public slots:
private:
@@ -61,7 +58,7 @@ signals:
void FileLoaded();
void ProcessStarting();
void ProgressUpdate(int, QString); //percentage, text
- void ProcessFinished(bool, QString); //success, text
+ void ProcessFinished();
};
#endif
diff --git a/src-qt5/desktop-utils/lumina-archiver/isoDialog.ui b/src-qt5/desktop-utils/lumina-archiver/isoDialog.ui
deleted file mode 100644
index 99ba31fb..00000000
--- a/src-qt5/desktop-utils/lumina-archiver/isoDialog.ui
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>isoDialog</class>
- <widget class="QDialog" name="isoDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>305</width>
- <height>179</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Burn ISO/IMG to device</string>
- </property>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0" colspan="2">
- <widget class="QLabel" name="label_iso">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>TextLabel</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Transfer Rate</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QSpinBox" name="spin_rate_num">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>1023</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="combo_rate_units"/>
- </item>
- </layout>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>USB Device</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QCheckBox" name="check_sync">
- <property name="text">
- <string>Wipe all extra space on device (conv = sync)</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QComboBox" name="combo_devices"/>
- </item>
- <item>
- <widget class="QToolButton" name="tool_refresh">
- <property name="toolTip">
- <string>Refresh Device List</string>
- </property>
- <property name="text">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="4" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="5" column="0" colspan="2">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="push_cancel">
- <property name="text">
- <string>Cancel</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="push_start">
- <property name="text">
- <string>Start</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
bgstack15