Exemple #1
0
/***************************************************************************
  * reads the TDEConfig
**/
void KDFWidget::loadSettings( void )
{
  mStd.updateConfiguration();

  if(GUI)
  {
    TDEConfig &config = *kapp->config();
    config.setGroup("KDiskFree");
    for( uint i=0; i<mTabProp.size(); i++ )
    {
      CTabEntry &e = *mTabProp[i];
      e.mWidth = config.readNumEntry( e.mRes, e.mWidth );
    }
    if (mTabProp[usageCol]->mWidth > 16)
      mTabProp[usageCol]->mWidth -= 16;

    config.setGroup("KDFConfig");
    for( uint i=0; i<mTabProp.size(); i++ )
    {
      CTabEntry &e = *mTabProp[i];
      e.mVisible = config.readBoolEntry( e.mRes, e.mVisible );
    }

    makeColumns();
    setUpdateFrequency( mStd.updateFrequency() );
    updateDF();
  }
}
DiskInfoWidget::DiskInfoWidget(QWidget *parent, const char *name, ConfigDialogImpl *config, bool init)
	: QWidget(parent, name)
{
		_config = config;

		connect(&mDiskList , SIGNAL(readDFDone() ), this, SLOT (updateDFDone()) );
		connect(&mDiskList , SIGNAL(criticallyFull(DiskEntry*)), this, SLOT (criticallyFull(DiskEntry*)) );

		mTabProp.resize(8);
		mTabProp[0] = new CTabEntry( "Icon", i18n("Icon"), false, 0);
		mTabProp[1] = new CTabEntry( "Device", i18n("Device"), false, 0);
		mTabProp[2] = new CTabEntry( "Type", i18n("Type"), false, 0);
		mTabProp[3] = new CTabEntry( "Size", i18n("Size"), false, 0);
		mTabProp[4] = new CTabEntry( "MountPoint", i18n("Mount Point"), true, 90 );
		mTabProp[5] = new CTabEntry( "Free", i18n("Free"), false, 0);
		// xgettext:no-c-format
		mTabProp[6] = new CTabEntry( "Full%", i18n("Full %"), false, 0);
		mTabProp[7] = new CTabEntry( "UsageBar", i18n("Usage"), true, 100);

		GUI = !init;
		if( GUI )
		{
			QVBoxLayout *topLayout = new QVBoxLayout( this, 0, 0 );
			mList = new CListView( this, "list" );
			topLayout->addWidget( mList );

			mList->setAllColumnsShowFocus( true );
			mList->setFrameStyle( QFrame::WinPanel + QFrame::Sunken );
			mList->setShowSortIndicator(true);
			QPalette pal;
			QColorGroup cg;
			cg.setColor( QColorGroup::Button, BACKGROUND );
			cg.setColor( QColorGroup::ButtonText, TEXTCOLOR );
			cg.setColor( QColorGroup::Base, BACKGROUND );
			pal.setActive( cg );
			cg.setColor( QColorGroup::Button, BACKGROUND );
			cg.setColor( QColorGroup::ButtonText, TEXTCOLOR );
			cg.setColor( QColorGroup::Base, BACKGROUND );
			pal.setInactive( cg );
			cg.setColor( QColorGroup::Button, BACKGROUND );
			cg.setColor( QColorGroup::ButtonText, TEXTCOLOR );
			cg.setColor( QColorGroup::Base, BACKGROUND );
			pal.setDisabled( cg );
			mList->setPalette( pal );
//			connect( mList,
//				SIGNAL( pressed( QListViewItem *, const QPoint &, int )),
//				this, SLOT( rightButtonPressed( QListViewItem *, const QPoint &, int )));
//			connect( mList,
//				SIGNAL( clicked( QListViewItem *, const QPoint &, int )),
//				this, SLOT( rightButtonClicked( QListViewItem *, const QPoint &, int )));
			connect( mList->header(), SIGNAL(sizeChange(int, int, int)),
				this, SLOT(columnSizeChanged(int, int, int)) );
			makeColumns();
		}

		updateDF();
		setUpdateFrequency(60);
}
Exemple #3
0
KDFWidget::KDFWidget( TQWidget *parent, const char *name, bool init )
  : TQWidget(parent, name), mOptionDialog(0), mPopup(0), mTimer(0)
{
  connect(&mDiskList , TQT_SIGNAL(readDFDone() ),
           this, TQT_SLOT (updateDFDone()) );
  connect(&mDiskList , TQT_SIGNAL(criticallyFull(DiskEntry*)),
           this, TQT_SLOT (criticallyFull(DiskEntry*)) );

  mTabProp.resize(8);
  mTabProp[0] = new CTabEntry( "Icon", i18n("Icon"), true, 32);
  mTabProp[1] = new CTabEntry( "Device", i18n("Device"), true, 80);
  mTabProp[2] = new CTabEntry( "Type", i18n("Type"), true, 50);
  mTabProp[3] = new CTabEntry( "Size", i18n("Size"), true, 72);
  mTabProp[4] = new CTabEntry( "MountPoint", i18n("Mount Point"), true, 90 );
  mTabProp[5] = new CTabEntry( "Free", i18n("Free"), true, 55);
  // xgettext:no-c-format
  mTabProp[6] = new CTabEntry( "Full%", i18n("Full %"), true, 70);
  mTabProp[7] = new CTabEntry( "UsageBar", i18n("Usage"), true, 100);

  GUI = !init;
  if( GUI )
  {
    TQVBoxLayout *topLayout = new TQVBoxLayout( this, 0, 0 );
    mList = new CListView( this, "list" );
    topLayout->addWidget( mList );

    mList->setAllColumnsShowFocus( true );
    mList->setFrameStyle( TQFrame::WinPanel + TQFrame::Sunken );
    mList->setShowSortIndicator(true);
    connect( mList,
      TQT_SIGNAL( rightButtonPressed( TQListViewItem *, const TQPoint &, int )),
      this, TQT_SLOT( rightButtonPressed( TQListViewItem *, const TQPoint &, int )));
    connect( mList,
      TQT_SIGNAL( rightButtonClicked( TQListViewItem *, const TQPoint &, int )),
      this, TQT_SLOT( rightButtonClicked( TQListViewItem *, const TQPoint &, int )));
    connect( mList->header(), TQT_SIGNAL(sizeChange(int, int, int)),
      this, TQT_SLOT(columnSizeChanged(int, int, int)) );
    makeColumns();

    mIsTopLevel = TQString(parent->className()) == "KDFTopLevel" ? true : false;
  }

  loadSettings();
  if( init == true )
  {
    applySettings();
  }
}
/*
 Pobiera tekst ze standardowego wejscia, justuje w dwoch kolumnach i wysyla na standardowe wejscie.

 Wymaga 4 parametrow:
 1: dlugosc lewego marginesu,
 2: dlugosc lewej kolumny (niezerowa),
 3: dlugosc odstepu miedzy kolumnami,
 4: dlugosc prawej kolumny (niezerowa).

 Suma wartosci parametrow nie moze byc wieksza niz ustawiona dlugosc wiersza konsoli (stala LineLength).

 Slowa musza miescic sie w przydzielonych im kolumnach. W przeciwnym razie wykonywanie programu zostaje przerwane.

 Wyrazy pobierane sa az do napotkania znaku konca pliku (EOF).
 */
