Hello community,

here is the log from the commit of package qactus for openSUSE:Factory checked 
in at 2020-11-29 12:31:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qactus (Old)
 and      /work/SRC/openSUSE:Factory/.qactus.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qactus"

Sun Nov 29 12:31:11 2020 rev:9 rq:851593 version:2.0.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/qactus/qactus.changes    2020-06-17 
14:56:57.114340071 +0200
+++ /work/SRC/openSUSE:Factory/.qactus.new.5913/qactus.changes  2020-11-29 
12:31:15.082173500 +0100
@@ -1,0 +2,9 @@
+Sat Nov 28 19:30:17 UTC 2020 - Javier Llorente <[email protected]>
+
+- Update to 2.0.3
+  * Minor fixes:
+    - follow redirects
+    - empty bookmark list on user switch
+  * Improve the configure dialog 
+
+-------------------------------------------------------------------

Old:
----
  qactus-2.0.2.tar.gz

New:
----
  qactus-2.0.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qactus.spec ++++++
--- /var/tmp/diff_new_pack.bwCN5h/_old  2020-11-29 12:31:15.822174248 +0100
+++ /var/tmp/diff_new_pack.bwCN5h/_new  2020-11-29 12:31:15.822174248 +0100
@@ -23,7 +23,7 @@
 %global devname %{libprefix}-devel
 
 Name:           qactus
-Version:        2.0.2
+Version:        2.0.3
 Release:        0
 Summary:        A GUI client for OBS
 License:        GPL-2.0-only OR GPL-3.0-only

++++++ qactus-2.0.2.tar.gz -> qactus-2.0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/CMakeLists.txt 
new/qactus-2.0.3/CMakeLists.txt
--- old/qactus-2.0.2/CMakeLists.txt     2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/CMakeLists.txt     2020-11-28 20:25:38.000000000 +0100
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.5)
 
 project(Qactus
-   VERSION 2.0.2
+   VERSION 2.0.3
    LANGUAGES CXX)
 
 add_definitions(-DQACTUS_VERSION="${PROJECT_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/ChangeLog new/qactus-2.0.3/ChangeLog
--- old/qactus-2.0.2/ChangeLog  2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/ChangeLog  2020-11-28 20:25:38.000000000 +0100
@@ -1,5 +1,11 @@
 Qactus ChangeLog
 ================
+v2.0.3 (2020-11-28)
+- Minor fixes:
+    * follow redirects
+    * empty bookmark list on user switch
+- Improve the configure dialog
+
 v2.0.2 (2020-06-16)
 - RequestStateEditor enhancements:
     * enable keyboard navigation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/qactus.spec new/qactus-2.0.3/qactus.spec
--- old/qactus-2.0.2/qactus.spec        2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/qactus.spec        2020-11-28 20:25:38.000000000 +0100
@@ -22,7 +22,7 @@
 %global devname %{libprefix}-devel
 
 Name:           qactus
-Version:        2.0.2
+Version:        2.0.3
 Release:        0
 Summary:        A GUI client for OBS
 License:        GPL-2.0 or GPL-3.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/browser/bookmarks.cpp 
new/qactus-2.0.3/src/gui/browser/bookmarks.cpp
--- old/qactus-2.0.2/src/gui/browser/bookmarks.cpp      2020-06-16 
17:14:32.000000000 +0200
+++ new/qactus-2.0.3/src/gui/browser/bookmarks.cpp      2020-11-28 
20:25:38.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  *  Qactus - A Qt-based OBS client
  *
- *  Copyright (C) 2019 Javier Llorente <[email protected]>
+ *  Copyright (C) 2019-2020 Javier Llorente <[email protected]>
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -48,6 +48,7 @@
 void Bookmarks::slotLoadBookmarks(OBSPerson *person)
 {
     m_person = person;
+    clear();
 
     for (QString entry : person->getWatchList()) {
         addItem(entry);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/configure.cpp 
new/qactus-2.0.3/src/gui/configure.cpp
--- old/qactus-2.0.2/src/gui/configure.cpp      2020-06-16 17:14:32.000000000 
+0200
+++ new/qactus-2.0.3/src/gui/configure.cpp      2020-11-28 20:25:38.000000000 
+0100
@@ -1,7 +1,7 @@
 /* 
  *  Qactus - A Qt based OBS notifier
  *
- *  Copyright (C) 2013-2018 Javier Llorente <[email protected]>
+ *  Copyright (C) 2013-2020 Javier Llorente <[email protected]>
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
 
 #include "configure.h"
 #include "ui_configure.h"
+#include "credentials.h"
 
 Configure::Configure(QWidget *parent, OBS *obs) :
     QDialog(parent),
@@ -36,21 +37,8 @@
     ui->checkBoxHomeProjects->setChecked(includeHomeProjects);
     proxySettingsSetup();
 
-//    loginDialog = new Login(ui->authPage);
-//    ui->stackedWidget->insertWidget(0, loginDialog);
-
-    login = new Login();
-    login->configureMode();
-    QListWidgetItem *loginItem = new QListWidgetItem();
-    loginItem->setText("Authentication");
-    loginItem->setIcon(QIcon(":/icons/dialog-password.png"));
-
-    // Note: Ownership of widget is passed onto the stacked/list widget
-    ui->stackedWidget->insertWidget(0, login);
-    ui->listWidget->insertItem(0, loginItem);
-
     for (int i = 0; i < ui->listWidget->count(); ++i) {
-        ui->listWidget->item(i)->setSizeHint(QSize(97,60));
+        ui->listWidget->item(i)->setSizeHint(QSize(115, 70));
     }
 
     ui->listWidget->setMaximumWidth(ui->listWidget->sizeHintForColumn(0)+4);
@@ -59,6 +47,7 @@
     connect(ui->listWidget, SIGNAL(currentRowChanged(int)), ui->stackedWidget, 
SLOT(setCurrentIndex(int)));
     ui->listWidget->setCurrentRow(0);
 
+    readAuthSettings();
     readProxySettings();
     readSettings();
     readTimerSettings();
@@ -103,12 +92,9 @@
     qDebug() << "Configure::writeSettings()";
     QSettings settings;
 
+    writeAuthSettings();
     writeProxySettings();
 
-    settings.beginGroup("Auth");
-    settings.setValue("ApiUrl", mOBS->getApiUrl());
-    settings.endGroup();
-
     settings.beginGroup("Timer");
     settings.setValue("Active", ui->checkBoxTimer->isChecked());
     settings.setValue("Value", ui->spinBoxTimer->value());
@@ -119,6 +105,20 @@
     settings.endGroup();
 }
 
+void Configure::writeAuthSettings()
+{
+    qDebug() << __PRETTY_FUNCTION__;
+    QSettings settings;
+    settings.beginGroup("Auth");
+    settings.setValue("ApiUrl", mOBS->getApiUrl());
+    settings.setValue("Username", ui->lineEditUsername->text());
+    Credentials *credentials = new Credentials();
+    credentials->writeCredentials(ui->lineEditUsername->text(), 
ui->lineEditPassword->text());
+    delete credentials;
+    settings.setValue("AutoLogin", ui->checkBoxAutoLogin->isChecked());
+    settings.endGroup();
+}
+
 void Configure::writeProxySettings()
 {
     qDebug() << "Configure::writeProxySettings()";
@@ -157,16 +157,34 @@
     qDebug() << "Configure::readSettings()";
     QSettings settings;
 
-    settings.beginGroup("Auth");
-    setApiUrl(settings.value("ApiUrl").toString());
-    settings.endGroup();
-
     settings.beginGroup("Browser");
     includeHomeProjects = settings.value("IncludeHomeProjects").toBool();
     ui->checkBoxHomeProjects->setChecked(includeHomeProjects);
     settings.endGroup();
 }
 
+void Configure::readAuthSettings()
+{
+    qDebug() << "Configure::readAuthSettings()";
+    QSettings settings;
+
+    settings.beginGroup("Auth");
+    setApiUrl(settings.value("ApiUrl").toString());
+
+    QString username = settings.value("Username").toString();
+    ui->lineEditUsername->setText(username);
+    Credentials *credentials = new Credentials();
+    connect(credentials, &Credentials::credentialsRestored,
+            [&](const QString &/*username*/, const QString &password) {
+        ui->lineEditPassword->setText(password);
+    });
+    credentials->readPassword(username);
+    delete credentials;
+    ui->checkBoxAutoLogin->setChecked((settings.value("AutoLogin", 
true).toBool()));
+
+    settings.endGroup();
+}
+
 void Configure::readProxySettings()
 {
     qDebug() << "Configure::readProxySettings()";
@@ -229,7 +247,7 @@
     }
     includeHomeProjects = ui->checkBoxHomeProjects->isChecked();
 