int main (int argc, char *argv[]) {
    /* Lista wierszy. */
    LinesHandler *Lines;

    int
        /* Zrzutowane wartosci parametrow programu. */
        Margin,
        S1,
        Distance,
        S2,

        /* Wynik testu poprawnosci sprawdzanej liczby wierszy. */
        LinesNoCorrectness,
        /* Okresla czy kolumny sie "spotkaly" (podczas wypelniania ich wyrazami). */
        LinesMet = 0,
        /* Ostateczna liczba kolumn <= MaxLinesNo - warunek poprawnosci bedzie spr. dla l. wierszy = MaxLinesNo i mniejszych. */
        MaxLinesNo = 0,

        Iterator;


    /* Lista wyrazow. */
    WordsHandler *Words;

    /* Alokowanie pamieci na liste wyrazow. */
    Words = (WordsHandler*) malloc (sizeof (WordsHandler));
    if (Words == NULL) {
        printf ("Memory allocation error!\n");
        return 0;
    }
    Words->First = NULL;
    Words->Last = NULL;

    /* Alokowanie pamieci na liste wierszy. */
    Lines = (LinesHandler*) malloc (sizeof (LinesHandler));
    if (Lines == NULL) {
        printf ("Memory allocation error!\n");
        free (Words);
        return 0;
    }
    Lines->First = NULL;


    /* Sprawdzenie czy podano wymagana liczbe paramentrow. */
    if (argc != 5) {
         printf ("Invalid number of parameters!\n");
         return 0;
    }

    /* Przypisanie wartosci parametrcw do zmiennych. */
    Margin =    (int) atoi (argv [1]);
    S1 =        (int) atoi (argv [2]);
    Distance =  (int) atoi (argv [3]);
    S2 =        (int) atoi (argv [4]);

    /* Sprawdzenie czy wartosci parametrow spelniaja przypisane im wymagania. */
    if (S1 == 0 || S2 == 0) {
         printf ("Lines' length mustn't be egual to 0!\n");
         return 0;
    } else if (Margin < 0 || S1 < 0 || Distance < 0 || S2 < 0) {
         printf ("None parameter can be less than 0!\n");
         return 0;
    } else if (Margin + S1 + Distance + S2 > LineLength) {
         printf ("Margin + Col 1st length + Distance + Col 2nd length must be less or equal to %d!\n", LineLength);
         return 0;
    }

    /* Wczytuje slowa i sprawdza, czy mozliwe jest dla nich wykonanie kodu (slowa mieszcza sie w kolumnach etc.). */
    if (!readWords (Words, S1, S2)) {
        freeMemory (Lines, Words);
        return 0;
    }

    /* Obsluga sytuacji gdy wprowadzony tekst to pojednyczy wyraz. */
    if (Words->First->Next == NULL) {
        if (Words->First->Length <= S1) {
            for (Iterator = 0; Iterator < Margin; Iterator++)
                printf (" ");
            printf ("%s\n", Words->First->Content);
        } else
            printf ("The word is too long!");
        freeMemory (Lines, Words);
        return 0;
    }

    /* Obliczanie gornego ograniczenia dla szukanej liczby wierszy. */
    MaxLinesNo = calculateMaxLinesNo (Words, S1, S2);

    do {
        LinesNoCorrectness = checkColumnsCorrectness (Words, S1, S2, MaxLinesNo);

        switch (LinesNoCorrectness) {
            /* Dla podanych danych co najmniej jeden z wyrazow nie miesci sie w wyznaczonym miejscu. */
            case -2:
                printf ("At least one of words was too long!\n");
                freeMemory (Lines, Words);
            return 0;

            /* Nie istnieje rozwiazanie spelniajace podane zalozenia. */
            case -1:
                printf ("Proper justification wasn't possible!\n");
                freeMemory (Lines, Words);
            return 0;

            /* Podana liczba wierszy jest zbyt wysoka - nalezy sprawdzix nizsze wartosci. */
            case 0:
                MaxLinesNo--;
            continue;

            /* Znaleziono szukano liczbe wierszy - przygotowanie kolumn i wyswietleniee wynikow. */
            case 1:
                /* Czasem zachodzi sytuacja gdy funkcja sprawdzajaca daje poprawne wyniki dla wiecej niz 1 wartosci. Wtedy wybierana jest najmniejsza. */
                while (checkColumnsCorrectness (Words, S1, S2, MaxLinesNo-1) == 1)
                    MaxLinesNo--;

                if (makeColumns (Lines, Words, S1, S2, MaxLinesNo))
                    displayResults (Lines, Margin, Distance);
                else
                    printf ("Memory allocation error!\n");
            break;
        }
    } while (LinesNoCorrectness == 0);
            /* Poki liczba wierszy jest zbyt duza, nalezy ja zmniejszac. Znalezienie rozwiazania (lub stwierdzenie jego braku) przeywa petle. */

    /* Zwalnia pamiec przed zakonczeniem programu. */
    freeMemory (Lines, Words);

    return 0;
}