-    login->writeSettings();
+    writeAuthSettings();
     emit timerChanged();
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/configure.h 
new/qactus-2.0.3/src/gui/configure.h
--- old/qactus-2.0.2/src/gui/configure.h        2020-06-16 17:14:32.000000000 
+0200
+++ new/qactus-2.0.3/src/gui/configure.h        2020-11-28 20:25:38.000000000 
+0100
@@ -1,7 +1,7 @@
 /* 
  *  Qactus - A Qt based OBS notifier
  *
- *  Copyright (C) 2013-2018 Javier Llorente <[email protected]>
+ *  Copyright (C) 2013-2020 Javier Llorente <[email protected]>
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -28,7 +28,6 @@
 #include <QNetworkProxy>
 #include <QSettings>
 #include "obs.h"
-#include "login.h"
 
 namespace Ui {
     class Configure;
@@ -62,14 +61,15 @@
     Ui::Configure *ui;
     OBS *mOBS;
     void setOBSApiUrl(const QString &apiUrlStr);
+    void readAuthSettings();
     void readProxySettings();
     void readTimerSettings();
-    Login *login;
     void proxySettingsSetup();
     QNetworkProxy proxy;
     bool includeHomeProjects;
     enum ProxyType { NoProxy, SystemProxy, ManualProxy };
     void writeSettings();
+    void writeAuthSettings();
     void writeProxySettings();
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/configure.ui 
new/qactus-2.0.3/src/gui/configure.ui
--- old/qactus-2.0.2/src/gui/configure.ui       2020-06-16 17:14:32.000000000 
+0200
+++ new/qactus-2.0.3/src/gui/configure.ui       2020-11-28 20:25:38.000000000 
+0100
@@ -9,8 +9,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>491</width>
-    <height>368</height>
+    <width>671</width>
+    <height>513</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -51,6 +51,15 @@
      </property>
      <item>
       <property name="text">
+       <string>Authentication</string>
+      </property>
+      <property name="icon">
+       <iconset resource="../../application.qrc">
+        
<normaloff>:/icons/dialog-password.png</normaloff>:/icons/dialog-password.png</iconset>
+      </property>
+     </item>
+     <item>
+      <property name="text">
        <string>General</string>
       </property>
       <property name="icon">
@@ -71,16 +80,6 @@
      </item>
     </widget>
    </item>
-   <item row="2" column="1">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
    <item row="1" column="1">
     <widget class="QStackedWidget" name="stackedWidget">
      <property name="sizePolicy">
@@ -89,147 +88,165 @@
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <widget class="QWidget" name="generalPage">
-      <layout class="QGridLayout" name="gridLayout_2">
-       <item row="2" column="2">
-        <layout class="QVBoxLayout" name="verticalLayoutGeneral">
-         <item>
-          <widget class="QCheckBox" name="checkBoxTimer">
-           <property name="text">
-            <string>Enable timer</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="Line" name="lineTimer">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="13" column="2">
-        <spacer name="verticalSpacerBrowser">
-         <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="0" column="2">
-        <layout class="QFormLayout" name="formLayoutApiUrl">
-         <property name="verticalSpacing">
-          <number>6</number>
-         </property>
-         <item row="0" column="0">
-          <widget class="QLabel" name="labelApiUrl">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Minimum">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>OBS API:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLineEdit" name="lineEditApiUrl">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="1" column="2">
-        <spacer name="verticalSpacerApi">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="3" column="2">
-        <layout class="QFormLayout" name="formLayoutTimer">
-         <item row="0" column="1">
-          <widget class="QSpinBox" name="spinBoxTimer">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="suffix">
-            <string> Min</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="0">
-          <widget class="QLabel" name="labelCheckChanges">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>Check for changes every</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="7" column="2">
-        <layout class="QVBoxLayout" name="verticalLayoutBrowser">
-         <item>
-          <widget class="QCheckBox" name="checkBoxHomeProjects">
-           <property name="text">
-            <string>Include home projects in browser</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="authenticationPage">
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <item>
+        <widget class="QGroupBox" name="groupBoxAuthentication">
+         <property name="title">
+          <string>Authentication</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_5">
+          <item row="0" column="0">
+           <layout class="QFormLayout" name="formLayout">
+            <item row="2" column="1">
+             <widget class="QLineEdit" name="lineEditPassword">
+              <property name="echoMode">
+               <enum>QLineEdit::Password</enum>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QLabel" name="labelPassword">
+              <property name="text">
+               <string>Password:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QLineEdit" name="lineEditUsername"/>
+            </item>
+            <item row="1" column="0">
+             <widget class="QLabel" name="labelUsername">
+              <property name="text">
+               <string>Username: </string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="0">
+             <widget class="QLabel" name="labelApiUrl">
+              <property name="text">
+               <string>OBS server:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QLineEdit" name="lineEditApiUrl"/>
+            </item>
+            <item row="3" column="1">
+             <widget class="QCheckBox" name="checkBoxAutoLogin">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QLabel" name="labelAutoLogin">
+              <property name="text">
+               <string>Auto login:</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
        </item>
-       <item row="4" column="2">
-        <spacer name="verticalSpacerTimer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="generalPage">
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QGroupBox" name="groupBoxGeneral">
+         <property name="title">
+          <string>General</string>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_3">
+          <item>
+           <layout class="QVBoxLayout" name="verticalLayoutGeneral">
+            <item>
+             <widget class="QCheckBox" name="checkBoxTimer">
+              <property name="text">
+               <string>Enable timer</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QFormLayout" name="formLayoutTimer">
+            <item row="0" column="1">
+             <widget class="QSpinBox" name="spinBoxTimer">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="suffix">
+               <string> Min</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="0">
+             <widget class="QLabel" name="labelCheckChanges">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="text">
+               <string>Check for changes every</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <spacer name="verticalSpacerTimer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" name="verticalLayoutBrowser">
+            <item>
+             <widget class="QCheckBox" name="checkBoxHomeProjects">
+              <property name="text">
+               <string>Include home projects in browser</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <spacer name="verticalSpacerBrowser">
+            <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>
        </item>
       </layout>
      </widget>
@@ -242,158 +259,179 @@
       </property>
       <layout class="QGridLayout" name="gridLayout">
        <item row="0" column="0">
-        <layout class="QVBoxLayout" name="verticalLayoutProxyRadioGroup">
-         <item>
-          <widget class="QRadioButton" name="radioButtonNoProxy">
-           <property name="text">
-            <string>N&amp;o proxy</string>
-           </property>
-           <attribute name="buttonGroup">
-            <string notr="true">buttonGroupProxyType</string>
-           </attribute>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="radioButtonSystemProxy">
-           <property name="text">
-            <string>Use &amp;system proxy configuration</string>
-           </property>
-           <attribute name="buttonGroup">
-            <string notr="true">buttonGroupProxyType</string>
-           </attribute>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="radioButtonManualProxy">
-           <property name="text">
-            <string>Use m&amp;anually specified proxy configuration</string>
-           </property>
-           <attribute name="buttonGroup">
-            <string notr="true">buttonGroupProxyType</string>
-           </attribute>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="2" column="0">
-        <layout class="QFormLayout" name="formLayoutProxy">
-         <item row="0" column="0">
-          <widget class="QLabel" name="labelProxyType">
-           <property name="text">
-            <string>Type:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QComboBox" name="comboBoxProxyType">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="labelProxyServer">
-           <property name="text">
-            <string>Server:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLineEdit" name="lineEditProxyServer">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="labelProxyPort">
-           <property name="text">
-            <string>Port:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QSpinBox" name="spinBoxProxyPort">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="maximum">
-            <number>9999</number>
-           </property>
-           <property name="value">
-            <number>8080</number>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0">
-          <widget class="QLabel" name="labelProxyUsername">
-           <property name="text">
-            <string>Username:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="1">
-          <widget class="QLineEdit" name="lineEditProxyUsername">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="0">
-          <widget class="QLabel" name="labelProxyPassword">
-           <property name="text">
-            <string>Password:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="1">
-          <widget class="QLineEdit" name="lineEditProxyPassword">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="echoMode">
-            <enum>QLineEdit::Password</enum>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="1" column="0">
-        <spacer name="verticalSpacerNetwork">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item row="3" column="0">
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>60</height>
-          </size>
-         </property>
-        </spacer>
+        <widget class="QGroupBox" name="groupBoxNetwork">
+         <property name="title">
+          <string>Network</string>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_4">
+          <item>
+           <layout class="QVBoxLayout" name="verticalLayoutProxyRadioGroup">
+            <item>
+             <widget class="QRadioButton" name="radioButtonNoProxy">
+              <property name="text">
+               <string>N&amp;o proxy</string>
+              </property>
+              <attribute name="buttonGroup">
+               <string notr="true">buttonGroupProxyType</string>
+              </attribute>
+             </widget>
+            </item>
+            <item>
+             <widget class="QRadioButton" name="radioButtonSystemProxy">
+              <property name="text">
+               <string>Use &amp;system proxy configuration</string>
+              </property>
+              <attribute name="buttonGroup">
+               <string notr="true">buttonGroupProxyType</string>
+              </attribute>
+             </widget>
+            </item>
+            <item>
+             <widget class="QRadioButton" name="radioButtonManualProxy">
+              <property name="text">
+               <string>Use m&amp;anually specified proxy configuration</string>
+              </property>
+              <attribute name="buttonGroup">
+               <string notr="true">buttonGroupProxyType</string>
+              </attribute>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <spacer name="verticalSpacerNetwork">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item>
+           <layout class="QFormLayout" name="formLayoutProxy">
+            <item row="0" column="0">
+             <widget class="QLabel" name="labelProxyType">
+              <property name="text">
+               <string>Type:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QComboBox" name="comboBoxProxyType">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QLabel" name="labelProxyServer">
+              <property name="text">
+               <string>Server:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QLineEdit" name="lineEditProxyServer">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QLabel" name="labelProxyPort">
+              <property name="text">
+               <string>Port:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QSpinBox" name="spinBoxProxyPort">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="maximum">
+               <number>9999</number>
+              </property>
+              <property name="value">
+               <number>8080</number>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QLabel" name="labelProxyUsername">
+              <property name="text">
+               <string>Username:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="1">
+             <widget class="QLineEdit" name="lineEditProxyUsername">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="0">
+             <widget class="QLabel" name="labelProxyPassword">
+              <property name="text">
+               <string>Password:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="4" column="1">
+             <widget class="QLineEdit" name="lineEditProxyPassword">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
+              <property name="echoMode">
+               <enum>QLineEdit::Password</enum>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>60</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
        </item>
       </layout>
      </widget>
     </widget>
    </item>
+   <item row="2" column="1">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
- <resources/>
+ <resources>
+  <include location="../../application.qrc"/>
+ </resources>
  <connections>
   <connection>
    <sender>buttonBox</sender>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/login.cpp 
new/qactus-2.0.3/src/gui/login.cpp
--- old/qactus-2.0.2/src/gui/login.cpp  2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/src/gui/login.cpp  2020-11-28 20:25:38.000000000 +0100
@@ -1,7 +1,7 @@
 /* 
  *  Qactus - A Qt based OBS notifier
  *
- *  Copyright (C) 2013-2018 Javier Llorente <[email protected]>
+ *  Copyright (C) 2013-2020 Javier Llorente <[email protected]>
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -28,8 +28,7 @@
     ui->setupUi(this);
 
     setTabOrder(ui->lineEdit_Username, ui->lineEdit_Password);
-    setTabOrder(ui->lineEdit_Password, ui->checkBox_AutoLogin);
-    setTabOrder(ui->checkBox_AutoLogin, ui->pushButton_Login);
+    setTabOrder(ui->lineEdit_Password, ui->buttonBox);
 
     readSettings();
 }
@@ -64,21 +63,18 @@
     return ui->lineEdit_Password->text();
 }
 
-bool Login::isAutoLoginEnabled()
-{
-    return ui->checkBox_AutoLogin->isChecked();
-}
-
-void Login::setAutoLoginEnabled(bool check)
-{
-    ui->checkBox_AutoLogin->setChecked(check);
-}
-
 void Login::readSettings()
 {
     qDebug() << "Login::readSettings()";
     QSettings settings;
     settings.beginGroup("Auth");
+
+    QString apiUrl = settings.value("ApiUrl").toString();
+    QStringList apiUrlSplitted = apiUrl.split("https://";);
+    if (apiUrl.size()>1) {
+        apiUrl = apiUrlSplitted.at(1);
+    }
+
     QString username = settings.value("Username").toString();
     setUsername(username);
     Credentials *credentials = new Credentials();
@@ -87,7 +83,6 @@
     credentials->readPassword(username);
     delete credentials;
     qDebug() << "Login::readSettings() AutoLogin:" << 
settings.value("AutoLogin").toBool();
-    setAutoLoginEnabled(settings.value("AutoLogin").toBool());
     settings.endGroup();
 }
 
@@ -96,7 +91,6 @@
     qDebug() << "Login::writeSettings()";
     QSettings settings;
     settings.beginGroup("Auth");
-    settings.setValue("AutoLogin", isAutoLoginEnabled());
     settings.setValue("Username", getUsername());
     Credentials *credentials = new Credentials();
     credentials->writeCredentials(getUsername(), getPassword());
@@ -106,8 +100,7 @@
 
 void Login::configureMode()
 {
-    ui->pushButton_Login->hide();
-    ui->line->hide();
+    ui->buttonBox->hide();
 }
 
 void Login::clearCredentials()
@@ -117,7 +110,7 @@
     ui->lineEdit_Username->setFocus();
 }
 
-void Login::on_pushButton_Login_clicked()
+void Login::on_buttonBox_accepted()
 {
     if (getUsername().isEmpty() || getPassword().isEmpty()) {
         QMessageBox::warning(parentWidget(), tr("Error"), tr("Empty 
username/password"), QMessageBox::Ok);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/login.h 
new/qactus-2.0.3/src/gui/login.h
--- old/qactus-2.0.2/src/gui/login.h    2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/src/gui/login.h    2020-11-28 20:25:38.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  *  Qactus - A Qt based OBS notifier
  *
- *  Copyright (C) 2013-2018 Javier Llorente <[email protected]>
+ *  Copyright (C) 2013-2020 Javier Llorente <[email protected]>
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -49,7 +49,7 @@
     void clearCredentials();
 
 private slots:
-    void on_pushButton_Login_clicked();
+    void on_buttonBox_accepted();
     void slotCredentialsRestored(const QString &username, const QString 
&password);
 
 signals:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/login.ui 
new/qactus-2.0.3/src/gui/login.ui
--- old/qactus-2.0.2/src/gui/login.ui   2020-06-16 17:14:32.000000000 +0200
+++ new/qactus-2.0.3/src/gui/login.ui   2020-11-28 20:25:38.000000000 +0100
@@ -9,30 +9,25 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>270</width>
-    <height>159</height>
+    <width>430</width>
+    <height>157</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Login</string>
   </property>
   <layout class="QGridLayout" name="gridLayout_Dialog">
-   <item row="0" column="2">
+   <item row="3" column="1">
     <layout class="QGridLayout" name="gridLayout">
-     <item row="2" column="1">
-      <widget class="QCheckBox" name="checkBox_AutoLogin">
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0" alignment="Qt::AlignRight">
-      <widget class="QLabel" name="label_Password">
-       <property name="text">
-        <string>Password:</string>
-       </property>
-      </widget>
-     </item>
+     <property name="leftMargin">
+      <number>6</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>10</number>
+     </property>
      <item row="1" column="1">
       <widget class="QLineEdit" name="lineEdit_Password">
        <property name="focusPolicy">
@@ -46,69 +41,51 @@
        </property>
       </widget>
      </item>
-     <item row="0" column="0" alignment="Qt::AlignRight">
-      <widget class="QLabel" name="label_Username">
+     <item row="1" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label_Password">
        <property name="text">
-        <string>Username:</string>
+        <string>Password:</string>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
       <widget class="QLineEdit" name="lineEdit_Username"/>
      </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_AutoLogin">
+     <item row="0" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label_Username">
        <property name="text">
-        <string>Auto Login</string>
+        <string>Username:</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
-   <item row="2" column="2" alignment="Qt::AlignRight">
-    <widget class="QPushButton" name="pushButton_Login">
-     <property name="text">
-      <string>Login</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string/>
-     </property>
-     <property name="pixmap">
-      <pixmap 
resource="../../application.qrc">:/icons/dialog-password.png</pixmap>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <spacer name="horizontalSpacer">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Fixed</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>5</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="1" column="0" colspan="3">
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+   <item row="4" column="1">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
- <resources>
-  <include location="../../application.qrc"/>
- </resources>
- <connections/>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Login</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>233</x>
+     <y>161</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>233</x>
+     <y>94</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
 </ui>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/gui/mainwindow.cpp 
new/qactus-2.0.3/src/gui/mainwindow.cpp
--- old/qactus-2.0.2/src/gui/mainwindow.cpp     2020-06-16 17:14:32.000000000 
+0200
+++ new/qactus-2.0.3/src/gui/mainwindow.cpp     2020-11-28 20:25:38.000000000 
+0100
@@ -706,7 +706,7 @@
         settings.setValue("ApiUrl", defaultApiUrl);
     }
     obs->setApiUrl(apiUrl);
-    if (settings.value("AutoLogin").toBool()) {
+    if (settings.value("AutoLogin", true).toBool()) {
         Credentials *credentials = new Credentials(this);
         connect(credentials, SIGNAL(errorReadingPassword(QString)),
                 this, SLOT(slotErrorReadingPassword(QString)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qactus-2.0.2/src/qobs/obscore.cpp 
new/qactus-2.0.3/src/qobs/obscore.cpp
--- old/qactus-2.0.2/src/qobs/obscore.cpp       2020-06-16 17:14:32.000000000 
+0200
+++ new/qactus-2.0.3/src/qobs/obscore.cpp       2020-11-28 20:25:38.000000000 
+0100
@@ -107,6 +107,7 @@
 QNetworkReply *OBSCore::request(const QString &resource)
 {
     QNetworkRequest request;
+    request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
     request.setUrl(QUrl(apiUrl + resource));
     qDebug() << "User-Agent:" << userAgent;
     request.setRawHeader("User-Agent", userAgent.toLatin1());  
@@ -339,7 +340,7 @@
     qDebug() << "OBSCore::replyFinished() HTTP status code:" << httpStatusCode;
 //    qDebug() << "Network Reply: " << data;
 
-    if (httpStatusCode==302) {
+    if (httpStatusCode==200 && !authenticated) {
         authenticated = true;
         emit isAuthenticated(authenticated);
     } else if (httpStatusCode==401) {
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/[email protected]

Reply via email to